Maxime Van Hees 7e5da9c6eb WIP2
2025-09-09 17:20:12 +02:00
2025-09-09 17:20:12 +02:00
...
2025-08-16 06:58:04 +02:00
...
2025-08-16 06:58:04 +02:00
2025-09-09 16:31:06 +02:00
...
2025-08-16 06:58:04 +02:00
2025-08-27 15:39:59 +02:00

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

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

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%