domvas

domvas

EctoNeo4j - an Ecto adapter for Neo4j

Hi Elixir world,
last night, bolt_sips v2 was released by @Florin, which means that Neo4j Entreprise Edition is now covered by the driver.
Using bolt_sips can be rough sometimes, especially in a Phoenix project when you wan to use Ecto… and can’t.
That’s the purpose of EctoNeo4j, have (almost) all the Ecto features, from Shema to Repo work with Neo4j.
You can find the library here: https://hex.pm/packages/ecto_neo4j

You can now enjoy your Repo.*, have your migrations work, etc. But remember that Ecto is designed for relational database and Neo4j is a graph database then not all Ecto features work. So don’t expect join, etc. to work.
Additionnally, Ecto.Query is sql-oriented then only simple cypher query are supported (i.e on one node or one label).
See docs for more information.

Hope this library will help you.
And thanks to @Florin and @mschae for their work on bolt_sips and boltex!

Most Liked

domvas

domvas

As I said in another topic, note that soon ecto_neo4j won’t be maintained anymore.
Having a way to connect Neo4j and Ecto has been a dream for most of Neo4j’s users who love Elixir, but in the end, it’s an unsolvable problem: graph concept doesn’t fit in relational ones.
ecto_neo4j was an attempt, and yes it has some good parts but you can’t have a really nice modeled graph if you always have to think relational…

But don’t be alarmed, it’s not my goal to leave you with unmaintained / unsatisfying package. An other one is on its way and will be soon available (in the next few days if I’m a genius, so maybe next few weeks :D). It’ll be announced here on elixir forum so keep it touch!

domvas

domvas

Version 0.6.2 of ecto_neo4j is out with… a (light) relationship support.
It was a bit like putting squares in triangles but it works for simple operations, which ease the data management.
It is now possible to insert, update, preload your relationship in a classic ecto way even if specific functions (with same name) need to be used.

A comprehensive doc has been added too: https://hexdocs.pm/ecto_neo4j/up_and_running.html
which demonstrate all the features with examples.

Hope you’ll enjoy this new version.

Florin

Florin

@domvas - thank you so much for the shoutout, and for your feedback and support. We had lots of users asking us for an Ecto driver, for Neo4j, and I think your project will fill up that gap, perfectly. Good luck with your new project, and thanks again for the shoutout :heart:

mschae

mschae

I second @Florin: Thanks for making this work and thanks for the shoutout. Great to see the neo4j/Elixir ecosystem prosper! :heart:

Where Next?

Popular in Libraries Top

tmbb
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps: bureaucrat - which contains a bunch ...
New
mathieuprog
Hello :wave: Allow me to introduce you to Tz, an alternative time zone database support to Tzdata. Why another library? First and fore...
New
markmark206
simple_feature_flags is a tiny package that lets you turn features on or off based on which environment (e.g. localhost, staging, product...
New
achempion
Hi, I would like to tell about my initiative to further maintain and develop Waffle project which is the fork of Arc library. The progre...
New
michalmuskala
Hello everybody. I have just released Jason - a new JSON library. You might be wondering, why do we need a new library? The primary foc...
New
aditya7iyengar
Rummage.Ecto and Rummage.Phoenix provide ways to perform Searching, Sorting and Pagination over Ecto queries and Phoenix collections. Fo...
New
Crowdhailer
I have been updating a library that allows you to pipe between functions that use the erlang result tuple convention. Assuming you have...
New
benlime
LiveMotion enables high performance animations declared on the server and run on the client. As a follow up to my previous thread A libr...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 42633 214
New
handnot2
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application. This library uses Erlang esaml to provide plug enabl...
New

Other popular topics Top

Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New

Sub Categories:

We're in Beta

About us Mission Statement