bbolt_rs/
lib.rs

1//! bbolt-rs is an implementation of the [etcd-io/bbolt](https://github.com/etcd-io/bbolt) database in Rust.
2//! It successfully reads and commits, but it has some limitations.
3//!
4//! Features:
5//! * Arena memory allocation per transaction
6//! * Explicitly designed to prevent transaction dependant resources from escaping the transaction.
7//! * RwLock based transactions
8//! * File backed database
9//! * Memory backed database
10//! * Miri tested to prevent memory errors in unsafe blocks
11//! * Simple and straightforward public APIs
12//!
13//! Currently not supported:
14//! * Tx.copy
15//! * Most of the main application
16//! * A variety of DB Options including
17//!   * no freelist sync
18//!   * file open timeout
19//! * Panic handling during bench
20//!
21//!
22//! ## Feature flags
23#![doc = document_features::document_features!()]
24
25mod arch;
26mod bucket;
27mod common;
28mod cursor;
29mod db;
30mod node;
31#[cfg(test)]
32mod test_support;
33mod tx;
34
35mod iter;
36pub mod util;
37
38pub use bucket::{BucketApi, BucketImpl, BucketRwApi, BucketRwImpl, BucketStats};
39pub use common::errors::{Error, Result};
40pub use common::ids::{PgId, TxId};
41pub use common::page::PageInfo;
42pub use cursor::{CursorApi, CursorImpl, CursorRwApi, CursorRwImpl};
43pub use db::{Bolt, BoltOptions, BoltOptionsBuilder, DbApi, DbInfo, DbPath, DbRwAPI, DbStats};
44pub use iter::{BucketIter, BucketIterMut, EntryIter};
45pub use tx::check::TxCheck;
46pub use tx::{TxApi, TxImpl, TxRef, TxRwApi, TxRwImpl, TxRwRef, TxRwRefApi, TxStats};