ONgDB - fork of Neo4j Enterprise: Graphs for Everyone
Open Native Graph DB (ONgDB) is a fork of the neo4j project that continues development of the neo4j enterprise codebase as a fully open source project after Neo4j Inc’s Open Core Shift that closed ongoing development and removed existing source code.
ONgDB is a high performance, native graph store with everything you would expect from an enterprise-ready database, including high availability clustering, ACID transactions, and uses the intuitive, pattern-centric open cypher query language. Developers use graph theory-based structures that we call nodes and relationships instead of rows and columns. For many use cases, ONgDB will provide orders of magnitude performance benefits compared to non-native graph, relational and NoSQL databases.
Learn more about our open source mission at The Graph Foundation website.
Using ONgDB
ONgDB is available as a standalone server, an embeddable component or a Docker image. You can download distributions from our CDN or pull images from DockerHub.
Extending ONgDB
We encourage experimentation with ONgDB. You can build extensions to ONgDB, develop library or drivers atop the product, or make contributions directly to the product core. You’ll need to sign a Contributor License Agreement in order for us to accept your patches.
Note
|
This GitHub repository contains mixed GPL and AGPL code. The Community edition (in the community/ directory) is GPLv3. The Enterprise edition (enterprise/) is licensed under the AGPLv3. |
Dependencies
ONgDB is built using Apache Maven version 3.3 and a recent version of supported VM. Bash and Make are also required. Note that maven needs more memory than the standard configuration, this can be achieved with export MAVEN_OPTS="-Xmx512m"
.
macOS users need to have Homebrew installed.
With brew on macOS
brew install maven
Please note that we do not support building Debian packages on macOS.
With apt-get on Ubuntu
apt install maven openjdk-8-jdk
On top of that, to build Debian packages:
apt install debhelper devscripts dos2unix dpkg make xmlstarlet
Building ONgDB
Before you start running the unit and integration tests in the ONgDB Maven project on a Linux-like system, you should ensure your limit on open files is set to a reasonable value. You can test it with ulimit -n
. We recommend you have a limit of at least 40K.
-
A plain
mvn clean install
will only build the individual jar files. -
Test execution is, of course, part of the build.
-
In case you just want the jars, without running tests, this is for you:
mvn clean install -DskipTests
. -
To build product packages, do
export PATH="bin:$PATH" && make clean all
in the packaging directory after building artifacts with Maven. -
To build the documentation see the ONgDB documentation.
-
If you are running into problems building on Windows you can try building ONgDB in a Ubuntu virtual machine.
-
You may need to increase the memory available to Maven:
export MAVEN_OPTS="-Xmx512m"
.
Running ONgDB
After running a mvn clean install
, cd
into packaging/standalone/target
and extract the version you want. If you are not building from source you can start from a published release.
Linux/macOS
On Linux/macOS you want to run:
bin/neo4j start
in the extracted folder to start ONgDB on localhost:7474
.
Windows
On Windows you want to run:
bin\neo4j start
in the extracted folder to start ONgDB on localhost:7474
.
Maven
If you are not interested in the tarballs and just want to run ONgDB you can instead run a mvn clean install -DminimalBuild
and then cd
into community/server
and run:
mvn clean compile exec:java
to start ONgDB.
Docker
To run with Docker execute the following:
docker run \ --publish=7474:7474 --publish=7687:7687 \ --volume=$HOME/ongdb/data:/data \ graphfoundation/ongdb:3.6
to start localhost:7474
. See DockerHub for published release tags and more details.
Licensing
ONgDB Community Edition is an open source product licensed under GPLv3.
ONgDB Enterprise Edition expands the functionality of Community Edition with Enterprise-grade features.
ONgDB Enterprise Edition consists of modules from ONgDB Community Edition and modules licensed under AGPLv3 in this repository.
Misc
ONgDB IDE code style configs can be found at under the build/ folder of this repository.