Embedded, zero-dependency Go time-series DB for edge/IoT hardware using append-only files, WAL, S2 compression, and a VictoriaMetrics-compatible HTTP API.
Key Takeaways
Data layout: WAL + catalog.json + partitioned .dat files per named database; S2 compression delivers 3-4x on typical sensor streams.
WAL v2 hot path costs 11 bytes per sample (known metric, same baseline); new baselines trigger only when timestamp gap exceeds 16.7ms.
Strict monotonic timestamps enforced per metric; out-of-order writes are rejected outright.
Rollup jobs cascade across DBs (1h -> 1d) and write to separate destination DBs; checkpoints tracked in source DB.
Ships two binaries: nanotdb (HTTP server) and nanocli (offline inspect/import/export/query against raw data directory).