janql 0.1.0

JanQL is a lightweight, persistent key-value store written in Rust.
Documentation
# JanQL

JanQL is a lightweight, persistent key-value store written in Rust. It features an append-only log for durability, JSON serialization, and an in-memory HashMap for fast reads.

## Features

- **Simple API**: `set`, `get`, `del`.
- **Persistence**: Append-only log with crash recovery (`load`).
- **Compaction**: `flush` operation to compact the log.
- **Performance**: In-memory reads, constant-time writes.

## Usage

```rust
use janql::Database;

fn main() {
    let mut db = Database::new("my.db");
    
    db.set("key".to_string(), "value".to_string());
    println!("{:?}", db.get("key"));
    
    db.del("key");
}
```

## Testing & Benchmarking

### Unit Tests
Run the standard test suite to verify correctness:
```bash
cargo test
```

### Benchmarks
We use `criterion` for benchmarking.

**Run Standard Benchmarks:**
Measures write, read, and load performance for 100, 1k, and 10k items.
```bash
cargo bench
```

**Run Comparison Benchmarks:**
Compares JanQL against `sled` (requires `comparison` feature).
```bash
cargo bench --features comparison
```

### Performance Regression Testing
We maintain performance baselines to detect regressions.

**Save a New Baseline:**
To save the current performance as a named baseline (e.g., `v0.1`):
```bash
cargo bench -- --save-baseline v0.1
```

**Compare Against Baseline:**
To compare the current code against a saved baseline:
```bash
cargo bench -- --baseline v0.1
```