[−][src]Crate sanakirja
Fast and reliable key-value store, under the Mozilla Public License (link as you like, share modifications).
Features
-
ACID semantics.
-
B trees with copy-on-write.
-
Support for referential transparency: databases can be cloned in time O(1).
-
Ultimately, we'd like to have no locks. Right now, there is a cross-process read write lock, that only
commit
takes exclusively (other parts of a mutable transaction need just a read access).
This version is only capable of inserting and retrieving keys in the database, allowing several bindings for the same key (get will retrieve the first one).
Modules
value | Values, which might be either inlined on the page, or stored as a reference if too large. |
Structs
Cursor | An iterator over a database. |
Db | A database is a skip list of (page offset, key, value). |
Env | Environment, required to start any transactions. Thread-safe, but opening the same database several times in the same process is not cross-platform. |
Iter | Iterator on a page, plus a middle element immediately after |
MutTxn | A mutable transaction. |
RevCursor | An iterator over a database. |
Txn | An immutable transaction. |
Enums
Alignment | Alignment of representables on page. The only implication is on how the |
Error | Errors that can occur while transacting. |
Traits
Commit | Transactions that can be committed. |
Representable | Types that can be stored in a Sanakirja database, as keys or values. Some care must be taken when storing things. |
Transaction | Trait for operations common to mutable and immutable transactions. |
Functions
debug | Dumps a number of databases into a dot file. |