Usage of Cypher®

The implementations are ordered alphabetically within each category.

Cypher implementations (vendor/industrial)

Agens Graph

Agens Graph is a multi-model (Relational + Graph) database. It is based on PostgreSQL RDBMS. With Agens Graph, one can retrieve a result from both relational and graph by a single query at the same time. Agens Graph supports ACID transactions and implements the graph data model.

The railroad diagrams and CIPs have been used as reference.

Links

Amazon Neptune

Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Amazon Neptune is a purpose-built, high-performance graph database engine optimized for storing billions of relationships and querying the graph with milliseconds latency. Amazon Neptune supports popular graph models Property Graph and W3C's RDF, and their respective query languages openCypher and Apache TinkerPop Gremlin for Property Graphs and SPARQL for RDF graphs. The flexibility of language choice allows you to easily build queries that efficiently navigate highly connected datasets. Neptune powers graph use cases such as recommendation engines, fraud detection, knowledge graphs, drug discovery, and network security.

Amazon Neptune is highly available, with read replicas, point-in-time recovery, continuous backup to Amazon S3, and replication across Availability Zones. Neptune is secure with support for HTTPS encrypted client connections and encryption at rest. Neptune is fully managed, so you no longer need to worry about database management tasks such as hardware provisioning, software patching, setup, configuration, or backups.

Links

AnzoGraph

AnzoGraph is a massively parallel graph database developed by Cambridge Semantics.

It is an analytical (OLAP) database that offers both SPARQL and openCypher support.

Links

ArcadeDB

ArcadeDB is the next generation Multi-Model database with a native Graph Database engine. You can store graphs, documents, key values and time series all in the same database. ArcadeDB supports Cypher, Apache TinkerPop Gremlin and SQL. ArcadeDB has a fully ACID transactional engine and can be used as embedded, client-server and distributed on multiple servers.

Links

CAPS

Cypher for Apache Spark brings the leading graph query language, Cypher, onto the leading distributed processing platform, Spark.

Links

Cypher for Gremlin

Cypher for Gremlin is a toolkit for users of Apache TinkerPop™ that allows querying Gremlin databases with Cypher.

Links

Katana Graph

Katana Graph unifies graph databases, graph analytics, and graph pattern mining workloads by supporting them with a single scale-out, highly programmable, efficient graph engine and a fast Cypher implementation.

Links

Memgraph

Memgraph is a native, in-memory, transactional and fully distributed enterprise graph platform. Built from the ground up, Memgraph delivers real-time performance on transactional and analytical workloads on web-scale data.

Links

Neo4j

Neo4j is a property graph database management system developed by Neo4j, Inc. It is an ACID-compliant transactional database with native graph storage and processing, and was the first implementation of Cypher.

Links

RedisGraph

RedisGraph is the first queryable property graph database to use sparse adjacency matrices and linear algebra to represent and query graphs.

Links

SAP HANA Graph

SAP HANA Graph is an integral part of SAP HANA core functionality. It expands the SAP HANA platform with native support for graph processing and allows you to execute typical graph operations on the data stored in an SAP HANA system.

SAP HANA Graph uses Cypher to express pattern matching queries.

Links

Cypher implementations (research)

Gradoop

Gradoop is an open source research framework for scalable graph analytics built on top of Apache Flink™ and Apache HBase™. It offers a graph data model which extends the widespread property graph model by the concept of logical graphs and further provides operators that can be applied on single logical graphs and collections of logical graphs.

The implementation in Gradoop is part of a research project by the Database Group Leipzig.

Links

Graphflow

Graphflow is a prototype active graph database developed by the Data Systems Group (DSG) at the University of Waterloo. Active databases are those that support continuous queries and triggers. An example continuous query in the context of graph databases is continuously finding cycles in an input graph and calling a user-defined function when a new cycle emerges or gets deleted. Graphflow evaluates general one-time and continuous subgraph queries and supports the property graph model. The database is implemented in Java and provides a Cypher++ interface, which extends the Cypher query language with subgraph-condition-action triggers. At the core of Graphflow’s query processor are two worst-case optimal join algorithms called Generic Join and our new Delta Generic Join algorithm for one-time and continuous subgraph queries, respectively.

Links

ingraph

The aim of the ingraph project is to evaluate openCypher graph queries incrementally. Our long-term goal is to provide a horizontally scalable graph query engine, which is able to perform complex graph queries on graphs with 100M+ elements.

ingraph uses the Antlr4 grammar for parsing, and the TCK as a reference for the formalization & implementation.

Links

Ruruki

Ruruki is a pure Python lightweight in-memory graph database designed to be used for proof of concept projects or if you just need a temporary graph structure.

Ruruki bases its parser implementation on the EBNF grammar provided by openCypher.

Links

Cypher tools

Cytosm

Cytosm is an open-source software library for converting Cypher queries into plain old SQL on-the-fly.

Cytosm was originally developed by researchers and engineers working on graph analytics on a variety of databases.

Links

Graph Database Support

The plugin may be used with, for example, IntelliJ IDEA, where it provides completion and highlighting of Cypher strings.

Links

libcypher-parser

libcypher-parser is a parser library and validation (lint) tool for Cypher. The parser is written in C, and is intended for building tools and libraries in various languages.

libcypher-parser bases its implementation on CIP documents and the grammar specification.

Links

Node.js Cypher Parser

A Cypher graph query language parser/linter addon module for Node.js.

Links

ocparse

ocparse is based on the EBNF grammar.

Links

slizaa

slizaa is a customizable software architecture workbench that allows you to explore and visualize the structure and the dependencies of Java-based software systems. slizaa uses Neo4j/jQAssistant and provides a frontend with a bunch of specific tools and viewers to provide an easy-to-use in-depth insight of your software's architecture.

An Xtext-based grammar for Cypher queries was originally developed as part of slizaa and has since turned into a standalone project. The Xtext-based implementation is based on the ANTLR 4 grammar provided by the openCypher project (see links below).

Links