llm-config-storage

Crates.iollm-config-storage
lib.rsllm-config-storage
version0.5.0
created_at2025-11-21 21:46:49.608994+00
updated_at2025-11-21 21:46:49.608994+00
descriptionPersistent storage backend for LLM Config Manager using embedded Sled database with encryption support
homepagehttps://github.com/globalbusinessadvisors/llm-config-manager
repositoryhttps://github.com/globalbusinessadvisors/llm-config-manager
max_upload_size
id1944321
size62,183
GBA (globalbusinessadvisors)

documentation

https://docs.rs/llm-config-manager

README

llm-config-storage

Crates.io Documentation License

Persistent storage backend for LLM Config Manager using embedded Sled database with encryption support.

Features

  • Embedded Database: Zero-config Sled database for persistent storage
  • Encryption at Rest: Automatic encryption of sensitive configuration data
  • ACID Transactions: Atomic, consistent, isolated, durable operations
  • Namespace Isolation: Separate storage for different configuration namespaces
  • Version History: Store and retrieve historical configuration versions
  • Backup & Restore: Built-in backup and restore capabilities

Usage

Add this to your Cargo.toml:

[dependencies]
llm-config-storage = "0.5.0"
llm-config-crypto = "0.5.0"

Basic Example

use llm_config_storage::StorageBackend;
use llm_config_crypto::CryptoManager;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize storage with encryption
    let crypto = CryptoManager::new()?;
    let storage = StorageBackend::open("./data", Some(crypto))?;

    // Store configuration
    storage.put("app.database.url", b"postgres://localhost/mydb").await?;

    // Retrieve configuration
    let value = storage.get("app.database.url").await?;

    Ok(())
}

Namespace Management

// Create namespace-specific storage
let namespace = storage.namespace("production");
namespace.put("api.key", b"secret-key").await?;

Storage Format

  • Key-Value Store: Simple and efficient key-value access
  • JSON/Binary: Supports both JSON and binary value storage
  • Compression: Optional compression for large values
  • Encryption: Transparent encryption layer for sensitive data

Performance

Benchmarks on modern hardware:

  • Read operations: ~10 µs per key
  • Write operations: ~50 µs per key
  • Batch writes: ~5000 ops/sec

Minimum Supported Rust Version

This crate requires Rust 1.75 or later.

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Contributing

See CONTRIBUTING.md for contribution guidelines.

Commit count: 0

cargo fmt