Skip to main content

Module storage

Module storage 

Source
Expand description

Persistent storage abstractions and implementations.

This module provides storage backends for API keys and catalog metadata, ensuring data survives server restarts and crashes.

§Storage Backends

BackendFeatureHorizontal ScalingUse Case
Memory(always)Testing only
SlateDB + file://slatedb-storageSingle-node production
SlateDB + s3://slatedb-storageK8s HA with S3/GCS/MinIO

§Pure Rust Storage

This implementation uses SlateDB for all persistent storage, avoiding the C++ dependency of RocksDB. SlateDB is a 100% Rust LSM-tree implementation that stores data on object storage (S3, GCS, Azure, MinIO, or local files).

§K8s Horizontal Scaling

For K8s deployments with multiple replicas, use SlateDB with shared object storage:

env:
- name: SLATEDB_OBJECT_STORE
  value: "s3://my-bucket/rustberg-catalog"

§Single-Node Mode

For single-node deployments without external object storage:

env:
- name: SLATEDB_OBJECT_STORE
  value: "file:///data/rustberg"

Re-exports§

pub use kv_api_key_store::KvApiKeyStore;
pub use kv_api_key_store::StorageError;
pub use kv_api_key_store::StorageResult;
pub use kv_store::KeyValue;
pub use kv_store::KvError;
pub use kv_store::KvResult;
pub use kv_store::KvStore;
pub use kv_store::KvStoreConfig;
pub use kv_store::MemoryKvStore;
pub use kv_store::WriteBatch;
pub use slatedb_store::SlateDbStore;

Modules§

kv_api_key_store
Persistent API key storage using the generic KvStore abstraction.
kv_store
Generic key-value store abstraction for metadata storage.
slatedb_store
SlateDB storage backend for distributed K8s deployments.