Skip to main content

persistant_blob/
lib.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2//! PersistAnt's blob kind: a trait, a reference backend, and the tests that decide capabilities.
3//!
4//! No driver is linked here (`docs/DESIGN-KINDS.md` ยง3 rule 1). A driver crate such as
5//! `persistant-opendal` implements [`BlobBackend`]; [`conformance`] runs the contract tests against
6//! it and returns matrix rows, each `on` only with both controls.
7//!
8//! The harness covers the leaves whose written contract it can decide: sequentially
9//! (`blob.read`, `blob.write`, `blob.delete`, `blob.stat`, `blob.list`) and by sampled
10//! concurrency (`blob.create_exclusive`, `blob.replace_atomic.concurrent_read`; the trial
11//! parameters are recorded in the row). Leaves that need a crash or a power cut
12//! (`blob.replace_atomic` as a whole, `blob.durable`) have **no test here yet**, so no row is
13//! produced and they stay off.
14
15mod backend;
16pub mod choose;
17pub mod concurrency;
18pub mod conformance;
19pub mod contract;
20mod memory;
21pub mod speed;
22pub mod stats;
23
24pub use backend::{BlobBackend, BlobError, Entry, Page};
25pub use memory::{Defect, MemoryBlob};