Goals If you are an Erlang, or today an Elixir developer, this guide provides an overview of options for connecting to Neo4j. While this guide is not comprehensive it will introduce the different drivers and link to the relevant resources.… Learn More →

Goals
If you are an Erlang, or today an Elixir developer, this guide provides an overview of options for connecting to Neo4j. While this guide is not comprehensive it will introduce the different drivers and link to the relevant resources.
Prerequisites
You should be familiar with graph database concepts and the property graph model. You should have installed Neo4j and made yourself familiar with our Cypher Query language.
Intermediate


Neo4j for Erlang/Elixir Developers

erlang

elixir

Members of the Erlang and Elixir community have invested a lot of time and love to develop these drivers, so please if you use them, provide feedback to the authors.

The Example Project

The Neo4j example project is a small, one page webapp for the movies database built into the Neo4j tutorial. The front-end page is the same for all drivers: movie search, movie details, and a graph visualization of actors and movies. Each backend implementation shows you how to connect to Neo4j from each of the different languages and drivers.

You can learn more about our small, consistent example project across many different language drivers here. You will find the implementations for all drivers as individual GitHub repositories, which you can clone and deploy directly.

Neo4j Community Drivers

The drivers below have been thankfully contributed by the Neo4j community. Many of these are fully featured and well maintained. But we don’t take any responsibility for their fitness for use with the most recent versions of Neo4j.

Elixir Bolt.Sips Driver

Neo4j driver for Elixir wrapped around the Bolt protocol.

Features:

  • It is using: Bolt. Neo4j’s newest network protocol, designed for high-performance
  • Supports transactions, simple and complex Cypher queries with or w/o parameters
  • Connection pool implementation using: “A hunky Erlang worker pool factory”, aka: Poolboy 🙂
  • Supports Neo4j 3.0.x

Author

Florin Patrascu

Example Project

https://github.com/neo4j-examples/bolt_movies_elixir_phoenix

Package

https://hex.pm/packages/bolt_sips

Source

https://github.com/florinpatrascu/bolt_sips

Docs

http://hexdocs.pm/bolt_sips/

Neo4j.Sips

A simple Elixir wrapper around the Neo4j graph database REST API. It is aiming to help Elixir developers to play with Neo4j, and to eventually become the main support for a future Ecto adapter.

Author

Florin Patrascu

Example Project

https://github.com/neo4j-examples/movies-elixir-phoenix

Package

https://hex.pm/packages/neo4j_sips

Source

https://github.com/florinpatrascu/neo4j_sips

Docs

https://github.com/florinpatrascu/neo4j_sips/blob/master/README.md

Erlang client library for Neo4J

This is a lightweight wrapper for Neo4j REST API.

Features:

  • Implements all of Neo4J 2.0.0’s REST API as referenced here with one caveat:
    • Does not implement streaming API
  • Uses jiffy for JSON
  • Uses hackney for http queries
    • Does not support HTTPS (yet?)

Author

Dmitrii ‘Mamut’ Dimandt

Source

https://github.com/dmitriid/neo4j-erlang

Docs

https://github.com/dmitriid/neo4j-erlang/blob/master/README.md