// the find
nakabonne/tstorage
An embedded time-series database
tstorage is an embedded time-series storage engine for Go, designed to be dropped into a process rather than run as a separate service. Built by the author of the ali load tester to solve real heap-growth problems, it targets tools that need to store and query metric-like data locally without the overhead of InfluxDB or Prometheus.
The partitioning model is well-suited to time-series workloads — each partition is an independent unit, which makes range queries cheap and compaction straightforward. Write performance is genuinely good (305 ns/op at 2 allocs) because it writes sequentially to append-only structures rather than fighting a B-tree. The WAL-before-insert design means you don't lose data on crash even though the hot partition lives in heap. Out-of-order handling is practical: it keeps two writable memory partitions rather than buffering everything or discarding late arrivals.
The query API is minimal to the point of being limiting — you get a metric name, optional labels, and a time range, nothing else. No aggregations, no downsampling, no cross-metric joins; you're doing all of that in your application code. Label indexing stores metadata in meta.json per partition, which means cross-partition label queries require scanning every partition's metadata file — fine at small scale, painful if you have many metrics and many partitions. The project has been quiet since 2022 by activity signals and the benchmarks are from Go 1.16 on hardware from 2018, so you're flying without current maintenance or perf validation. If you need anything beyond 'store floats, retrieve by time range', you'll quickly hit the ceiling.