diff --git a/README.md b/README.md index 6516671..e308eaf 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,5 @@ # HeroDB -<<<<<<< HEAD -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 -======= HeroDB is a Redis-compatible database built with Rust, offering a flexible and secure storage solution. It supports two primary storage backends: `redb` (default) and `sled`, both with full encryption capabilities. HeroDB aims to provide a robust and performant key-value store with advanced features like data-at-rest encryption, hash operations, list operations, and cursor-based scanning. ## Purpose @@ -38,77 +23,11 @@ The main purpose of HeroDB is to offer a lightweight, embeddable, and Redis-comp ### Building HeroDB To build HeroDB, navigate to the project root and run: ->>>>>>> append ```bash cargo build --release ``` -<<<<<<< HEAD -## Usage - -```bash -./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 - -```bash -# 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: - -```bash -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 -======= ### Running HeroDB You can start HeroDB with different backends and encryption options: @@ -128,13 +47,13 @@ You can start HeroDB with different backends and encryption options: #### `redb` with Encryption ```bash -./target/release/herodb --dir /tmp/herodb_encrypted --port 6379 --encrypt --key mysecretkey +./target/release/herodb --dir /tmp/herodb_encrypted --port 6379 --encrypt --encryption_key mysecretkey ``` #### `sled` with Encryption ```bash -./target/release/herodb --dir /tmp/herodb_sled_encrypted --port 6379 --sled --encrypt --key mysecretkey +./target/release/herodb --dir /tmp/herodb_sled_encrypted --port 6379 --sled --encrypt --encryption_key mysecretkey ``` ## Usage with Redis Clients @@ -163,5 +82,4 @@ For more detailed information on commands, features, and advanced usage, please - [Basics](docs/basics.md) - [Supported Commands](docs/cmds.md) -- [AGE Cryptography](docs/age.md) ->>>>>>> append +- [AGE Cryptography](docs/age.md) \ No newline at end of file