Package: goblin
Goblin OGM on top ofTinkerPop 3Licensed under the Apache Software License v2The original Goblin was a TinkerPop 3 ready port of Cody Lee's mogwai, an excellent library that had been developed for use with pre-TinkerPop 3 versions of Titan. We designed Goblin to provide asynchronous programming abstractions that would work using any version of Python 2.7 + with a variety of asynchronous I/O libraries (Tornado, Asyncio, Trollius). While in theory this was great, we found that in our effort to promote compatibility we lost out on many of the features the newer Python versions provide to help developers deal with asynchronous programming. Our code base became large and made heavy use of callbacks, and nearly all methods and functions returned some sort ofFuture. This created both a clunky user API, and a code base that was difficult to reason about and maintain.So, we decided to rewrite Goblin from scratch...Goblin is built directly on top of TinkerPop and allows access to all of the internals. This ensures all the
TinkerPop features are available to the end-user. The TinkerPop stack provides several tools which can be used to work
with Goblin.Gremlin, a database agnostic query language for Graph Databases.Gremlin Server, a server that provides an interface for executing Gremlin on remote machines.a data-flow framework for splitting, merging, filtering, and transforming of dataGraph Computer, a framework for running algorithms against a Graph Database.Support for bothOLTPandOLAPengines.TinkerGrapha Graph Database and the reference implementation for TinkerPop.NativeGephiintegration for visualizing graphs.Interfaces for most major Graph Compute Engines includingHadoop M/R.Spark, andGiraph.Goblin also supports any of the many databases compatible with TinkerPop including the following.JanusGraphTitanNeo4jOrientDBMongoDBOracle NoSQLTinkerGraphSome unique feature provided by the Goblin OGM include:High level asynchronousObject Graph Mapper(OGM)Integration with theofficial gremlin-python Gremlin Language Variant(GLV) - now provided byaiogremlinNative Python support for asynchronous programing includingcoroutines,iterators, andcontext managersas specified inPEP 492Asynchronous Python driverfor the Gremlin Server - now provided byaiogremlinAsyncGraphimplementation that producesnative Python GLV traversals- now provided byaiogremlinDonatingAs an open-source project we run entierly off donations. Buy one of our hardworking developers a beer by donating with one of the above buttons. All donations go to our bounty fund and allow us to place bounties on important bugs and enhancements.Support and DocumentationThe official homepage for the project is athttp://goblin-ogm.com. The source is officially hosted onQOTO GitLab herehowever an up-to-date mirror is also maintained onGithub here.Documentation:latestFor support please useGitteror theofficial Goblin mailing list and Discourse forum.Please file bugs and feature requests onQOTO GitLabour old archived issues can still be viewed onGithubas well.Aparapi conforms to theSemantic Versioning 2.0.0standard. That means the version of a release isnt arbitrary but rather describes how the library interfaces have changed. Read more about it at theSemantic Versioning page.Related ProjectsThis particular repository only represents the one component in a suite of libraries. There are several other related repositories worth taking a look at.AIO Gremlin- An asynchronous Gremlin DSL for gremlin-python.Goblin Buildchain- Docker image containing all the needed tools to build and test Goblin.Python Gremlin Server- Vanilla Gremlin-server with Python Script Engine loaded, used for integration testing.