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 |
|
Authors |
|
Package |
|
Source |
|
Docs |
|
Blog |
|
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 |
|
Source |
|
Package |
|
PHP |
7.4 / 8.0+ |
Neo4j |
3.5 / 4.0+ |
Protocols |
Bolt, HTTP |
Example App |
Using Neo4j from Erlang/Elixir
Elixir Bolt.Sips Driver
Neo4j driver for Elixir wrapped around the Bolt protocol.
Author |
|
Package |
|
Source |
|
Docs |
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 |
|
Package |
|
Source |
|
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 |
|
Package |
|
Source |
|
Docs |
|
Community Site |
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 |
|
Source |
Java Community drivers
Neo4j JDBC Driver
Authors |
Developers from Larus BA Italy and Neo4j |
Package |
|
Source |
|
Docs |
https://github.com/neo4j-contrib/neo4j-jdbc/blob/master/README.adoc |
Blog Post |
https://neo4j.com/blog/couchbase-jdbc-integrations-neo4j-3-0/ |
JCypher
JCypher provides seamlessly integrated Java access to Neo4j at different levels of abstraction.
Author |
|
Package |
|
Source |
|
Docs |
|
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 |
JPA: Hibernate OGM
Hibernate Object/Grid Mapper (OGM) with Neo4j Support.
Authors |
Davide D’Alto, Gunnar Moelling, Emmanuel Bernard |
Package |
|
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 |
|
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 |
|
NuGet Package |
|
Authors |
|
Docs |
|
Example |
|
Protocol |
Bolt, HTTP |
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 |
|
Source |
|
Docs |
|
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 |
|
Docs |
Was this page helpful?