d931770e90db750b89bce4eb0954b78bb092fe4c
				
			
			
		
	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
					Languages
				
				
								
								
									Rust
								
								97.3%
							
						
							
								
								
									Shell
								
								2.5%
							
						
							
								
								
									Python
								
								0.2%