HeroDB

Redis-compatible database server with encryption and AGE cryptographic operations.

Features

  • Redis protocol compatibility
  • String, hash, and list data types
  • Key expiration and persistence
  • Database encryption with ChaCha20-Poly1305
  • AGE encryption/decryption operations
  • Digital signatures with Ed25519
  • Persistent storage using redb

Installation

cargo build --release

Usage

./target/release/herodb --dir /path/to/db --port 6379

RPC Server

HeroDB includes an optional JSON-RPC 2.0 management server for database administration tasks. Enable it with the --enable-rpc flag and specify the port with --rpc-port (default: 8080).

For a complete list of available RPC commands and usage examples, see RPC_COMMANDS.md.

Options

  • --dir: Database directory (required)
  • --port: Server port (default: 6379)
  • --debug: Enable debug logging
  • --encrypt: Enable database encryption
  • --encryption-key: Master encryption key for encrypted databases
  • --enable-rpc: Enable RPC management server
  • --rpc-port: RPC server port (default: 8080)

Examples

# Basic server
herodb --dir ./data

# Encrypted database
herodb --dir ./data --encrypt --encryption-key "your-key"

# Custom port with debug
herodb --dir ./data --port 7000 --debug

Redis Commands

Supports standard Redis commands including:

  • Strings: GET, SET, MGET, MSET, INCR, DEL
  • Hashes: HGET, HSET, HGETALL, HDEL, HEXISTS
  • Lists: LPUSH, RPUSH, LPOP, RPOP, LLEN, LRANGE
  • Keys: KEYS, SCAN, EXISTS, EXPIRE, TTL
  • Transactions: MULTI, EXEC, DISCARD
  • Server: PING, ECHO, INFO, CONFIG

AGE Commands

Extended commands for cryptographic operations:

  • Key Generation: AGE GENENC, AGE GENSIGN, AGE KEYGEN
  • Encryption: AGE ENCRYPT, AGE DECRYPT, AGE ENCRYPTNAME
  • Signing: AGE SIGN, AGE VERIFY, AGE SIGNNAME
  • Management: AGE LIST

Client Usage

Connect using any Redis client:

redis-cli -p 6379 SET key value
redis-cli -p 6379 GET key
redis-cli -p 6379 AGE GENENC

Architecture

  • Storage: redb embedded database
  • Protocol: Redis RESP protocol over TCP
  • Encryption: ChaCha20-Poly1305 for data, AGE for operations
  • Concurrency: Tokio async runtime
Description
No description provided
Readme MIT 1.5 MiB
Languages
Rust 96.3%
Shell 3.7%