vsdb is a high-performance, embedded database designed to feel like using Rust's standard collections (Vec, HashMap, etc.). It provides persistent, disk-backed data structures with a familiar, in-memory feel.
This repository is a simplified version of the original vsdb, retaining the most practical and stable features while focusing on performance and ease of use.
For a detailed guide and API examples, see the vsdb crate documentation.
The vsdb project is a workspace containing several related crates:
| Crate | Version | Documentation | Path | Description |
|---|---|---|---|---|
| vsdb | wrappers |
High-level, typed data structures (e.g., Mapx, MapxOrd). This is the primary crate for most users. |
||
| vsdb_core | core |
Low-level implementations, including storage backends and raw data structures. | ||
| vsdb_slot_db | utils/slot_db |
A skip-list-like, timestamp-based index for efficient paged queries. | ||
| vsdb_trie_db | utils/trie_db |
An out-of-the-box Merkle Patricia Trie (MPT) implementation. |
- Performance-focused API: The
insert()andremove()methods no longer return the old value, eliminating expensive read-before-write operations and significantly improving write performance. - Simplified API: The unreliable
len()andis_empty()methods have been removed from map structures. If you need to track collection size, maintain a separate counter in your application. - Removed Types:
VecxandVecxRawhave been removed as they heavily depended on the unreliablelen()tracking.