MCPcopy Index your code
hub / github.com/apache/tinkerpop

github.com/apache/tinkerpop @3.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.8.1 ↗ · + Follow
29,021 symbols 152,168 edges 2,673 files 6,967 documented · 24% 1 cross-repo links updated today★ 2,137
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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:

  • Website: https://tinkerpop.apache.org
  • Documentation Index: https://tinkerpop.apache.org/docs/current/index.html
  • Upgrade documentation: https://tinkerpop.apache.org/docs/current/upgrade/
  • Reference documentation: https://tinkerpop.apache.org/docs/current/reference/
  • Recipes: https://tinkerpop.apache.org/docs/current/recipes/
  • Provider documentation and Gremlin Semantics: https://tinkerpop.apache.org/docs/current/dev/provider
  • Developer documentation: https://tinkerpop.apache.org/docs/current/dev/developer
  • IO Documentation: https://tinkerpop.apache.org/docs/current/dev/io
  • Roadmap and proposals: https://tinkerpop.apache.org/docs/current/dev/future/
  • Javadocs: https://tinkerpop.apache.org/javadocs/current/full/, core javadoc

Building and Testing

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

Please see the Building on Windows section for Windows-specific build instructions.

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.

  • Contribution guidelines: CONTRIBUTING.md in the repository root.
  • Developer documentation: https://tinkerpop.apache.org/docs/current/dev/developer/

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.

Extension points exported contracts — how you extend this code

ConnectionFactory (Interface)
A factory that is responsible for creating a Connection instance. The DefaultConnectionFactory simply ne [58 implementers]
gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionFactory.java
World (Interface)
This interface provides the context the test suite needs in order to execute the Gherkin tests. It is implemented by gra [7 …
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/World.java
VariableResolver (Interface)
Resolves parameters in Gremlin to objects. [94 implementers]
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/VariableResolver.java
HadoopPoolsConfigurable (Interface)
@author Marko A. Rodriguez (http://markorodriguez.com) [6 implementers]
hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/HadoopPoolsConfigurable.java
GroovyCustomizer (Interface)
@author Stephen Mallette (http://stephen.genoprime.com) [64 implementers]
gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyCustomizer.java
InputRDD (Interface)
An InputRDD is used to read data from the underlying graph system and yield the respective adjacency list. Note that {@l [6 …
spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/structure/io/InputRDD.java
Authenticator (Interface)
Provides methods related to authentication of a request. Implementations should provide a SASL based authentication met [6 …
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/Authenticator.java
MessageTextSerializer (Interface)
An extension to the MessageSerializer interface that allows a format to be compatible with text-based websocket messages [8 …
gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/MessageTextSerializer.java

Core symbols most depended-on inside this repo

V
called by 10346
gremlin-go/driver/anonymousTraversal.go
get
called by 4685
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
property
called by 4158
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java
has
called by 3447
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
next
called by 3253
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
out
called by 3214
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
Property
called by 3071
gremlin-go/driver/anonymousTraversal.go
as
called by 3016
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java

Shape

Method 23,827
Class 3,676
Function 1,060
Interface 280
Struct 90
Enum 64
TypeAlias 20
FuncType 4

Languages

Java78%
C#6%
Python6%
TypeScript5%
Go4%

Modules by API surface

gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py525 symbols
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java412 symbols
docs/site/home/js/bootstrap.bundle.min.js321 symbols
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java305 symbols
gremlin-go/driver/anonymousTraversal.go283 symbols
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalRootVisitorTest.java277 symbols
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java240 symbols
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java227 symbols
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java225 symbols
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java193 symbols
gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/graph-traversal.js170 symbols
gremlin-python/src/main/python/gremlin_python/structure/io/graphbinaryV1.py156 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add tinkerpop \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact