1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
//! bbolt-rs is an implementation of the [etcd-io/bbolt](https://github.com/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
#![doc = document_features::document_features!()]
mod arch;
mod bucket;
mod common;
mod cursor;
mod db;
mod node;
#[cfg(test)]
mod test_support;
mod tx;
mod iter;
pub mod util;
pub use bucket::{BucketApi, BucketImpl, BucketRwApi, BucketRwImpl, BucketStats};
pub use common::errors::{Error, Result};
pub use common::ids::{PgId, TxId};
pub use common::page::PageInfo;
pub use cursor::{CursorApi, CursorImpl, CursorRwApi, CursorRwImpl};
pub use db::{Bolt, BoltOptions, BoltOptionsBuilder, DbApi, DbInfo, DbPath, DbRwAPI, DbStats};
pub use iter::{BucketIter, BucketIterMut, EntryIter};
pub use tx::check::TxCheck;
pub use tx::{TxApi, TxImpl, TxRef, TxRwApi, TxRwImpl, TxRwRef, TxRwRefApi, TxStats};