tinkerpop is a free, open source databases project written in Java and released under Apache-2.0. It has 2,146 GitHub stars, 864 forks and 32 open issues, and was last pushed 24 hours ago. On this registry it ranks #70 of 81 tracked projects in Databases, with 5 head-to-head comparisons available.

What is tinkerpop?

What it is

Apache TinkerPop is an open-source graph computing framework that provides a common interface and traversal language for property graphs. It supports graph databases for transactional workloads and graph analytic systems for large-scale analysis. The project lives in the Apache ecosystem, is implemented primarily in Java, and provides packages and drivers for several language environments.

It solves fragmentation across graph systems. Without a shared language and interface, an application that queries vertices, edges, properties, and paths may be written against one vendor's API and become difficult to move. TinkerPop defines Gremlin as a common way to express graph traversals, while supplying a reference in-memory graph database, a server component, and tools for interacting with many underlying data systems through a consistent programming model.

Key capabilities

  • Provides the Gremlin graph traversal language for expressing queries and computations over property graphs.
  • Defines a common interface so applications can work against many different graph systems without vendor lock-in.
  • Includes TinkerGraph, an in-memory reference graph database that can be embedded for development, testing, or lightweight graph workloads.
  • Includes Gremlin Server for connecting applications to Gremlin-enabled graph databases.
  • Supports language variants and drivers for Java, .NET, Python, JavaScript, and Go.
  • Covers both OLTP graph database use and OLAP graph analytic use in one framework.
  • Supplies documentation, recipes, upgrade notes, and Javadocs.

Who uses it and how

  • Developers embed TinkerGraph in an application to test graph queries, prototype data models, or run lightweight graph workloads without deploying a separate database.
  • Teams connect applications to a Gremlin-enabled graph database through drivers or Gremlin Server, allowing the same traversal logic to target different underlying systems.
  • Engineers run Gremlin traversals from the JVM or from Gremlin Language Variants, depending on runtime and language stack.
  • Contributors build and test on Linux or macOS with Maven and Java 11 or Java 17, producing Gremlin Server and Console zip distributions.

Getting started

Typical use begins by downloading Gremlin Console, unzipping it, and running bin/gremlin.sh with Java 11 or Java 17. From source, mvn clean install builds the project and places server and console distributions in gremlin-server/target and gremlin-console/target.

When to use it — and when not to

Use TinkerPop when an application needs a portable graph traversal layer across multiple graph databases or a reference in-memory graph for development and testing. Do not choose it when the project is tied to one vendor's proprietary API, when Gremlin is not supported by the target system, or when only a simple relational query is required. A self-hosted deployment must operate the chosen graph database or Gremlin Server, manage Java 11 or Java 17, and handle upgrades using the project's documentation; no hosted option or paid product replacement is listed.

project readme (upstream, from github) — read inline

Apache TinkerPop

Maven Central NuGet PyPI npm Go.Dev

Codecov

TinkerPop3

Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). It provides the Gremlin graph traversal language, drivers, and tools for working with property graphs across a wide variety of underlying data systems.

Project overview

TinkerPop defines a common interface and language (Gremlin) so that applications can work against many different graph systems without being locked into a single vendor. It includes a reference in‑memory graph database (TinkerGraph), Gremlin Server, language variants, and a rich collection of recipes and documentation.

Key resources:

Building and Testing

Building TinkerPop is supported on Linux and macOS.

TinkerPop uses Maven and requires Java 11/17 for proper building and proper operations. To build, execute unit tests and package Gremlin Console/Server run:

mvn clean install

The zip distributions can be found in the following directories:

  1. gremlin-server/target
  2. gremlin-console/target

Please see the CONTRIBUTING.md file for more detailed information and options for building, test running and developing TinkerPop.

Get Started

Download Gremlin Console (compatible with Java 11/17) and unzip to a directory, then:

$ bin/gremlin.sh

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> Gremlin.version()
==>3.8.0
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = traversal().with(graph)
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().has('name','vadas').valueMap()
==>[name:[vadas], age:[27]]

From the Gremlin Console, you can connect to a TinkerGraph instance and run your first traversals. Refer to the Getting Started for detailed walkthroughs and examples.

Using TinkerPop

Common ways to use TinkerPop include:

  • Embedding TinkerGraph in your application for development, testing, or lightweight graph workloads.
  • Connecting to a Gremlin‑enabled graph database via drivers or Gremlin Server.
  • Running Gremlin traversals from the JVM, or via Gremlin Language Variants (Python, .NET, JavaScript, Go, etc.).
  • Using the Gremlin Console for interactive exploration, debugging, and learning.

See the Reference Documentation for supported features, configuration options, and other details.

Documentation

The full TinkerPop documentation is published on the project website and is also maintained in this repository under docs/src/ as AsciiDoc “books.”

When changing or adding documentation, follow the existing AsciiDoc structure in docs/src/** and update the relevant index.asciidoc files so new content is included in the build.

Contributing

Contributions to Apache TinkerPop are welcome. The Developer Documentation and contributing guide describe how to set up a development environment, run tests, and submit changes.

Before opening a pull request, please:

  • Discuss larger changes on the appropriate Apache mailing list.
  • Ensure tests pass locally and, where appropriate, add new tests and documentation.
  • Update CHANGELOG.asciidoc and upgrade docs when behavior or public APIs change.

Using AI and IDE assistants

If you use AI coding agents or IDE assistants when working on TinkerPop, please consult AGENTS.md. That file summarizes:

  • Recommended build and test commands.
  • Code style and testing conventions.
  • “Do and don’t” guidance specific to automated tools.

AGENTS.md is a concise guide for tools and tool‑using contributors, while CONTRIBUTING.md and the Developer Documentation remain the canonical sources for project policies and processes.

License

Apache TinkerPop is an open source project of The Apache Software Foundation and is licensed under the Apache License, Version 2.0. See the LICENSE file in this repository for details.

Frequently asked questions

Is tinkerpop free to use?

tinkerpop is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does tinkerpop do?

Apache TinkerPop - a graph computing framework

What is tinkerpop written in?

tinkerpop is primarily written in Java. Its source is publicly available at https://github.com/apache/tinkerpop, and it has 2,146 GitHub stars.