GitXplorerGitXplorer
s

surrealkv

public
252 stars
19 forks
13 issues

Commits

List of commits on branch main.
Verified
727f050458cd3fda46061d3f5ffed3b82e7c9faa

chore: bump version 0.3.1 (#67)

aarriqaaq committed a month ago
Verified
026d6c0372298e6b07a6371c5f7a5892df2054f6

fix: make checksum based on the entire record fields (#65)

aarriqaaq committed 2 months ago
Verified
4aae1fd9478d7850776b1b4568836de5e5c0a11c

chore: Remove extra read buffering (#64)

ggsserge committed 2 months ago
Verified
6742e14da94be4e3e94657a0ef91e5b8110cfe33

Remove block buffering from the write path (#63)

ggsserge committed 2 months ago
Verified
a0a8d70f7cac148c8c502f3e506574a65f4528e5

chore: Remove unused WAL (#62)

ggsserge committed 2 months ago
Verified
372950e6ae49c70d4d3aa3b5ed806d1659efb82c

perf: Reduce allocations and lookups in the write path (#60)

ggsserge committed 2 months ago

README

The README file for this repository.

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. 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.

License

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

Important Notice

This project is actively evolving, and as such, there might be changes to the file format, APIs, and feature set in future releases until reaching stability. Developers are encouraged to stay informed about updates and review future release notes for any breaking changes.

Feel free to contribute, provide feedback, or report issues to help shape the future of surrealkv. Thank you for your interest and involvement in this project!