Crate grafos_store

Crate grafos_store 

Source
Expand description

Universal object storage convention for grafOS.

This crate provides an ObjectStore trait and three backends:

BackendBackingUse case
MemObjectStoreFabricHashMap (leased DRAM)Hot/ephemeral objects
BlockObjectStoreBlock storage (leased NVMe/SD)Durable objects
TieredObjectStoreMem (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

FeatureDefaultEffect
stdYesEnables std in grafos-std
versioningNoEnables object versioning (version history on put)
observeNoEnables grafos-observe metrics

Structs§

BlockObjectStore
Durable object store backed by leased block storage.
BucketConfig
Configuration for creating a bucket.
BucketHandle
A handle to an open bucket, providing identity and generation tracking.
BucketLocator
Locator published for cross-application bucket discovery.
BucketManager
Manages creation and lifecycle of object store buckets.
FabricUri
A URI addressing an object in the fabric store.
MemObjectStore
In-memory object store backed by FabricHashMap.
ObjectData
Data returned from a get() call.
ObjectInfo
Lightweight object info returned by head().
ObjectMeta
Metadata stored alongside an object.
PutOptions
Options for a put operation.
TieredObjectStore
Tiered object store composing a hot (memory) and cold (block) tier.

Enums§

BucketTier
Storage tier for a bucket.

Traits§

ObjectStore
Universal object storage trait.