Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/surrealdb/surrealkv
A low-level, versioned, embedded, ACID-compliant, key-value database for Rust
https://github.com/surrealdb/surrealkv
embedded-database key-value-database key-value-store kv-store surreal surrealdb surrealkv
Last synced: 2 months ago
JSON representation
A low-level, versioned, embedded, ACID-compliant, key-value database for Rust
- Host: GitHub
- URL: https://github.com/surrealdb/surrealkv
- Owner: surrealdb
- License: apache-2.0
- Created: 2023-06-26T12:47:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-05T08:51:30.000Z (3 months ago)
- Last Synced: 2024-11-05T09:25:54.737Z (3 months ago)
- Topics: embedded-database, key-value-database, key-value-store, kv-store, surreal, surrealdb, surrealkv
- Language: Rust
- Homepage: https://surrealdb.com
- Size: 254 KB
- Stars: 292
- Watchers: 19
- Forks: 18
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome - surrealdb/surrealkv - A low-level, versioned, embedded, ACID-compliant, key-value database for Rust (Rust)
README
# surrealkv
surrealkv is a versioned, low-level, persistent, embedded key-value database implemented in Rust. This ACID-compliant database offers the following features:
- **Transaction Support**: SurrealKV supports rich transactions, allowing multiple items to be inserted, updated, or deleted simultaneously. These transactions are applied atomically, ensuring atomicity and consistency in line with ACID principles. This makes updates invisible until they are committed.
- **Isolation**: SurrealKV provides two levels of isolation - Snapshot Isolation and Serializable Snapshot Isolation - to prevent concurrent transactions from interfering with each other.
- **Durability**: SurrealKV ensures durability by persisting data on disk, protecting against data loss in the event of a system failure.
- **Multi-Version Concurrency Control (MVCC)**: SurrealKV employs immutable versioned adaptive radix tries via [vart](https://github.com/surrealdb/vart). This allows for any number of concurrent readers and writers to operate without blocking each other.
For more information on the underlying immutable versioned adaptive radix tries used, visit [vart](https://github.com/surrealdb/vart).
[![License](https://img.shields.io/badge/license-Apache_License_2.0-00bfff.svg?style=flat-square)](https://github.com/surrealdb/surrealkv)
## Features
- [x] **In-memory Index**
- [x] **Embeddable**
- [x] **ACID Semantics**
- [x] **Transaction Support:**
- [x] **Built-in Item Versioning API**
- [x] **Multi-Version Concurrency Control (MVCC) support**
- [x] **Multiple Concurrent Readers and Writers**
- [x] **Persistence through an append-only File**
- [x] **Compaction**