Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

which python neo4j drivers are stable/production ready?

I've noticed that with neo4j v3.0 there are now 3 competing drivers:

  • py2neo
  • neo4j-rest-client
  • neo4j's own (bolt) driver

It seems that the first and third and developed by the same person, with the latter being a bit buggy and/or slow (at least with a Heroku free-tier App with a GrapheneDB add-on). I have zero experience with the second driver, and haven't tested the third driver (yet), since no DBaaS is currently offering neo4j v3.0 instances.

(I'm using python-3.x and would prefer neo4j v3.0 but will settle with v2.y) Can anyone shed some light as to which driver I should chose for my next app?

like image 432
StevieP Avatar asked May 09 '16 07:05

StevieP


1 Answers

As the developer of the first and third driver that you mention, I can only comment on those; I'm unsure of the status of the second.

Both drivers are up-to-date and actively under development (py2neo v3 is due to be released very shortly). The pair of drivers are intended not to compete but to complement each other, indeed py2neo actually embeds the official Neo driver for Bolt compatibility as there was little value in writing that twice!

Both drivers also support Python 2.7, 3.3, 3.4 and 3.5 so no compatibility issues there.

Now for the differences. The official driver only supports Bolt and consequently Neo4j 3.0 and upwards. It is intended as a lightweight driver and does not come with all the bells and whistles of py2neo. It is however fully supported by Neo Technology (more people than just me), whereas py2neo is supported by me in my spare time. Py2neo comes with a load of extra API that you might find useful but if you only need to run Cypher, the official driver will be sufficient.

So make your choice based on:

  1. Do you need support? If so, to what level?
  2. Are you running Cypher only or do you need a broader set of API?
like image 152
Nigel Small Avatar answered Sep 23 '22 11:09

Nigel Small