Fast Python bindings for UnQLite, a lightweight, embedded NoSQL database and JSON document store.

UnQLite features:

  • Embedded, zero-conf database
  • Transactional (ACID)
  • Single file or in-memory database
  • Key/value store
  • Cursor support and linear record traversal
  • JSON document store
  • Thread-safe
  • Terabyte-sized databases

UnQLite-Python features:

  • Compiled library, extremely fast with minimal overhead.
  • Supports key/value operations, cursors, and transactions using Pythonic APIs.
  • Support for Jx9 scripting.
  • APIs for working with Jx9 JSON document collections.
  • Supports both Python 2 and Python 3.

The previous version (0.2.0) of unqlite-python utilized ctypes to wrap the UnQLite C library. By switching to Cython, key/value, cursor and Jx9 collection operations are an order of magnitude faster. In particular, filtering collections using user-defined Python functions is now much, much more performant.

The source code for unqlite-python is hosted on GitHub.


If you encounter any bugs in the library, please open an issue, including a description of the bug and any related traceback.


If you like UnQLite, you might also want to check out Vedis, an embedded key/value database modeled after Redis (python bindings: vedis-python).


Indices and tables