Skip to main content

Goblin Header

tests Requirements test coverage codecov Codacy Scrutinizer

PyPi Supported Versions Downloads SemVer docs Gitter

Goblin OGM on top of TinkerPop 3

Licensed under the Apache Software License v2

The 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 of Future. 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 data
  • Graph Computer, a framework for running algorithms against a Graph Database.
  • Support for both OLTP and OLAP engines.
  • TinkerGraph a Graph Database and the reference implementation for TinkerPop.
  • Native Gephi integration for visualizing graphs.
  • Interfaces for most major Graph Compute Engines including Hadoop M/R. Spark, and Giraph.

Goblin also supports any of the many databases compatible with TinkerPop including the following.

Some unique feature provided by the Goblin OGM include:

  • High level asynchronous Object Graph Mapper (OGM)
  • Integration with the official gremlin-python Gremlin Language Variant (GLV) - now provided by aiogremlin
  • Native Python support for asynchronous programing including coroutines, iterators, and context managers as specified in PEP 492
  • Asynchronous Python driver for the Gremlin Server - now provided by aiogremlin
  • Async Graph implementation that produces native Python GLV traversals - now provided by aiogremlin

Donating

Librepay

As 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 Documentation

The official homepage for the project is at http://goblin-ogm.com. The source is officially hosted on QOTO GitLab here however an up-to-date mirror is also maintained on Github here.

Documentation: latest

For support please use Gitter or the official Goblin mailing list and Discourse forum.

Please file bugs and feature requests on QOTO GitLab our old archived issues can still be viewed on Github as well.

Aparapi conforms to the Semantic Versioning 2.0.0 standard. That means the version of a release isnt arbitrary but rather describes how the library interfaces have changed. Read more about it at the Semantic Versioning page.

Related Projects

This 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goblin-2.2.1.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goblin-2.2.1-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file goblin-2.2.1.tar.gz.

File metadata

  • Download URL: goblin-2.2.1.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.8.1

File hashes

Hashes for goblin-2.2.1.tar.gz
Algorithm Hash digest
SHA256 bebe1dc443fec635eb7303cad598c7933ca46ee3ac6e90754505b1708eadd68a
MD5 52602665a464e2942f32114263dd1fd6
BLAKE2b-256 34260f497a3bb5fd8a37cf83ead04d2cbc876bf542abf8c2377a6079a735a43f

See more details on using hashes here.

File details

Details for the file goblin-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: goblin-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.8.1

File hashes

Hashes for goblin-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68281133d3f654220596b8a5f0fcf5d73eb0fc872d2e920a0f71f41ceaf2f8db
MD5 e3203eeaa3bda976b2bec658c4c40d20
BLAKE2b-256 010c03973066c8481da30910b5326db744c27c9b1c4e191caf5017d2e66d22b6

See more details on using hashes here.

Release history Release notifications | RSS feed

2.2.3

2 files

2.2.2

2 files

This release

2.2.1 This release

2 files

2.2.0

1 file

2.1.0

2 files

2.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page