apfsds-storage

Crates.ioapfsds-storage
lib.rsapfsds-storage
version0.2.0
created_at2026-01-17 16:12:17.912435+00
updated_at2026-01-18 02:49:20.001326+00
descriptionPersistent storage layer for APFSDS (WAL, ClickHouse, PostgreSQL)
homepage
repository
max_upload_size
id2050720
size100,190
rand0mdevel0per (rand0mdevel0per)

documentation

README

apfsds-storage

MVCC storage engine with WAL persistence for APFSDS.

Features

  • MVCC Engine: Multi-version concurrency control for consistent reads
  • Log-structured Segments: Append-only segments with efficient compaction
  • Write-Ahead Log (WAL): Durability with crash recovery
  • B-link Tree Index: Fast key lookups
  • ClickHouse Backup: Async batch export to ClickHouse for analytics

Usage

use apfsds_storage::{StorageEngine, StorageConfig};

let config = StorageConfig {
    disk_path: "/var/lib/apfsds".into(),
    segment_size: 64 * 1024 * 1024, // 64MB
    compaction_threshold: 4,
};

let engine = StorageEngine::open(config)?;

// Write
engine.put(b"key", b"value").await?;

// Read
let value = engine.get(b"key").await?;

// Scan range
for (k, v) in engine.scan(b"a"..b"z").await? {
    println!("{:?} = {:?}", k, v);
}

Architecture

┌─────────────┐
│   API       │
├─────────────┤
│   MVCC      │ ← Version management
├─────────────┤
│  Segments   │ ← Log-structured storage
├─────────────┤
│    WAL      │ ← Write-ahead log
└─────────────┘

License

MIT

Commit count: 0

cargo fmt