Skip to content

neo4jrb/neo4j-ruby-driver

Repository files navigation

Neo4j::Driver

home :: https://github.com/neo4jrb/neo4j-ruby-driver

This repository contains 2 implementation of a neo4j driver for ruby:

  • based on official java implementation. It provides a thin wrapper over the java driver (only on jruby).
  • pure ruby implmementation. Available on all ruby versions >= 3.1.

Installation

Add this line to your application's Gemfile:

gem 'neo4j-ruby-driver'

And then execute:

$ bundle

Or install it yourself as:

$ gem install neo4j-ruby-driver

Server Compatibility

The compatibility with Neo4j Server versions is documented in the Neo4j Knowledge Base.

Usage

The API is to highest possible degree consistent with the official java driver. At this moment The Neo4j Drivers Manual v4.4 along with the ruby version of the code fragments and the ruby specs provide the only documentation.

Neo4j Java Driver 4.3 API can be helpful as well..

Development

This gem includes 2 different implementations: java driver wrapper and pure ruby driver

$ bin/setup 

Testing

To run the tests the following tools need to be installed:

$ brew install python
$ pip3 install --user git+https://github.com/klobuczek/boltkit@1.3#egg=boltkit
$ neoctrl-install -e 4.4.5 servers
$ neoctrl-configure servers/neo4j-enterprise-4.4.5 dbms.directories.import= dbms.default_listen_address=::
$ neoctrl-set-initial-password pass servers/neo4j-enterprise-4.4.5
$ neoctrl-start servers/neo4j-enterprise-4.4.5

To run the tests:

$ bin/setup
$ rspec spec

Known errors:

  1. In case of heap space memory error (org.neo4j.driver.exceptions.DatabaseException: Java heap space), you should limit the dbms memory, for example:
$ neoctrl-configure servers/neo4j-enterprise-4.4.5 dbms.memory.pagecache.size=600m dbms.memory.heap.max_size=600m dbms.memory.heap.initial_size=600m dbms.directories.import= dbms.connectors.default_listen_address=::
  1. When using command pip3 install --user git+https://github.com/klobuczek/boltkit@1.3#egg=boltkit, if you have m1 mac chip, you may get error when pip3 tries to install cryptography. Steps to take in that case (reference https://stackoverflow.com/a/70074869/2559490)
$ pip uninstall cffi
$ python -m pip install --upgrade pip
$ pip install cffi
$ pip install cryptography

Contributing

Suggestions, improvements, bug reports and pull requests are welcome on GitHub at https://github.com/neo4jrb/neo4j-ruby-driver.

License

The gem is available as open source under the terms of the MIT License.