# Awesome Neo4j

A curated list of awesome Neo4j resources.
Inspired by the `awesome-*` trend on GitHub.

The goal is to build a categorized community-driven collection of very well-known resources.
Sharing, suggestions and contributions are always welcome!

Thanks to all contributors.

Maintained by Neueda R&D.

# Table of Contents

- Basics
- Connectors
  - Bolt
  - REST API
    - Java
    - Ruby
    - Python
    - PHP
    - Other
- Cloud
- Packages
- Docker
- Full-text search
- Import
- Benchmarking
- Extensions
- Stored Procedures
- Development
- Editors
- Shell
- Visualization
- Tools
- Resources
  - Learn
  - Certification
  - Bolt
  - Books
  - Miscellaneous
- License

Created by gh-md-toc

# Basics

- Official documentation
- Cypher Refcard
- Developer resources
- Gists - With Neo4j GraphGists you can describe and model your domain in a simple text file and render it as a rich, interactive page in any browser. Perfect to document a specific domain, use-case, question or graph problem.
- Neo4j Examples - Examples for Neo4j and Library Usage.

# Related project

- openCypher - openCypher is an open source project to bring a new public implementation of the industry’s most widely adopted graph query language: Cypher.
- Bolt Protocol - The Bolt network protocol is a highly efficient, lightweight client-server protocol designed for database applications.

# Connectors

## Bolt

- neo4j-java-driver - Java driver for Neo4j binary protocol.
- neo4j-python-driver - Python driver for Neo4j binary protocol.
- neo4j-javascript-driver - JavaScript driver for Neo4j binary protocol.
- neo4j-dotnet-driver - .Net driver for Neo4j (Bolt).
- neo4j-bolt-php - PHP driver for Neo4j binary protocol.
- libneo4j-client - libneo4j-client is a client library written in C for Neo4j. It is not intended as a complete driver, but rather as a foundation on which basic tools and drivers for various languages may be built. libneo4j-client takes care of all the detail of establishing a session with a Neo4j server, sending statements for evaluation, and retrieving results.
- neo4j-spark-connector - Neo4j-Spark-Connector based on Neo4j 3.0’s Bolt protocol
- neo4j-elixir-driver - Elixir driver for the neo4j bolt protocol
- neo4j-elixir-wrapper - Neo4j driver for Elixir, wrapped around the Bolt protocol. Fork of the Boltex.

## REST API

### Java

- neo4j-ogm - Object-Graph Mapping Library for Neo4j.
- spring-data-neo4j - Provides support to increase developer productivity in Java when using the neo4j graph database.
- neo4j-jdbc - Neo4j JDBC driver.
- jcypher - Java access to Neo4J graph databases at multiple levels of abstraction.

### Ruby

- neo4jrb - An active model wrapper for the Neo4j Graph Database for Ruby.
- neography - A thin Ruby wrapper to the Neo4j Rest API.

### Python

- py2neo - Py2neo is a comprehensive toolkit for working with Neo4j from within Python applications or from the command line.
- neomodel - An Object Graph Mapper (OGM) for the neo4j graph database, built on the awesome py2neo.

### PHP

- Neo4j-PHP-OGM - Doctrine style Object Graph Mapper for Neo4j
- neo4jphp - PHP wrapper of the Neo4j REST interface.
- NeoEloquent - A Neo4j ORM - Based on Eloquent.
- neo4j-php-client - PHP Client for Neo4j leveraging the Http and Bolt protocols.
- Spider - A simple, flexible, and beautiful graph-data abstraction for php.

### Other

- node-neo4j - REST API client for Node.
- Neo4jClient - .NET client binding.
- neoism - Client for Golang.
- neocons - A feature rich idiomatic Clojure client for the REST API.
- RNeo4j - Driver for R.
- AnormCypher - Scala library based on Anorm in the Play Framework.

# Cloud

- GrapheneDB - The world’s first fully managed Neo4j graph database.
- GraphStory - Neo4j enterprise cloud provider

# Packages

- Debian Packages
- Yum Repo

# Docker

- docker-neo4j - Docker Images for the Neo4j Graph Database.
- docker-neo4j-cluster - Up & Running Neo4j cluster in no time.

# Full-text search

- GraphAware Neo4j Elasticsearch Integration - GraphAware Framework Module for Integrating Neo4j with Elasticsearch.
- GraphAware Graph-Aided Search - Elasticsearch plugin offering Neo4j integration for Personalized Search.
- neo4j-elasticsearch - Neo4j ElasticSearch Integration.

# Import

