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
| Backend | Feature | Horizontal Scaling | Use Case |
|---|---|---|---|
| Memory | (always) | ❌ | Testing only |
| SlateDB + file:// | slatedb-storage | ❌ | Single-node production |
| SlateDB + s3:// | slatedb-storage | ✅ | K8s 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.