fix typo in README
This commit is contained in:
86
README.md
86
README.md
@@ -1,20 +1,5 @@
|
|||||||
# HeroDB
|
# 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.
|
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
|
## Purpose
|
||||||
@@ -38,77 +23,11 @@ The main purpose of HeroDB is to offer a lightweight, embeddable, and Redis-comp
|
|||||||
### Building HeroDB
|
### Building HeroDB
|
||||||
|
|
||||||
To build HeroDB, navigate to the project root and run:
|
To build HeroDB, navigate to the project root and run:
|
||||||
>>>>>>> append
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo build --release
|
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
|
### Running HeroDB
|
||||||
|
|
||||||
You can start HeroDB with different backends and encryption options:
|
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
|
#### `redb` with Encryption
|
||||||
|
|
||||||
```bash
|
```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
|
#### `sled` with Encryption
|
||||||
|
|
||||||
```bash
|
```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
|
## Usage with Redis Clients
|
||||||
@@ -164,4 +83,3 @@ For more detailed information on commands, features, and advanced usage, please
|
|||||||
- [Basics](docs/basics.md)
|
- [Basics](docs/basics.md)
|
||||||
- [Supported Commands](docs/cmds.md)
|
- [Supported Commands](docs/cmds.md)
|
||||||
- [AGE Cryptography](docs/age.md)
|
- [AGE Cryptography](docs/age.md)
|
||||||
>>>>>>> append
|
|
||||||
|
Reference in New Issue
Block a user