celerix-store 0.1.1

A lightweight, low-latency KV data store with 1:1 parity with the orginal golang version, atomic persistence, and AES-256-GCM encryption.
Documentation

Celerix Store (Rust)

A lightweight, low-latency Key-Value (KV) data store designed for the Celerix suite of applications. This is a high-performance Rust implementation that is 1:1 compatible with the original Go version.

Key Features

  • Dual Mode Operations:
    • Embedded: Use as a local library with direct file-based persistence.
    • Remote: Connect to a celerix-stored instance over TCP.
  • Liquid Data Architecture: Uses the Persona -> App -> Key hierarchy for structured data management.
  • Atomic Persistence: High-integrity "write-then-rename" strategy for JSON storage.
  • Client-Side Encryption: Built-in AES-256-GCM vault support for sensitive data.
  • Automatic Discovery: SDK automatically switches modes based on environment variables.
  • Resilient Client: TCP client with automatic reconnection and exponential backoff retries.

Quick Start

As a Service (Daemon)

Run the celerix-stored binary to start the TCP server:

# Defaults to port 7001 and ./data directory
cargo run --bin celerix-stored

As a Library (SDK)

Add this to your Cargo.toml:

[dependencies]
# Import from GitHub
celerix-store = { git = "https://github.com/celerix-dev/celerix-store-rust.git", tag = "v0.1.1" }
tokio = { version = "1.0", features = ["full"] }
serde_json = "1.0"

CLI Tool

Interact with the store via the command line:

cargo run --bin celerix -- set my-persona my-app my-key '"my-value"'
cargo run --bin celerix -- get my-persona my-app my-key

Documentation

  • USAGE.md: Detailed usage patterns, library examples, and Docker/Podman deployment.