
Amazon Timestream
Serverless time-series database for IoT, metrics, and operational telemetry
Discover top open-source software, updated regularly with real-world adoption signals.

Fast, goroutine-safe on-disk time-series storage for Go
tstorage provides a lightweight, high-performance TSDB engine with simple Go API, supporting in-memory and persistent disk partitions, goroutine-safe writes, and fast range queries.
tstorage is aimed at Go developers who need to ingest massive time‑series streams while keeping heap usage low. It offers a straightforward API for inserting rows and selecting data by metric, optional labels, and time range. By default it runs fully in memory, but can persist data to disk via the WithDataPath option, automatically partitioning points by timestamp.
Create a storage instance with tstorage.NewStorage, configure timestamp precision, and use and for writes and reads. The engine maintains a write‑ahead log, moves full memory partitions to compressed, memory‑mapped disk files, and keeps recent partitions cached for ultra‑fast queries (≈56 B per read). Benchmarks on an i7‑8559U show sub‑microsecond write latency and low allocation overhead, making it suitable for real‑time analysis tools and edge services.
InsertRowsSelectWhen teams consider tstorage, these hosted platforms usually appear on the same shortlist.
Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.
Load-testing metrics collection
Capture millions of latency points with sub-microsecond write latency, keeping heap usage stable.
Edge device sensor logging
Persist time-stamped sensor readings locally, with automatic roll-off to disk and fast retrieval for alerts.
In-process monitoring for microservices
Store per-service counters and histograms without external DB, enabling instant dashboards.
Ad-hoc analysis of recent data
Query the last hour of data directly from memory for real-time visualizations.
Yes, the API is goroutine-safe for both operations.
When a memory partition fills, it is compacted and written as compressed, read-only files with accompanying meta.json; a write-ahead log protects against loss.
Partition size is determined by timestamp range; the library does not expose a configurable size parameter.
Go 1.16 or newer.
No, tstorage provides simple range-select APIs; more complex queries must be implemented by the caller.
Project at a glance
StableLast synced 4 days ago