Using Neo4j with Community Drivers
Neo4j Community projects
In addition to the officially supported drivers, you can find their Community alternatives. 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, 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. |
.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
For anyone working with Python, the Neo4j community have contributed a range of driver options. These range from lightweight to comprehensive driver packages as well as libraries designed for use with web frameworks such as Django.
While Python 3 is preferred, some drivers still support Python 2, thus check with the individual project if you need it.
While we do not provide a specific web framework recommendation, both the lightweight Flask and the more comprehensive Django frameworks are known to work well.
Py2neo
Py2neo is a client library and comprehensive toolkit for working with Neo4j from within Python applications and from the command line. It has been carefully designed to be easy and intuitive to use.
Author |
|
Package |
|
Source |
|
Example |
|
Docs |
|
Python |
2.7 / 3.4+ |
Protocols |
Bolt, Http |
pip install py2neo
from py2neo import Graph
graph = Graph()
tx = graph.begin()
for name in ["Alice", "Bob", "Carol"]:
tx.append("CREATE (person:Person name: $name) RETURN person", name=name)
alice, bob, carol = [result.one for result in tx.commit()]
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 App |
https://github.com/neo4j-examples/neo4j-movies-python-neomodel |
pip install neomodel
from neomodel import StructuredNode, StringProperty, RelationshipTo, RelationshipFrom, config
config.DATABASE_URL = 'bolt://neo4j:test@localhost:7687'
class Book(StructuredNode):
title = StringProperty(unique_index=True)
author = RelationshipTo('Author', 'AUTHOR')
class Author(StructuredNode):
name = StringProperty(unique_index=True)
books = RelationshipFrom('Book', 'AUTHOR')
harry_potter = Book(title='Harry potter and the..').save()
rowling = Author(name='J. K. Rowling').save()
harry_potter.author.connect(rowling)
Go Community drivers
GoGM: Golang Object Graph Mapper
Author |
Eric Solender, CTO and co-founder of Mindstand |
Source |
|
Docs |
Was this page helpful?