The Apache TinkerPop Community encompasses many different programming language ecosystems and, as a result, provides for helpful libraries, tools and applications for numerous environments and use cases. In this way, developers can feel comfortable programming in their language of choice. While TinkerPop provides official support for certain languages and tools, many are third-party supported by the wider TinkerPop Community.
Any listing of third-party products is intended to help users identify TinkerPop-enabled graph systems and does not constitute an endorsement by Apache TinkerPop nor the Apache Software Foundation. Please see the listing policy for information on how to get a TinkerPop-enabled product shown here.
Third-Party Libraries and Tools
- Ogre: Ogre is a Gremlin language variant for Clojure. It provides an API that enhances the expressivity of Gremlin within Clojure, it doesn't introduce any significant amount of performance overhead, and it can work with any TinkerPop-enabled graph database or analytic system.
Third-Party Libraries and Tools
- Gremlex: A Gremlin Server driver for Elixir.
Apache TinkerPop’s Gremlin-Go implements Gremlin for the Go programming language. It offers the features of the Gremlin language in a form familiar to Go developers.
g := gremlingo.Traversal_().WithRemote(...)
result, err := g.V().Out("knows").In("created").ToList()
Example
go get github.com/apache/tinkerpop/gremlin-go/v3@v3.7.3
Go Module
Apache TinkerPop’s Gremlin-Groovy implements Gremlin within the Apache Groovy language. As a JVM-based language variant, Gremlin-Groovy is backed by Gremlin-Java constructs. Moreover, given its scripting nature, Gremlin-Groovy serves as the language of Gremlin Console and Gremlin Server.
def g = traversal().withRemote(...)
def l = g.V().out('knows').in('created').toList()
Example
implementation
'org.apache.tinkerpop:gremlin-groovy:3.7.3'
Gradle
Third-Party Libraries and Tools
- greskell: Haskell binding for Gremlin graph query language.
Apache TinkerPop’s Gremlin-Java implements Gremlin within the Java language. It is considered the canonical, reference implementation of Gremlin and serves as the foundation by which all other Gremlin language variants should emulate.
GraphTraversalSource g = traversal().withRemote(...);
List l = g.V().out('knows').in('created').toList();
Example
<!-- gremlin-driver is a common dependency but
there are others -->
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-driver</artifactId>
<version>3.7.3</version>
</dependency>
Maven
Third-Party Libraries and Tools
- Eclipse JNoSQL: An Object Graph Mapper (OGM)
for Apache TinkerPop.
- Ferma: An Object Graph Mapper (OGM)
for Apache TinkerPop.
- gremlin-objects: An Object Graph Mapper (OGM)
for Apache TinkerPop.
- Peapod: An Object Graph Mapper (OGM) for Apache
TinkerPop.
- spring-data-gremlin: Spring Data support for
TinkerPop-enabled graph systems.
Apache TinkerPop’s Gremlin-JavaScript implements Gremlin within the JavaScript language. It targets Node.js runtime.
const g = traversal().withRemote(...);
const l = await g.V().out('knows').in('created').toList();
Example
npm install gremlin
npm
Gremlint: A linter and formatter library for Gremlin.
Third-Party Libraries and Tools
- gremlin-orm: Gremlin ORM for Node.js.
- gremlin-template-string: A Gremlin language builder.
- DefinitelyTyped: Gremlin in the repository for high quality TypeScript type definitions.
Third-Party Libraries and Tools
- kotlin-gremlin-ogm: An Object Graph Mapping Library for Kotlin and Gremlin.
Apache TinkerPop’s Gremlin.NET implements Gremlin within the C# language making it easy for .NET developers to use Gremlin in their environment.
var g = Traversal().WithRemote(...);
var l = await g.V().Out("knows").In("created").ToList();
Example
dotnet add package Gremlin.Net --version 3.7.3
NuGet
Third-Party Libraries and Tools
- Gremlinq: A strongly typed server driver.
Apache TinkerPop’s gremlin-python implements Gremlin within the Python language. It attempts to make Gremlin feel Pythonic while adhering to Gremlin feel as much as possible.
g = traversal().withRemote(...);
l = g.V().both()[1:3].toList()
Example
pip install gremlinpython
PyPi
Third-Party Libraries and Tools
- Goblin: Goblin OGM for the TinkerPop 3
Gremlin Server.
- gremlinclient: An asynchronous Python 2/3
client for Gremlin Server that allows for flexible coroutine syntax.
- gremlin-py: Write pure Python Gremlin that can
be sent to Gremlin Server.
- ipython-gremlin: Gremlin in IPython and
Jupyter.
- gremlinrestclient: Python 2/3 library that uses
HTTP to communicate with the Gremlin Server over REST.
- python-gremlin-rest: A REST-based client for
Gremlin Server.
Third-Party Libraries and Tools
- gremlin-php: A Gremlin Server driver for PHP.
Third-Party Libraries and Tools
- gremlin_client: A Gremlin Server
driver for Ruby.
- grumlin: A Gremlin Server driver and language
variant for Ruby.
Third-Party Libraries and Tools
- gremlin-rs: A Gremlin Server driver and language variant for Rust.
Third-Party Libraries and Tools
- gremlin-scala: Gremlin-Scala is a Gremlin
language variant that uses standard Scala functions, provides a convenient DSL
to create vertices and edges, ensures type safe traversals, and incurrs minimal
runtime overhead by only allocating instances if absolutely necessary.
- gremlinclient: An Akka HTTP Websocket Connector.
- scalajs-gremlin-client: A Gremlin-Server client
with ad-hoc extensible, reactive, typeclass based API.
TinkerPop offers convenient Docker images for Gremlin Server and Gremlin Console to help make it easy to quickly get started with those applications.
docker pull tinkerpop/gremlin-server
docker pull tinkerpop/gremlin-console
There are many languages built to query data. SQL is typically used to query relational data. There is SPARQL for RDF data. Cypher is used to do pattern matching in graph data. The list could go on. Compilers convert languages like these to Gremlin so that it becomes possible to use them in any context that Gremlin is used. In other words, a Gremlin Compiler enables a particular query language to work on any TinkerPop-enabled graph system.
- cypher-for-gremlin: A Cypher-to-Gremlin
traversal transpiler.
- sparql-gremlin: A SPARQL to Gremlin traversal
compiler.
- sql-gremlin: A SQL to Gremlin traversal compiler.
There are many applications that build upon TinkerPop interfaces and protocols. These applications offer graph visualization functionality, different environments for using Gremlin itself and support for various end-user use cases.
- exakat.io: Static analysis engine for PHP,
powered by Gremlin.
- G.V():
G.V() is an all-in-one Gremlin IDE and graph visualization software for Windows,
macOS and Linux. It offers powerful Gremlin Query completion features based on
your graph structure and intuitive results visualization options. It is
compatible with Apache TinkerPop-enabled graph databases over Gremlin Server
protocol.
- graph.build: graph.build is a graph data
production platform and it works with any database that supports Gremlin.
- Graphexp: Interactive visualization of the Gremlin
graph database with D3.js.
- Graph Notebook: Library extending Jupyter notebooks
to integrate with Apache TinkerPop, openCypher, and RDF SPARQL.
- gremlin-ide: An IDE for Apache TinkerPop-enabled
databases using React and Electron.
- Gremlator: A helpful tool that translates Gremlin
written in one programming language to the format of another.
- gremlify: A Gremlin workspace for queries and
visualization.
- gremlint: A Gremlin linter and formatter.
- Gremlin-Visualizer: A visualization tool for the
results of gremlin traversals.
- JUGRI: A Jupyter Gremlin interface.
- KeyLines™: KeyLines™ is an Apache TinkerPop and
Gremlin compatible JavaScript SDK for quickly and easily building powerful,
custom and scalable graph visualization applications. The KeyLines SDK offers a
rich library of functionality to help you visualize and explore the data in your
graph database, including graph layouts, social network analysis measures,
filtering, temporal graph visualization and geospatial graph analysis. It allows
the visualization of complex graph data at scale.
- Linkurious™:
Linkurious™ is a browser-based graph visualization software to search, explore
and visualize connected data. It is compatible with Apache TinkerPop and thus,
any TinkerPop-enabled graph system. Linkurious provides enterprise-ready
security (authentication, access rights, audit) and flexibility (API,
linkurious.js JS graph visualization library) to help software architects
successfully deploy graph capabilities within their organizations.
- StackState:
Monitoring and AIOps allowing users to utilize Gremlin for analytical functions.
- Tom Sawyer Perspectives™: Tom Sawyer Perspectives™
is advanced graphics-based software for building enterprise-class data
relationship visualization and analysis applications. It is a complete Software
Development Kit (SDK) with a graphics-based design and preview environment. Tom
Sawyer Perspectives combines visualization, layout, and analysis technology with
an elegant platform architecture. Tom Sawyer Perspectives enables interaction
with graph database systems via Apache TinkerPop.