Crate bbolt_rs

source ·
Expand description

bbolt-rs is an implementation of the etcd-io/bbolt database in Rust. It successfully reads and commits, but it has some limitations.

Features:

  • Arena memory allocation per transaction
  • Explicitly designed to prevent transaction dependant resources from escaping the transaction.
  • RwLock based transactions
  • File backed database
  • Memory backed database
  • Miri tested to prevent memory errors in unsafe blocks
  • Simple and straightforward public APIs

Currently not supported:

  • Tx.copy
  • Most of the main application
  • A variety of DB Options including
    • no freelist sync
    • file open timeout
  • Panic handling during bench

§Feature flags

§Stable features

  • compat — Enable working with Go Bolt databases
  • strict — Run database check after each commit
  • long-tests — Run long tests
  • test-mem-backend — Run tests using the memory backend

§Experimental features

The following features are experimental

  • allgasnobrakes — Disables RefCell runtime memory guarantees. No performance gain.

    ⚠️Unit tests should prevent undefined behavior, but you’re on your own!

  • try-begin — Enable try family of functions. Transactions wrapped in Option instead of blocking

Modules§

Structs§

Enums§

Traits§

Type Aliases§