1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! 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:
//!
//! ```yaml
//! env:
//! - name: SLATEDB_OBJECT_STORE
//! value: "s3://my-bucket/rustberg-catalog"
//! ```
//!
//! # Single-Node Mode
//!
//! For single-node deployments without external object storage:
//!
//! ```yaml
//! env:
//! - name: SLATEDB_OBJECT_STORE
//! value: "file:///data/rustberg"
//! ```
pub use ;
pub use ;
pub use SlateDbStore;