# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2025-08-12
### Added
#### Core Features
- **Type-safe RocksMap abstraction** with generics support (`RocksMap<K, V>`)
- **Zero unsafe code** - built entirely on safe Rust abstractions
- **Pluggable serialization** via `KeyCodec` and `ValueCodec` traits
- **Default bincode serialization** with serde support
- **Ergonomic map-like API** (`get`, `put`, `delete`, `iter`)
- **Column family support** for namespaced data organization
- **Comprehensive error handling** with rich error types and context
#### Advanced Features
- **Batch operations** - atomic multi-key transactions
- **TTL support** - automatic key expiration with compaction
- **Range queries** - efficient key range scanning
- **Prefix scanning** - optimized prefix-based iteration
- **Secondary indexes** - optional indexing layer for complex queries
#### CLI and Tooling
- **Full-featured CLI** (`rocksmap-cli`) with comprehensive command set
- **CRUD operations** - put, get, delete, list, scan
- **Database administration** - stats, compaction, backup tools
- **Import/export utilities** - JSON, CSV, and binary format support
- **Diagnostic tools** - database analysis, integrity checks, benchmarking
- **Interactive shell mode** - REPL-style database interaction
- **Multiple output formats** - JSON, CSV, and table formatting
#### Developer Experience
- **Comprehensive test suite** - 100% test coverage for core features
- **Performance benchmarks** - criterion-based benchmarking suite
- **Rich documentation** - API docs, usage examples, CLI guides
- **Memory safety** - all operations are memory-safe with proper lifetime management
### Technical Details
#### Architecture
- Built on top of RocksDB 0.21.0
- Uses serde 1.0 for serialization
- Clap 4.4 for CLI argument parsing
- Anyhow for error handling with context
- Criterion for performance benchmarking
#### Performance
- **Put operations**: ~7.1 µs average latency
- **Get operations**: ~1.3 µs average latency
- **Batch operations**: ~21.3 µs for 10-key batches
- **Memory efficient**: Zero-copy operations where possible
- **Optimized iteration**: Efficient prefix and range scanning
#### Safety and Reliability
- **Zero unsafe code** - all operations use safe Rust abstractions
- **Comprehensive error handling** - all failure modes properly handled
- **Memory safety** - proper lifetime management and borrow checking
- **Data integrity** - atomic operations and consistency guarantees