Skip to main content

Eve ArangoDB data layer

Project description

Provides a data layer for ArangoDB to be used with Eve REST API framework.


  • CRUD operations for using ArangoDB as a document store
  • Supports the same operations on edge documents for managing relations
  • Filtering based on AQL syntax
  • Pagination and sorting

Not supported (yet):

  • Proper graph queries
  • Versioning
  • Projection
  • Aggregation
  • Etc.


$ pip install eve-arango


from eve import Eve
from eve_arango import ArangoDB

app = Eve(data=ArangoDB)

The following settings are processed:

# These are necessary for item lookups to work,
# the regex is for the characters allowed in ArangoDB keys.
ID_FIELD = '_key'
ITEM_URL = 'regex("[\w\d\-:.@()+,=;$!*\'%]+")'

# If a database named ARANGO_DB's value doesn't exist,
# it will be created when the data layer is initialized.
ARANGO_DB = 'database_name'
ARANGO_HOST = 'localhost'

# If the keys in DOMAIN do not exist as collection names,
# they will be created when the data layer is initialized.
# There's no need to add '_id', '_key' or '_rev' fields,
# they are added to the schema automatically.
# If you specifiy 'edge_collection': True as below,
# an edge collection will be created if it does not exist.
    'people': {
        'schema': {
            'name': {
                'type': 'string'
    'friends_with': {
        'edge_collection': True
    # ...

Filtering and sorting

eve-arango uses AQL syntax for filtering via the Eve where parameter. Mongo-style queries are not valid. Here are some examples of valid (url decoded) queries and their resulting AQL:

?where=foo == "bar"
# Spaces are optional.
# FILTER == "bar"

# Use , as simple separator between FILTER expressions.
# FILTER doc.num IN [1,2,3]
# FILTER doc.present != null

# AND, OR, NOT can be used to combine expressions.
# FILTER doc.a == "a" AND doc.b == "b" OR doc.c == "c"

Sorting uses the regular Eve syntax. An example is given below:

# SORT, doc.age DESC


Contributions are welcome. Open an issue and send a pull request.


MIT License.

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

eve-arango-0.3.3.tar.gz (6.6 kB view hashes)

Uploaded source

Built Distribution

eve_arango-0.3.3-py3-none-any.whl (6.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page