Expand description
Universal object storage convention for grafOS.
This crate provides an ObjectStore trait and three backends:
| Backend | Backing | Use case |
|---|---|---|
MemObjectStore | FabricHashMap (leased DRAM) | Hot/ephemeral objects |
BlockObjectStore | Block storage (leased NVMe/SD) | Durable objects |
TieredObjectStore | Mem (hot) + Block (cold) | Auto-tiered with LRU eviction |
Objects are addressed by FabricUri (fabric://pool/bucket/key).
All writes are CRC32-checksummed; reads verify integrity.
§Quick start
use grafos_store::{MemObjectStore, ObjectStore, FabricUri};
let mut store = MemObjectStore::new(64)?;
let uri: FabricUri = "fabric://default/mybucket/hello".parse()?;
store.put(&uri, b"world", None)?;
let obj = store.get(&uri)?.unwrap();
assert_eq!(obj.data, b"world");§Feature flags
| Feature | Default | Effect |
|---|---|---|
std | Yes | Enables std in grafos-std |
versioning | No | Enables object versioning (version history on put) |
observe | No | Enables grafos-observe metrics |
Structs§
- Block
Object Store - Durable object store backed by leased block storage.
- Bucket
Config - Configuration for creating a bucket.
- Bucket
Handle - A handle to an open bucket, providing identity and generation tracking.
- Bucket
Locator - Locator published for cross-application bucket discovery.
- Bucket
Manager - Manages creation and lifecycle of object store buckets.
- Fabric
Uri - A URI addressing an object in the fabric store.
- MemObject
Store - In-memory object store backed by
FabricHashMap. - Object
Data - Data returned from a
get()call. - Object
Info - Lightweight object info returned by
head(). - Object
Meta - Metadata stored alongside an object.
- PutOptions
- Options for a put operation.
- Tiered
Object Store - Tiered object store composing a hot (memory) and cold (block) tier.
Enums§
- Bucket
Tier - Storage tier for a bucket.
Traits§
- Object
Store - Universal object storage trait.