
[](https://github.com/rust-util-collections/vsdb/actions/workflows/rust.yml)
[](https://crates.io/crates/vsdb)
[](https://docs.rs/vsdb)
[](https://github.com/rust-random/rand#rust-version-requirements)
# vsdb
vsdb is a 'std-collection-like' database.
This is a simplified version of the original [**vsdb**](https://crates.io/crates/vsdb/0.70.0), retaining only the most practical and stable parts.
[**To view the change log check here**](https://github.com/rust-util-collections/vsdb/blob/master/CHANGELOG.md).
### Highlights
- Most APIs is similar as the coresponding data structures in the standard library
- Use `Vecx` just like `Vec`
- Use `Mapx` just like `HashMap`
- Use `MapxOrd` just like `BTreeMap`
- ...
### Compilation features
- [ **DEFAULT** ] `rocks_backend`, use `rocksdb` as the backend database
- Stable
- C++ implementation, difficult to be compiled into a static binary
- `parity_backend`, use `parity-db` as the backend database
- Experimental
- Pure rust implementation, can be easily compiled into a static binary
- `msgpack_codec`, use `rmp-serde` as the codec
- Faster running speed than json
- `json_codec`, use `serde_json` as the codec
- Better generality and compatibility
- `compress`, enable compression in the backend database
### NOTE
- The serialized result of a vsdb instance can not be used as the basis for distributed consensus
- The serialized result only contains some meta-information(storage paths, etc.)
- These meta-information are likely to be different in different environments
- The correct way is to read what you need from it, and then process the real content