- GraphAware Neo4j Importer - Java importer skeleton for complicated, business-logic-heavy high-performance Neo4j imports directly from SQL databases, CSV files, etc.
- neo4j-csv-firehose - Enables Neo4j’s `LOAD CSV` Cypher command to load from other datasources as well.
- neo4j-rdbms-import - An automatic importer for relational databases into Neo4j.
- Doc manager for Neo4j - The Neo4j Doc Manager takes MongoDB documents and makes it easy to query them for relationships by making them available in a Neo4j graph structure, following the format specified by Mongo Connector.
- neoloadcsvskelgen - Will output a skeleton of LOAD CSV Cypher code, from very little input (filename, separator, hints). Save time, avoid typos.

# Benchmarking

- neoprofiler - Neo4J database profiling utility.

# Extensions

- GraphAware Neo4j UUID - GraphAware Runtime Module that assigns a UUID to all nodes in the graph transparently.
- GraphAware Neo4j ChangeFeed - A GraphAware Framework Runtime Module allowing users to find out what were the latest changes performed on the graph.
- GraphAware Neo4j TimeTree - Java and REST APIs for working with time-representing tree in Neo4j.
- GraphAware Neo4j Recommendation Engine - Neo4j-based recommendation engine module with real-time and pre-computed recommendations.
- GraphAware Neo4j Algorithms - Custom graph algorithms for Neo4j with own Java and REST APIs.
- GraphAware Neo4j Warmup - Simple library that warms up Neo4j caches with a single REST call.
- GraphAware Neo4j RestTest - GraphAware RestTest is a simple library for testing code that talks to Neo4j running in standalone server mode.
- GraphAware Neo4j Expire - GraphAware Expire is a simple library that automatically deletes nodes and relationships from the database when they’ve reached their expiration date or time-to-live (TTL).
- Spatial - Neo4j Spatial is a library of utilities for Neo4j that faciliates the enabling of spatial operations on data.
- Graphify - Graphify is a Neo4j unmanaged extension used for document and text classification using graph-based hierarchical pattern recognition.
- neo4j-tx-participation - This is a Neo4j Server Extension to make Neo4j REST-API participate in transactions started by the transactional Cypher endpoint.

# Stored Procedures

- Apoc : Awesome Procedures on Cypher - Collection of useful procedures for Neo4j 3.x
- Graphgen - Neo4j procedure for generating test data easily with Cypher

# Development

- Maven repositories - Neo4j Maven repositories (releases, snapshots).
- GraphAware Neo4j Framework- GraphAware Framework speeds up development with Neo4j by providing a platform for building useful generic as well as domain-specific functionality, analytical capabilities, (iterative) graph algorithms, etc.
- cypher-dsl - A Java DSL for the Cypher Query Language and an optional Query DSL mode.
- Liquigraph - Database migrations management tool, based on how Liquibase works.
- blueprints - Blueprints is a collection of interfaces, implementations, ouplementations, and test suites for the property graph data model. Blueprints is analogous to the JDBC, but for graph databases.
- structr - Graph Application Platform based on Neo4j.
- Reco4PHP - Neo4j based Recommendation Engine Framework for PHP.

# Editors

- jetbrains-plugin-graph-database-support - Graph Databases support for Jetbrains family IDE’s.
- cypher-vim-syntax - Very basic Vim syntax for Cypher.

# Shell

- cycli - A Command Line Interface for Cypher.
- neo4j-shell-tools - A bunch of import/export tools for the neo4j-shell.

# Visualization

- neoclipse - Neoclipse is a tool to view, edit and explore Neo4j databases.
- Gephi - Gephi is an award-winning open-source platform for visualizing and manipulating large graphs.
- Linkurious - Linkurious helps search and visualize your graph data through a simple web-based interface.
- yFiles for HTML - yFiles is a commercial generic graph visualization programming library that comes with a demo to visualize your neo4j databases in JavaScript. It’s also the basis for the free neo4j Graph Explorer app.

# Tools

- Graphgen - Graph Generation engine based on the Cypher DSL.
- store-utils - Utilities to compact, copy, fix, analyse Neo4j stores.
- ineo- A simple but useful Neo4j instance manager.
- yFiles neo4j Graph Explorer - A simple, free online tool to visualize your graph data and database schema.

## Learn

- Getting Started with Neo4j
- Neo4j in Production
- Neo4j Koans - A koan-style tutorial in Java for Neo4j.

## Certification

- Neo4j Certification - Become a Neo4j-Certified Professional.

## Miscellaneous

- Neo4j’s Idea board
- Hardware Sizing Calculator

# License

To the extent possible under law, Neueda R&D has waived all copyright and related or neighboring rights to this work.

neo4j.md Github