327 lines
14 KiB
HTML
327 lines
14 KiB
HTML
<h1 id="awesome-tinkerpop-awesome">Awesome TinkerPop <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<figure>
|
||
<img
|
||
src="https://raw.githubusercontent.com/mohataher/awesome-tinkerpop/master/tinkerpop-splash.png"
|
||
alt="alt tag" />
|
||
<figcaption aria-hidden="true">alt tag</figcaption>
|
||
</figure>
|
||
<p>A curated list of only awesome TinkerPop libraries on Github.</p>
|
||
<blockquote>
|
||
<p>Apache TinkerPop™ is a graph computing framework for both graph
|
||
databases (OLTP) and graph analytic systems (OLAP).</p>
|
||
</blockquote>
|
||
<h3 id="table-of-contents">Table of Contents</h3>
|
||
<ul>
|
||
<li><a href="#tinkerpop3">TinkerPop3</a>
|
||
<ul>
|
||
<li><a href="#tinkerpop3-implementations">Implementations</a></li>
|
||
<li><a href="#wrappers">Wrappers/Clients</a></li>
|
||
<li><a href="#qlang">Query Languages</a></li>
|
||
</ul></li>
|
||
<li><a href="#tinkerpop2">TinkerPop2</a></li>
|
||
<li><a href="#communites">Communites</a></li>
|
||
<li><a href="#people-to-follow">People to Follow</a></li>
|
||
<li><a href="#tutorials-and-resources">Tutorials and Resources</a></li>
|
||
<li><a href="#contributing">How to Contribute</a></li>
|
||
<li><a href="#license">License</a></li>
|
||
</ul>
|
||
<h3 id="tinkerpop3-libraries"><A NAME="tinkerpop3"></A>TinkerPop3
|
||
Libraries</h3>
|
||
<h4
|
||
id="implementations"><A NAME="tinkerpop3-implementations"></A>Implementations</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/apache/tinkerpop">TinkerPop3
|
||
implementation</a> - Mirror of Apache TinkerPop.</li>
|
||
<li><a href="https://github.com/pietermartin/sqlg">sqlg</a> - Sqlg is a
|
||
implementation of TinkerPop3 on a RDBMS.</li>
|
||
<li><a href="https://github.com/blazegraph/database">blazegraph</a> -
|
||
TinkerPop3 <a
|
||
href="https://github.com/blazegraph/tinkerpop3">implementation</a> for
|
||
Blaze Graph; a high performance graph database.</li>
|
||
<li><a
|
||
href="https://github.com/jbmusso/tinkergraph-js">tinkergraph-js</a> - A
|
||
pure JavaScript implementation of TinkerPop’s TinkerGraph in-memory
|
||
graph database.</li>
|
||
<li><a
|
||
href="https://github.com/jbmusso/gremlin-javascript">gremlin-javascript</a>
|
||
- JavaScript graph database client for TinkerPop3 Gremlin Server.</li>
|
||
<li><a href="https://github.com/rmagen/elastic-gremlin">Elastic
|
||
Gremlin</a> - TinkerPop3 implementation on Elasticsearch backend.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/reference/#giraphgraphcomputer">Hadoop
|
||
(Giraph)</a> - OLAP graph processor using Giraph.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/reference/#sparkgraphcomputer">Hadoop
|
||
(Spark)</a> - OLAP graph processor using Spark.</li>
|
||
<li><a
|
||
href="https://console.ng.bluemix.net/catalog/services/ibm-graph/">IBM
|
||
Graph</a> - OLTP graph database as a service.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/currentg/#neo4j-gremlin">Neo4j</a>
|
||
- OLTP graph database.</li>
|
||
<li><a href="http://stardog.com/">Stardog</a> - RDF graph database with
|
||
OLTP and OLAP support.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/reference/#tinkergraph-gremlin">TinkerGraph</a>
|
||
- In-memory OLTP and OLAP reference implementation.</li>
|
||
<li><a href="https://github.com/rmagen/unipop">Unipop</a> - OLTP
|
||
Elasticsearch and JDBC backed graph.</li>
|
||
<li><a
|
||
href="https://github.com/PureSolTechnologies/DuctileDB">DuctileDB</a> -
|
||
Ductile DB is a graph database based on Hadoop/HBase which provides a
|
||
vast set of features.</li>
|
||
<li><a href="https://github.com/rayokota/hgraphdb">hgraphdb</a> - HBase
|
||
as a TinkerPop Graph Database.</li>
|
||
<li><a href="https://github.com/JanusGraph/janusgraph">JanusGraph</a> -
|
||
JanusGraph: an open-source, distributed graph database
|
||
http://janusgraph.org</li>
|
||
<li><a
|
||
href="https://github.com/awslabs/dynamodb-janusgraph-storage-backend">JanusGraph
|
||
for DynamoDB (Amazon)</a> - The Amazon DynamoDB storage backend for
|
||
JanusGraph.</li>
|
||
<li><a
|
||
href="https://github.com/orientechnologies/orientdb-gremlin">orientdb-gremlin</a>
|
||
- TinkerPop3 Graph Structure Implementation for OrientDB.</li>
|
||
</ul>
|
||
<h4 id="wrappersclients"><A NAME="wrappers"></A>Wrappers/Clients</h4>
|
||
<h5 id="c-.net">C# .NET</h5>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.nuget.org/packages/Teva.Common.Data.Gremlin/">Teva
|
||
Gremlin</a> (.NET - C#) - A Gremlin Server driver for .NET.</li>
|
||
</ul>
|
||
<h5 id="clojure">Clojure</h5>
|
||
<ul>
|
||
<li><a href="https://github.com/clojurewerkz/ogre">ogre</a> - Clojure
|
||
library for querying TinkerPop graphs.</li>
|
||
<li><a
|
||
href="https://github.com/viagraphs/scalajs-gremlin-client">scalajs-gremlin-client</a>
|
||
(scala) - A Gremlin-Server client with ad-hoc extensible, reactive,
|
||
typeclass based API.</li>
|
||
</ul>
|
||
<h5 id="go">Go</h5>
|
||
<ul>
|
||
<li><a href="https://github.com/go-gremlin/gremlin">go-gremlin</a> - Go
|
||
graph database client for TinkerPop3 Gremlin Server.</li>
|
||
<li><a href="https://github.com/qasaur/gremgo">Gremgo</a> - A fast,
|
||
efficient, and easy-to-use Go client for the TinkerPop graph database
|
||
stack.</li>
|
||
<li><a href="https://github.com/northwesternmutual/grammes">grammes</a>
|
||
- A Go package built to communicate with Apache TinkerPop™ Graph
|
||
computing framework using Gremlin.</li>
|
||
</ul>
|
||
<h5 id="haskell">Haskell</h5>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/debug-ito/greskell">greskell-websocket</a> -
|
||
Haskell client for TinkerPop3 Gremlin Server.</li>
|
||
</ul>
|
||
<h5 id="java">Java</h5>
|
||
<ul>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/reference/#connecting-via-java">gremlin-driver</a>
|
||
(java) - A Gremlin Server driver for Java.</li>
|
||
<li><a
|
||
href="https://github.com/neo4j-contrib/neo4j-tinkerpop-api">neo4j-tinkerpop-api</a>
|
||
- Apache Licensed Neo4j API for TinkerPop3.</li>
|
||
<li><a
|
||
href="https://github.com/SteelBridgeLabs/neo4j-gremlin-bolt">neo4j-gremlin-bolt</a>
|
||
- Allows use of the Apache Tinkerpop Java API with the neo4j server
|
||
using the BOLT protocol.</li>
|
||
<li><a href="https://github.com/Syncleus/Ferma">Ferma</a> - An ORM / OGM
|
||
for the TinkerPop graph stack.</li>
|
||
</ul>
|
||
<h5 id="javascript">Javascript</h5>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/RedSeal-co/ts-tinkerpop">ts-tinkerpop</a> -
|
||
Utilities for using TinkerPop3 via the node-java API in Typescript.</li>
|
||
<li><a
|
||
href="https://github.com/jbmusso/gremlin-javascript">gremlin-javascript</a>
|
||
(js) - A Gremlin Server driver for JavaScript.</li>
|
||
</ul>
|
||
<h5 id="php">PHP</h5>
|
||
<ul>
|
||
<li><a href="https://github.com/PommeVerte/gremlin-php">gremlin-php</a>
|
||
- gremlin-server php driver compatible with TinkerPop3. It will allow
|
||
you to connect to gremlin-server and it’s backends (Neo4J, Titan,
|
||
etc.).</li>
|
||
</ul>
|
||
<h5 id="python">Python</h5>
|
||
<ul>
|
||
<li><a href="https://github.com/platinummonkey/mogwai">Mogwai</a> -
|
||
TinkerPop3 Graph Database Library for Python.</li>
|
||
<li><a
|
||
href="https://github.com/windj007/python-gremlin-rest">python-gremlin-rest</a>
|
||
- A REST-based client for Gremlin Server.</li>
|
||
<li><a
|
||
href="https://github.com/davebshow/gremlinclient">gremlinclient</a> - An
|
||
asynchronous Python 2/3 client for Gremlin Server that allows for
|
||
flexible coroutine syntax - Trollius, Tornado, Asyncio.</li>
|
||
<li><a href="https://github.com/davebshow/aiogremlin">aiogremlin</a>
|
||
(python) - A Python 3 library based on asyncio and aiohttp that uses
|
||
websockets to communicate with the Gremlin Server.</li>
|
||
<li><a
|
||
href="http://gremlinrestclient.readthedocs.org/en/latest/">gremlinrestclient</a>
|
||
(python) - Python 2/3 library that uses HTTP to communicate with the
|
||
Gremlin Server over REST.</li>
|
||
<li><a href="https://github.com/ZEROFAIL/goblin">goblin</a> - OGM for
|
||
TinkerPop3 Gremlin Server.</li>
|
||
<li><a href="https://github.com/davebshow/goblin">goblin 3.5</a> - A
|
||
Python 3.5 rewrite of the TinkerPop 3 OGM Goblin.</li>
|
||
</ul>
|
||
<h5 id="reactive">Reactive</h5>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/coreyauger/reactive-gremlin">reactive-gremlin</a>
|
||
(scala) - An Akka HTTP Websocket Connector.</li>
|
||
</ul>
|
||
<h5 id="scala">Scala</h5>
|
||
<ul>
|
||
<li><a href="https://github.com/mpollmeier/gremlin-scala">Gremlin
|
||
Scala</a> - Scala wrapper for Apache TinkerPop3 Graph DSL.</li>
|
||
<li><a
|
||
href="https://github.com/anvie/blueprints-scala">blueprints-scala</a> -
|
||
Tinkerpop Blueprints Scala.</li>
|
||
</ul>
|
||
<h4 id="query-languages"><A NAME="qlang"></A>Query Languages</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/emehrkay/gremlinpy">gremlin-py</a> -
|
||
Write pure Python Gremlin that can be sent to Gremlin Server.</li>
|
||
<li><a
|
||
href="https://github.com/mpollmeier/gremlin-scala">gremlin-scala</a> - A
|
||
Scala language wrapper for TinkerPop3.</li>
|
||
<li><a
|
||
href="https://github.com/jbmusso/gremlin-template-string">gremlin-template-string</a>
|
||
- A Javascript Gremlin language builder.</li>
|
||
<li><a
|
||
href="https://github.com/davebshow/ipython-gremlin">ipython-gremlin</a>
|
||
- Gremlin in IPython and Jupyter.</li>
|
||
<li><a href="http://ogre.clojurewerkz.org/">ogre</a> - A Clojure
|
||
language wrapper for TinkerPop3.</li>
|
||
<li><a href="https://github.com/bayofmany/peapod">Peapod</a> - A new
|
||
object-graph-wrapper for the Tinkerpop3 graph stack.</li>
|
||
<li><a
|
||
href="https://github.com/dkuppitz/sparql-gremlin">sparql-gremlin</a> - A
|
||
SPARQL to Gremlin traversal compiler.</li>
|
||
<li><a href="https://github.com/twilmes/sql-gremlin">sql-gremlin</a> - A
|
||
SQL to Gremlin traversal compiler.</li>
|
||
<li><a href="https://github.com/debug-ito/greskell">greskell</a> -
|
||
Haskell binding for Gremlin graph query language</li>
|
||
<li><a href="https://github.com/opencypher/cypher-for-gremlin">Cypher
|
||
for Gremlin</a> - Cypher for Gremlin adds Cypher support to any Gremlin
|
||
graph database.</li>
|
||
</ul>
|
||
<h3 id="tinkerpop-2-libraries"><A NAME="tinkerpop2"></A>TinkerPop 2
|
||
Libraries</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/Syncleus/Ferma">Ferma</a> - An ORM / OGM
|
||
for the TinkerPop graph stack.</li>
|
||
<li><a href="https://github.com/tinkerpop/frames">Frames</a> - An Object
|
||
to Graph Framework.</li>
|
||
<li><a href="https://github.com/clojurewerkz/archimedes">Archimedes</a>
|
||
- Clojure library for Blueprints (part of the TinkerPop graph
|
||
stack).</li>
|
||
<li><a href="https://github.com/JHUAPL/AccumuloGraph">AccumuloGraph</a>
|
||
- An implementation of TinkerPop Blueprints using Accumulo.</li>
|
||
<li><a href="https://github.com/Loupi/Frontenac">Frontenac</a> - A .NET
|
||
port of the TinkerPop Stack.</li>
|
||
<li><a href="https://github.com/platinummonkey/mogwai">Mogwai</a> -
|
||
TinkerPop 2 Graph Database Library for Python.</li>
|
||
<li><a
|
||
href="https://github.com/gjrwebber/spring-data-gremlin">spring-data-gremlin</a>
|
||
- Spring data gremlin makes it easier to implement Graph based
|
||
repositories. This module extends Spring Data to allow support for
|
||
potentially any Graph database that implements the TinkerPop Blueprints
|
||
2.x API.</li>
|
||
<li><a
|
||
href="https://github.com/anvie/blueprints-scala">blueprints-scala</a> -
|
||
TinkerPop Blueprints Scala.</li>
|
||
</ul>
|
||
<h2 id="communities"><A NAME="communites"></A>Communities</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://groups.google.com/forum/#!forum/gremlin-users">Gremlin-users</a>
|
||
- Mailing list for Gremlin users.</li>
|
||
<li><a href="http://stackoverflow.com/questions/tagged/tinkerpop3">Stack
|
||
Overflow</a> - Stack Overflow has a relatively active community.</li>
|
||
<li><a
|
||
href="http://mail-archives.apache.org/mod_mbox/incubator-tinkerpop-dev/">TinkerPop-dev</a>
|
||
- Mailing list for TP3 deverlopers.</li>
|
||
</ul>
|
||
<h2 id="people-to-follow"><A NAME="people-to-follow"></A>People to
|
||
Follow</h2>
|
||
<ul>
|
||
<li><a href="https://markorodriguez.com/">Marko Rodriguez</a> - Founder
|
||
of TinkerPop and Aurelius.</li>
|
||
<li><a href="https://twitter.com/spmallette?lang=en-gb">Stephen
|
||
Mallette</a> - Senior developer for Gremlin, TinkerPop and Titan
|
||
DB.</li>
|
||
<li><a href="https://about.me/daniel.kuppitz">Daniel Kuppitz</a> - One
|
||
of the main developers of Gremlin.</li>
|
||
<li><a href="https://github.com/pluradj">Jason Plurad</a> - Senior
|
||
Developer at IBM. TinkerPop committer and active on the community.</li>
|
||
</ul>
|
||
<h2
|
||
id="tutorials-and-resources"><A NAME="tutorials-and-resources"></A>Tutorials
|
||
and Resources</h2>
|
||
<ul>
|
||
<li><a href="http://tinkerpop.apache.org/gremlin.html">Introduction to
|
||
Gremlin</a> - Official introduction to the Gremlin language.</li>
|
||
<li><a
|
||
href="https://academy.datastax.com/resources/getting-started-tinkerpop-and-gremlin">Datastax
|
||
Introduction</a> - A tutorial provided by Datastax to Gremlin and
|
||
TinkerPop3.</li>
|
||
<li><a href="http://www.tinkerpopbook.com/">TinkerPop Book</a> - A long
|
||
promised book for Tinkeprop but never fulfilled until now. You cans till
|
||
request a notification.</li>
|
||
<li><a
|
||
href="http://events.linuxfoundation.org/sites/events/files/slides/ApacheCon2015TinkerPop3.pdf">Linux
|
||
Foundation Presentation</a> - A presentation by Linux Foundation given
|
||
by David Robinson at IBM aboit Apache TinkerPop3.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/tutorials/getting-started/">Getting
|
||
Started with TinkerPop</a> - Learn the basics of getting up and going
|
||
with TinkerPop.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/">The
|
||
Gremlin Console</a> - Discusses uses cases of the Gremlin Console and
|
||
usage patterns.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/3.2.1-SNAPSHOT/recipes/">Gremlin
|
||
Recipes</a> - Reference for common traversal patterns and style.</li>
|
||
<li><a
|
||
href="http://tinkerpop.apache.org/docs/3.2.1-SNAPSHOT/tutorials/gremlin-language-variants/">Gremlin
|
||
Language Variants</a> - Learn how to embed Gremlin in a host programming
|
||
language.</li>
|
||
<li><a href="http://sql2gremlin.com/">SQL2Gremlin</a> - Learn Gremlin
|
||
using typical patterns found when querying data with SQL.</li>
|
||
<li><a
|
||
href="https://academy.datastax.com/demos/getting-started-graph-databases">Getting
|
||
Started with Graph Databases</a> - Compares relational databases to
|
||
graph databases and SQL to Gremlin.</li>
|
||
<li><a href="https://github.com/krlawrence/graph">Graph</a> - Graph
|
||
Databases, Gremlin and TinkerPop - A Tutorial.</li>
|
||
</ul>
|
||
<h2 id="how-to-contribute"><A NAME="contributing"></A>How to
|
||
Contribute</h2>
|
||
<figure>
|
||
<img src="awesome-tinkerpop.jpg" alt="alt tag" />
|
||
<figcaption aria-hidden="true">alt tag</figcaption>
|
||
</figure>
|
||
<p>Please follow the <a href="contributing.md">guidelines here</a>.
|
||
Please, make sure your contribution and PR are awesome!</p>
|
||
<h2 id="license"><A NAME="license"></A>License</h2>
|
||
<p><a href="http://creativecommons.org/publicdomain/zero/1.0/"><img
|
||
src="https://licensebuttons.net/p/zero/1.0/88x31.png"
|
||
alt="CC0" /></a></p>
|
||
<p>To the extent possible under law, <a
|
||
href="https://github.com/mohataher"><span class="citation"
|
||
data-cites="mohataher">@mohataher</span></a> has waived all copyright
|
||
and related or neighboring rights to this work.</p>
|
||
<p><a href="https://github.com/mohataher/awesome-tinkerpop">tinkerpop.md
|
||
Github</a></p>
|