Metadata-Version: 2.1
Name: bigdict
Version: 0.2.0
Summary: Bigdict
Author-email: Zepu Zhang <zepu.zhang@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: rocksdb
Requires-Dist: lmdb
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: numpydoc ; extra == "doc"
Requires-Dist: pydata-sphinx-theme ; extra == "doc"
Requires-Dist: mypy ; extra == "test"
Requires-Dist: ruff ; extra == "test"
Requires-Dist: pytest-asyncio ; extra == "test"
Project-URL: Source, https://github.com/zpz/bigdict
Provides-Extra: doc
Provides-Extra: test

bigdict
=======

``bigdict`` implements a persisted, out-of-memory dict for Python.

The usage API strives to be as close as possible to the built-in ``dict``, with a small number of extras.

The "engine", or "back-end", is currently ``rocksdb``. However, ``rocksdb`` is not the point; the point is rather a "persisted, out-of-memory dict". Criteria used in choosing the engine:

- It must be *embedded*, as opposed to client/server.
- It must use more files for storage as the data size grows, hence keeping file sizes modest,
  as opposed to a single file growing in size. (This ruled out, e.g. SQLite and LMDB.)
- It must be a mature project with a reliable Python binding.


Installation::


    $ pip install bigdict

Possible enhancements in the future:

- Support remote storage.
- Implement a cache backed by ``bigdict``.
- A more performant engine to replace ``rocksdb``.

