Expand description
Blob Store — the primary CAS interface for storing and retrieving blobs.
Blobs are stored on disk using a content-addressed scheme:
- Hash is split into a 2-char prefix directory and 62-char filename
- This creates 256 buckets, avoiding any single directory having too many files
- Blobs are optionally Zstd-compressed
§Thread Safety
BlobStore is Send + Sync and can be shared across threads via Arc.
File operations are the primary bottleneck; the store itself holds no mutable
state beyond the root path. Interior caches use std::sync::Mutex; a poisoned
lock is surfaced as CasError::LockPoisoned where recovery is meaningful,
and ignored (best-effort) where the operation is advisory.
Structs§
- Blob
Store - The content-addressable-storage blob store.
Functions§
- is_
zstd_ compressed - Check whether data starts with the Zstd frame magic (
0x28 0xB5 0x2F 0xFD).