Skip to main content

An asynchronous DSL for the Gremlin-Python driver

Project description

Goblin logo AIO Gremlin

tests Requirements test coverage codecov Codacy Scrutinizer

PyPi Supported Versions Downloads SemVer docs Gitter

An asynchronous DSL for the Gremlin-Python driver

Licensed under the Apache Software License v2

aiogremlin is an asynchronous DSL based on the official Gremlin-Python GLV designed for integration with event loop based asynchronous Python networking libraries, including asyncio, aiohttp, and tornado. It uses the async/await syntax introduced in PEP 492, and is therefore Python 3.5+ only.

aiogremlin tries to follow Gremlin-Python as closely as possible both in terms of API and implementation. It is released according to the TinkerPop release schedule.

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

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

aiogremlin 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) - provided by goblin
  • Integration with the official gremlin-python Gremlin Language Variant (GLV)
  • Native Python support for asynchronous programing including coroutines, iterators, and context managers as specified in PEP 492
  • Asynchronous Python driver for the Gremlin Server
  • Async Graph implementation that produces native Python GLV traversals

Getting Started

import asyncio
from aiogremlin import DriverRemoteConnection, Graph


loop = asyncio.get_event_loop()


async def go(loop):
  remote_connection = await DriverRemoteConnection.open(
    'ws://localhost:8182/gremlin', 'g')
  g = Graph().traversal().withRemote(remote_connection)
  vertices = await g.V().toList()
  await remote_connection.close()
  return vertices


vertices = loop.run_until_complete(go(loop))
print(vertices)
# [v[1], v[2], v[3], v[4], v[5], v[6]]

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.

  • Goblin - The main library, the Goblin OGM
  • 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.

Project details


Download files

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

Source Distribution

aiogremlin-3.3.4.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

aiogremlin-3.3.4-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file aiogremlin-3.3.4.tar.gz.

File metadata

  • Download URL: aiogremlin-3.3.4.tar.gz
  • Upload date:
  • Size: 18.4 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 aiogremlin-3.3.4.tar.gz
Algorithm Hash digest
SHA256 1807618643bf706199431064d8ff18086b9cdd1cf2f0060c8698fe8963aec709
MD5 bc0b588808cd8bdb573826060e5312fb
BLAKE2b-256 ee79768aa704b228960fa00dde4649b986a7759a01fce159585d073121f14ae2

See more details on using hashes here.

File details

Details for the file aiogremlin-3.3.4-py3-none-any.whl.

File metadata

  • Download URL: aiogremlin-3.3.4-py3-none-any.whl
  • Upload date:
  • Size: 26.2 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 aiogremlin-3.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 98759950bd4e97c2c533c326972044d2bd912362a9bbe383169c3d6332581477
MD5 f7e4f790a7c13a6d3539d460ad05813e
BLAKE2b-256 c970f5b79d23ef957dca150327964d99bdbf09d3eb64319740ab56cbd0c00b4c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page