SkipDB
An embedded, in-memory, zero-copy, ACID, MVCC, almost lock-free, and serializable snapshot isolation database engine.
Features
- ACID, MVCC, serializable snapshot isolation, concurrent safe and almost lock-free.
- No extra allocation and copy, there is no
Arc
wrapper for both key and value stored in the database, which means that users provideK
andV
, and database storeK
andV
directly. - Zero-copy and in-place compaction, which means there is no copy, no extra allocation when compacting.
- Concurrent execution of transactions, providing serializable snapshot isolation, avoiding write skews.
- Both read transaction and write transaction are
Send + Sync + 'static
, which means you do not need to handle annoying lifetime problem anymore. - Lock-free and concurrent safe read transaction: the read transaction is totally concurrent safe and can be shared in multiple threads, there is no lock in read transaction.
BTreeMap
like user friendly API and all iterators implementIterator
trait, which means users use Rust powerful conbinators when iterating over the database.- Async version is runtime agnostic,
tokio
,async-std
,smol
,wasm-bindgen-futures
and any other async runtime. - 100% safe, sets
[forbid(unsafe_code)]
.