# cberner/redb

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cberner-redb).**

4,248 stars · 199 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/cberner/redb
- Homepage: https://www.redb.org
- awesome-repositories: https://awesome-repositories.com/repository/cberner-redb.md

## Topics

`rust`

## Description

redb is an embedded key-value store and ACID-compliant storage engine. It functions as a persistent storage system for saving and retrieving data as key-value pairs within a tree structure.

The engine is built as an MVCC transactional database, utilizing multi-version concurrency control to manage simultaneous reads and writes without blocking. It employs a single-writer multi-reader model to ensure data consistency while allowing multiple threads to access the store.

The system provides persistent state management and atomic transaction management to prevent data corruption during crashes. It handles concurrent data access and ensures that groups of changes are applied as single units.

## Tags

### Data & Databases

- [ACID Transactional Cores](https://awesome-repositories.com/f/data-databases/acid-transactional-cores.md) — Provides an ACID-compliant transactional core with atomic, consistent, isolated, and durable operations. ([source](https://cdn.jsdelivr.net/gh/cberner/redb@master/README.md))
- [Embedded Key-Value Stores](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/embedded-key-value-stores.md) — Provides an ACID-compliant embedded key-value store with BTree-based persistent storage.
- [Concurrent Read-Write Transactions](https://awesome-repositories.com/f/data-databases/acid-transactional-cores/concurrent-read-write-transactions.md) — Uses MVCC to isolate concurrent transactions, allowing non-blocking reads and writes. ([source](https://www.redb.org/post/))
- [BTree-Based Storage](https://awesome-repositories.com/f/data-databases/append-only-storage-engines/tree-based-storage/btree-based-storage.md) — Uses a B-tree structure to organize persistent key-value data with ordered access.
- [Atomic Commit Logs](https://awesome-repositories.com/f/data-databases/atomic-commit-logs.md) — Writes batches of changes as single atomic units to prevent partially-updated states. ([source](https://www.redb.org/post/))
- [Atomic Batch Commits](https://awesome-repositories.com/f/data-databases/bulk-data-operations/atomic-batch-operations/database-atomic-batches/atomic-batch-commits.md) — Provides atomic batch commits that ensure groups of writes are applied as single units.
- [BTreeMap-Based Storage Engines](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/embedded-storage-engines/btreemap-based-storage-engines.md) — Provides a BTreeMap-based storage engine with zero-copy, thread-safe data access.
- [Single-Writer Multi-Reader Stores](https://awesome-repositories.com/f/data-databases/key-value-stores/concurrent/single-writer-multi-reader-stores.md) — Implements a single-writer multi-reader model with MVCC for concurrent data access.
- [Multi-Version Concurrency Control](https://awesome-repositories.com/f/data-databases/multi-version-concurrency-controls/multi-version-concurrency-control.md) — Allows multiple readers and a single writer to operate simultaneously using multi-version concurrency control.
- [Persistent Application State](https://awesome-repositories.com/f/data-databases/persistent-application-state.md) — Saves application state to disk reliably with automatic recovery after crashes or restarts.
- [Single-Writer Multi-Reader Locking](https://awesome-repositories.com/f/data-databases/single-writer-multi-reader-locking.md) — Employs a single-writer multi-reader locking model for coordinated concurrent access.
- [ACID-Compliant](https://awesome-repositories.com/f/data-databases/storage-engines/acid-compliant.md) — Ships an ACID-compliant storage engine with crash safety and rollback support.
- [MVCC Implementations](https://awesome-repositories.com/f/data-databases/versioned-storage/mvcc-implementations.md) — Implements MVCC to manage concurrent access with multiple data versions for non-blocking reads.
- [BTree-Based MVCC Engines](https://awesome-repositories.com/f/data-databases/versioned-storage/mvcc-implementations/btree-based-mvcc-engines.md) — Uses BTree-based persistent storage with MVCC to manage concurrent reads and writes without blocking.
- [Write-Ahead Logging](https://awesome-repositories.com/f/data-databases/write-ahead-logging.md) — Implements write-ahead logging to ensure durability and crash recovery for all mutations.
- [Ordered Map Data Access](https://awesome-repositories.com/f/data-databases/ordered-data-structures/ordered-map-data-access.md) — Provides ordered map data access through a BTreeMap interface with range query support.
- [BTreeMap](https://awesome-repositories.com/f/data-databases/query-interfaces/btreemap.md) — Provides a BTreeMap query interface for ordered key-value access without raw query syntax. ([source](https://www.redb.org/post/))
- [BTreeMap APIs](https://awesome-repositories.com/f/data-databases/serialization-frameworks/zero-copy/btreemap-apis.md) — Provides a zero-copy BTreeMap interface for intuitive, thread-safe key-value access.
- [BTreeMap Key-Value Access](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/embedded-key-value-stores/btreemap-key-value-access.md) — Offers a BTreeMap-like API for zero-copy, thread-safe key-value access. ([source](https://cdn.jsdelivr.net/gh/cberner/redb@master/README.md))

### Operating Systems & Systems Programming

- [Memory-Mapped I/O](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-mapped-i-o.md) — Maps storage files directly into process memory for efficient data access without system calls.
