Skip to main content

Crate anda_object_store

Crate anda_object_store 

Source
Expand description

§anda_object_store

anda_object_store extends the object_store crate with two composable wrappers that are used as the storage substrate for AndaDB and the AI memory brain:

  • MetaStore — augments any ObjectStore backend with side-car metadata (object size, content hash, original backend ETag/version). This enables a uniform, content-addressable ETag and conditional PutMode::Update semantics on top of backends that lack them natively (notably [object_store::local::LocalFileSystem]).
  • EncryptedStore — provides transparent, chunked AES-256-GCM encryption-at-rest. Objects are split into fixed-size chunks, each encrypted with a per-chunk nonce derived from a random per-object base nonce. Encryption metadata (base nonce, per-chunk authentication tags) is stored alongside content metadata.

Both wrappers implement ObjectStore and place data and metadata under two distinct path prefixes (data/ and meta/ by default) on the underlying backend, so they can be layered on top of any compliant store (in-memory, local filesystem, S3, GCS, Azure Blob, …).

See [docs/anda_object_store.md] for the full design document.

Re-exports§

pub use encryption::EncryptedStore;
pub use encryption::EncryptedStoreBuilder;
pub use encryption::EncryptedStoreUploader;

Modules§

encryption
Transparent AES-256-GCM encryption-at-rest layer for any ObjectStore.

Structs§

MetaStore
MetaStore is a wrapper around an ObjectStore implementation that adds metadata capabilities.
MetaStoreBuilder
Builder for creating a MetaStore instance.
MetaStoreUploader
Handler for multipart uploads to a MetaStore.