Changelog
This project adheres to Semantic Versioning and the Keep a Changelog format.
[Unreleased]
Section titled “[Unreleased]”[1.0.1] - 2026-02-24
Section titled “[1.0.1] - 2026-02-24”- SIMD-accelerated JSON escaping via vectorized character scanning.
- Time format help text and error messages now mark values as examples (
e.g.) to avoid implying they are the only accepted formats.
Performance
Section titled “Performance”- Binary search for entry retrieval in the engine, replacing linear scans.
- SSTable reader reuses its internal data buffer across reads instead of reallocating.
[1.0.0] - 2026-02-20
Section titled “[1.0.0] - 2026-02-20”- Append-only LSM-tree storage engine with write-ahead log durability.
- Three flush modes:
cautious(per-write fsync, default),normal(batched fsync, ~7x throughput),emergency(fsync + pause compaction). - Four input sources: stdin piping, file tailing, TCP listener, UDP listener. Sources can be combined.
queryandexportcommands with--from/--totime range filters. Accepts relative offsets (1h,30m,2d) and absolute timestamps.--limitcaps results (default: 1000; use--limit 0for all).- Export writes atomically via temp-file-and-rename; no partial output on interruption.
- Four output formats:
text(UTC timestamp + data, embedded newlines escaped),json,csv,hex. statscommand for storage health and entry counts.- Background compaction merging SSTables when threshold is reached (default: 4).
- Crash recovery with dual CRC validation (header + data) and magic trailer detection.
- Direct I/O (
O_DIRECT) on Linux, bypassing the kernel page cache for true storage-level durability. - Runtime flush mode escalation via
SIGUSR1(Cautious to Emergency). - Three-layer configuration: TOML file, environment variables (
KIFA_prefix), CLI flags. Each layer overrides the previous. - Systemd service file with security hardening (
DynamicUser,ProtectSystem=strict,MemoryDenyWriteExecute). - Linux packages:
.deb,.rpm, and static musl binaries for x86_64, aarch64, and armhf. - Graceful shutdown on
SIGINT/SIGTERMwith pending data flush. lib-kifacrate for embedding the storage engine directly in Rust applications.- Web documentation site at xosnrdev.github.io/kifa.
Installation Download the latest release.
GitHub Releases Binaries, checksums, and release notes.