https://github.com/surrealdb/vart
A timed adaptive radix trie data-structure, used in SurrealKV
https://github.com/surrealdb/vart
adaptive-radix-tree radix-tree surreal surrealdb surrealkv versioned versioning
Last synced: 3 months ago
JSON representation
A timed adaptive radix trie data-structure, used in SurrealKV
- Host: GitHub
- URL: https://github.com/surrealdb/vart
- Owner: surrealdb
- License: apache-2.0
- Created: 2023-06-26T12:47:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-07T03:37:06.000Z (7 months ago)
- Last Synced: 2025-06-22T07:52:15.368Z (4 months ago)
- Topics: adaptive-radix-tree, radix-tree, surreal, surrealdb, surrealkv, versioned, versioning
- Language: Rust
- Homepage: https://surrealdb.com
- Size: 946 KB
- Stars: 103
- Watchers: 10
- Forks: 19
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# vart: Versioned Adaptive Radix Trie for Rust
vart is a Rust library that implements an immutable Versioned Adaptive Radix Trie data structure. It allows you to efficiently manage key-value pairs with multiple versions and timestamps, making it a useful datastructure for applications that require tracking changes over time and enabling snapshot reads. With vart, you can handle versioned data, insert, delete, and query key-value items based on specific versions.

## Features
- **Immutable:** Built on an immutable radix trie data structure employing copy-on-write semantics. This design allows for the storage and retrieval of multiple versions of the same key.
- **Version Tracking:** Track modifications to the key and manage multiple versions of the same key within the data structure.
- **Snapshot Reads:** Capture the current state of the trie and create immutable snapshots, allowing for point-in-time views of the data.