Community-contributed libraries

Introduction

In addition to the officially supported drivers, you can find their Community alternatives. Besides Java, .NET, JavaScript, Go, and Python drivers, Neo4j Community offers support for Ruby, PHP, Erlang/Elixir, and Perl. Links to their relevant resources are provided below.

Members of the each programming language community have invested a lot of time and love to develop each one of the community drivers for Neo4j, so if you use any one of them, please provide feedback to the authors.

The Community drivers have been graciously contributed by the Neo4j community. Many of them are fully featured and well-maintained, but some may not be. Neo4j does not take any responsibility for their usability.

Using Neo4j from Ruby

Neo4j.rb

The Neo4j.rb project is made up of the following Ruby gems:

neo4j-ruby-driver

A Neo4j driver for Ruby with an API consistent with the official drivers. It is based on Seabolt and FFI. Available on all rubies (including JRuby) and all platforms supported by Seabolt.

neo4j-java-driver

A Neo4j driver for Ruby based on the official Java implementation. It provides a thin wrapper over the Java driver (only in JRuby).

activegraph

A Object-Graph-Mapper (OGM) for the Neo4j graph database. It tries to follow API conventions established by ActiveRecord but with a Neo4j flavor. It requires one of the above drivers.

neo4j-rake_tasks

A set of rake tasks for installing and managing a Neo4j database within your project.

Website

https://neo4jrb.io/

Authors

Heinrich, Amit, Brian, Chris, Andreas

Package

neo4j-ruby-driver, neo4j-java-driver, activegraph

Source

https://github.com/neo4jrb

Docs

https://neo4jrb.readthedocs.org/en/latest/

Blog

https://blog.brian-underwood.codes/

Protocols

Bolt

Using Neo4j from PHP

Alternatively, Neo4j can be installed on any system and then accessed via its Bolt and HTTP APIs. We recommend the Neo4j PHP client for easiest development over Bolt and HTTP APIs. You can also directly access the Bolt protocol via the PHP Bolt library.

Neo4j PHP client

Neo4j PHP client is a client supporting multiple protocols. HTTP and Bolt are supported, starting from Neo4j 3.5 up until the most recent version.

It is being actively developed. For more details, refer to a README file on the Github page.

Author

Ghlen Nagels

Source

https://github.com/neo4j-php/neo4j-php-client

Package

https://packagist.org/packages/laudis/neo4j-php-client

PHP

7.4 / 8.0+

Neo4j

3.5 / 4.0+

Protocols

Bolt, HTTP

Example App

https://github.com/neo4j-examples/movies-neo4j-php-client

PHP Bolt

A low level driver for the Bolt protocol in PHP.

Author

Michal Stefanak

Source

https://github.com/neo4j-php/Bolt

PHP

7.4+ / 8.0+

Neo4j

3.0+ / 4.0+ / 5.0+

Protocols

Bolt

Using Neo4j from Erlang/Elixir

Elixir Bolt.Sips Driver

Neo4j driver for Elixir wrapped around the Bolt protocol.

Author

Florin Patrascu

Package

https://hex.pm/packages/bolt_sips

Source

https://github.com/florinpatrascu/bolt_sips

Docs

https://hexdocs.pm/bolt_sips/

Neo4j.Sips

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

Author

Florin Patrascu

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

Using Neo4j from Perl

REST::Neo4p

This Perl driver from Mark Jensen works with Neo4j’s REST API by using Perl5 objects in a consistent, idiomatic Perl-style. There is also a related DBI-compliant wrapper (DBD::Neo4p)

Author

Mark A. Jensen

Package

https://metacpan.org/release/REST-Neo4p

Source

https://github.com/majensen/rest-neo4p

Docs

https://slideshare.net/majensen1/neo4p-dcbpw2015-46990541

Community Site

https://community.neo4j.com/c/drivers-stacks/perl

Neo4j::Driver

This Perl driver enables interacting with a Neo4j server using the same classes and method calls as the official Neo4j drivers. It also has (currently experimental) support for HTTPS and Bolt.

Author

Arne Johannessen

Package

https://metacpan.org/release/Neo4j-Driver

Source

https://github.com/johannessen/neo4j-driver-perl

Neo4j::Bolt

This is another driver from Mark Jensen. It’s implemented as a Perl wrapper around the libneo4j-client C library, which implements the Bolt network protocol.

Author

Mark A. Jensen

Source

https://github.com/majensen/perlbolt

Java Community drivers

JCypher

JCypher provides seamlessly integrated Java access to Neo4j at different levels of abstraction.

Author

Wolfgang Schützelhofer

Package

http://maven.org

Source

https://github.com/Wolfgang-Schuetzelhofer/jcypher

Docs

https://jcypher.iot-solutions.net/

Blog Post

https://neo4j.com/blog/jcypher-focus-on-your-domain-model-not-how-to-map-it-to-the-database/

Groovy & Grails: Neo4j Grails Plugin

The goal of GORM for Neo4j is to provide a 'as-complete-as-possible' GORM implementation that maps domain classes and instances to the Neo4j nodespace.

Authors

Stefan Armbruster, Graeme Rocher

Docs

http://grails.github.io/grails-data-mapping/latest/neo4j/

JPA: Hibernate OGM

Hibernate Object/Grid Mapper (OGM) with Neo4j Support.

Authors

Davide D’Alto, Gunnar Moelling, Emmanuel Bernard

Package

http://maven.org

Source

https://github.com/hibernate/hibernate-ogm/tree/master/neo4j

Docs

http://docs.jboss.org/hibernate/ogm/5.0/reference/en-US/html_single/#ogm-neo4j

Blog Post

Blog, JPL Queries

Example

https://github.com/TimmyStorms/hibernate-ogm-neo4j-example

.NET Community drivers

Neo4jClient

A .NET client for Neo4j, which makes it easy to write Cypher® queries in C# with IntelliSense. It also supports basic CRUD and legacy indexing.

Source

https://github.com/DotNet4Neo4j/neo4jclient

NuGet Package

https://nuget.org/packages/neo4jclient

Authors

Charlotte Skardon Tatham Oddie

Docs

https://github.com/DotNet4Neo4j/Neo4jClient/wiki

Example

https://github.com/neo4j-examples/movies-dotnet-neo4jclient

Protocol

Bolt, HTTP

Neo4j.Driver.Extensions

Neo4j.Driver.Extensions provides a set of extension methods to the official driver API, aiming at reducing boilerplate and easing mapping to entity classes.

Source

https://github.com/DotNet4Neo4j/Neo4j.Driver.Extensions

NuGet Package

https://nuget.org/packages/neo4j.driver.extensions

Authors

Charlotte Skardon

Docs

Introduction blogpost

JavaScript Community drivers

js2neo

As an example of a minimal JavaScript based Bolt driver, you can use js2neo.

Python Community drivers

Neomodel

An Object Graph Mapper built on top of the Neo4j python driver. Familiar Django style node definitions with a powerful query API, thread safe and full transaction support. A Django plugin django_neomodel is also available.

Author

Athanasios Anastasiou and Robin Edwards

Package

https://pypi.python.org/pypi/neomodel

Source

http://github.com/neo4j-contrib/neomodel

Docs

https://neomodel.readthedocs.io/en/latest/

Python

2.7 / 3.3+

Protocols

Bolt

Example

https://github.com/neo4j-examples/neo4j-movies-python-neomodel

Go Community drivers

GoGM: Golang Object Graph Mapper

Author

Eric Solender, CTO and co-founder of Mindstand

Source

https://github.com/z5labs/gogm

Docs

https://github.com/mindstand/gogm/blob/master/README.md