Crate redb_32bit

Source
Expand description

§redb

A simple, portable, high-performance, ACID, embedded key-value store.

redb is written in pure Rust and is loosely inspired by lmdb. Data is stored in a collection of copy-on-write B-trees. For more details, see the design doc.

§Features

  • Zero-copy, thread-safe, BTreeMap based API
  • Fully ACID-compliant transactions
  • MVCC support for concurrent readers & writer, without blocking
  • Crash-safe by default
  • Savepoints and rollbacks

§Example

use redb::{Database, Error, ReadableTable, TableDefinition};

const TABLE: TableDefinition<&str, u64> = TableDefinition::new("my_data");

#[cfg(not(target_os = "wasi"))]
fn main() -> Result<(), Error> {
    let file = tempfile::NamedTempFile::new().unwrap();
    let db = Database::create(file.path())?;
    let write_txn = db.begin_write()?;
    {
        let mut table = write_txn.open_table(TABLE)?;
        table.insert("my_key", &123)?;
    }
    write_txn.commit()?;

    let read_txn = db.begin_read()?;
    let table = read_txn.open_table(TABLE)?;
    assert_eq!(table.get("my_key")?.unwrap().value(), 123);

    Ok(())
}

Modules§

backends

Structs§

AccessGuard
AccessGuardMut
Builder
Configuration builder of a redb Database.
Database
Opened redb database file
DatabaseStats
Informational storage stats about the database
Drain
DrainFilter
MultimapRange
MultimapTable
A multimap table
MultimapTableDefinition
Defines the name and types of a multimap table
MultimapValue
Range
ReadOnlyMultimapTable
A read-only multimap table
ReadOnlyTable
A read-only table
ReadOnlyUntypedMultimapTable
A read-only untyped multimap table
ReadOnlyUntypedTable
A read-only untyped table
ReadTransaction
A read-only transaction
RepairSession
Savepoint
Table
A table containing key-value mappings
TableDefinition
Defines the name and types of a table
TableStats
Informational storage stats about a table
TypeName
UntypedMultimapTableHandle
UntypedTableHandle
WriteTransaction
A read/write transaction

Enums§

CommitError
Errors related to committing transactions
CompactionError
Errors related to compaction
DatabaseError
Errors related to opening a database
Durability
Error
Superset of all other errors that can occur. Convenience enum so that users can convert all errors into a single type
SavepointError
Errors related to savepoints
StorageError
General errors directly from the storage layer
TableError
Errors related to opening tables
TransactionError
Errors related to transactions

Traits§

MultimapTableHandle
MutInPlaceValue
Implementing this trait indicates that the type can be mutated in-place as a &mut u8. This enables the .insert_reserve() method on Table
ReadableMultimapTable
ReadableTable
RedbKey
RedbValue
StorageBackend
Implements persistent storage for a database.
TableHandle