Skip to main content

Graph Database for everyday use

Project description

This program is alpha becarful


Ajgu is graph database backed by Oracle Berkeley Database key/value store aka. bsddb. It’s meant to be an easy to use, just works persistent graph for people that want to experiment with graph databases. SQLite for graphs.

Documentation can be found @

Development happens @



  • add syncless transaction with sync=False in BSDDB3 storage
  • add movielens latest small load script
  • improve http frontend and move it inside ajgu code
  • add documentation in docs directory using mkdocs


  • ajgu: storage: Add File based backend
  • ajgu: storage: Add Transaction less bsddb3 backend
  • examples: Add conceptnet load script
  • examples: Add mini microblog app


Important changes:

  • Several API changes
  • Transaction support was fully broken, please upgrade if you require transactions.


  • move to unittest.TestCase
  • use uuid4 for identifier generation
  • move Element, Vertex and Edge class to module
  • rework to implement Storage based backend to make future work on multiple backends easier
  • rework now it’s and Element.props with new API (with tests)
  • implement Transaction.edge & Transaction.vertex API via manager classes (cf. Same API as before but element specific. Now you create a vertex with txn.vertex.create('software'), and retrieve an edge with txn.edge.get(ajgu_depends_bsddb).
  • add txn.*.slice
  • index elements by labels to speed up txn.*.label queries.
  • several cleanups, removed old index/query code (uzelmumu module still works)
  • fix pypi example to work with new API


  • add example app
  • better error when magic keys is used but fails
  • fix bug where edge and vertex weren’t not saved
  • fix import error in tests

Getting started


  • python3
  • bsddb3
  • msgpack

bsddb3 must be installed on you system. Dependending on the distribution it’s called db or bdb. If you have a python3-bsddb3 package use that one.

You can use python develop or pip install ajgu but you will need python 3 and bsddb headers.


Feel free to contact me at if you need suppport or want to discuss matters related to graph databases.


  1. What ajgu means?

    ajgu is a beam used in house construction in amazigh language.

  2. Why not use SQLite instead of bsddb3?

    People say sqlite and relationnal database are not meant to store graph data. I believe them. Also key/value stores offer the necessary flexibility to store many kinds of data.

  3. Where can I find a graph server with multi *thread* and *python querying*?

    GraphitiDB I never used it for the real. It’s relying on old version of Tinkerpop.

  4. Are GraphDBs useful beyond prototyping?

    You tell me!

  5. GraphDBs are awesome, where can I learn more?

Project details

Download files

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

Files for ajgu, version 15.6.25
Filename, size File type Python version Upload date Hashes
Filename, size Ajgu-15.6.25.tar.gz (981.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page