A lightweight time-series database written in Rust, deployable as an embedded library, standalone server, or scalable cluster.
tsink is a lightweight, high-performance time-series database written in Rust. It provides a robust storage engine with features like a segmented WAL, LSM-style compaction, and adaptive encoding, and it supports multiple deployment modes including embedding directly in applications, running as a standalone server, or scaling as a distributed cluster.
Developers and engineers building monitoring, observability, or IoT systems who need a flexible, embeddable time-series database, particularly those working with Rust or Python applications or requiring multi-protocol ingestion (e.g., Prometheus, InfluxDB, OTLP).
Developers choose tsink for its zero-external-dependency, secure-by-default design and its unique flexibility in deployment—the same core engine can be embedded, run as a server, or clustered without switching technologies. It also stands out with built-in PromQL support and native multi-protocol ingestion, eliminating the need for external query layers or adapters.
A lightweight time-series database written in Rust. Embed it, run it as a server, or scale it as a cluster.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports embedding directly in Rust or Python applications, running as a standalone server, or forming a distributed cluster with the same core engine, as highlighted in the 'Three deployment modes' section of the README.
Features a segmented WAL for crash safety, LSM-style leveled compaction, and adaptive encoding like delta/XOR/zstd, ensuring high performance and durability, as described in the storage engine capabilities table.
Accepts data from Prometheus, InfluxDB, OTLP, StatsD, and Graphite out of the box via dedicated endpoints, eliminating the need for external adapters, as listed in the ingestion protocols table.
Includes a native PromQL parser and evaluator for querying data without an external query layer, detailed in the 'Built-in PromQL' feature and separate documentation.
Provides TLS, RBAC with OIDC, multi-tenant isolation, and mTLS between nodes, emphasizing a secure-by-default design, as outlined in the security and multi-tenancy section.
Setting up a distributed cluster requires manual configuration of multiple flags like --cluster-enabled, --cluster-peers, and --cluster-replication-factor, which can be error-prone and time-consuming, as shown in the cluster mode example.
Only offers native APIs for Rust and Python via UniFFI, missing bindings for other popular languages like Java, Go, or JavaScript, which could limit adoption in polyglot environments.
As a relatively new project on GitHub, it may lack the extensive community support, third-party integrations, and stability guarantees of more established time-series databases like InfluxDB or Prometheus.
tsink is an open-source alternative to the following products:
InfluxDB is an open-source time series database designed for handling high write and query loads, commonly used for monitoring metrics and events.
VictoriaMetrics is an open-source time-series database and monitoring solution designed for high performance, scalability, and easy operation with Prometheus compatibility.