Scruby

Asynchronous library for building and managing a hybrid database,
by scheme of key-value.

Build Status Docs PyPI pyversions PyPI status PyPI version fury.io
Types: Pyrefly Code style: Ruff Format PyPI Downloads License: MIT License: GPL v3


The library uses fractal-tree addressing and
the search for documents based on the effect of a quantum loop.

The size of each collection is 16|256|4294967296 branches,
each branch can store one or more keys.

The value of any key in collection can be obtained in 1-8 steps,
thereby achieving high performance.

The effectiveness of the search for documents based on a quantum loop,
requires a large number of processor threads.


Attention

Version 4.0
All reasons that could lead to unrealistic production requirements have been eliminated.
Now uses `aiodbm` to work with documents on the file system.
The principle of creating custom tasks has been updated.
See documentation.




Parameter `Scruby.run(hash_reduce_left = 7)`:
7 = 16 branches in collection (default) -> Docs: ~16000+, RAM: 2G+, CPU: 2+ (for development).
6 = 256 branches in collection -> Docs: ~256000+, RAM: 2G+, CPU: 2+ (for small projects).
0 = 4294967296 branches in collection -> Docs: ~4,294967296×10¹²+, RAM: 2G+, CPU: 2+ (only operations with keys are available).

If you notice the production server slowing down,
you will need to add RAM and CPU.


List of plugins

Requirements

Changelog

MIT

GPL-3.0