app like that
GTSDB
GTSDB

GTSDB is a Golang-based, time-series database designed for IoT applications. It is simple, efficient, and offers easy integration through HTTP and TCP interfaces. Key features include innovative design for data handling, high performance benchmarks, memory efficiency, built-in streaming, cross-platform support, and analytics readiness. It is trusted by multiple providers and supports Windows, Linux/BSD, and macOS.

Features

Innovative Design

Utilizes Write Ahead Log (WAL) for records, reducing I/O and memory usage.

Crazy Benchmark

Top performance with 39.372M rows/s, in-memory like speed, and WAL class durability.

Super Easy Integration

Identical HTTP API and TCP interfaces, all in JSON format.

Analytics Ready

Built-in support for data downsampling and aggregation.

Memory Efficient

Requires as low as 4MB of memory, perfect for IoT devices, benefiting in old SSD.

Built-in Streaming

Subscribe to keys and receive updates in real-time.

Battle-Tested

Trusted by IoT providers and used in production with code coverage for all logic.

Cross-Platform

Supports Windows, Linux/BSD, and macOS, perfect for edge devices.

Write Single Value

Allows you to write a single data point for a specific sensor, using an HTTP POST request with the required fields such as 'key', 'value', and 'time'.

Read Data with Time Range and Downsampling

Enables reading data for a specific sensor within a time range along with downsampling, using a JSON body specifying 'start timestamp', 'end timestamp', and 'downsampling'.

Read Last X Records

Retrieves the last X records for a specified sensor. The request requires the 'operation', 'limit', and 'key' fields.

Multi-Read Data with Time Range

Performs a multi-read for multiple sensors over a time range with downsampling. The request includes 'sensors', 'start timestamp', 'end timestamp', and 'downsampling'.

Multi-Read Last X Records

Fetches the last X records from multiple sensors using a list of sensor keys and the 'limit' specification.

Subscribe to a Key

Allows a subscription to updates from a specific sensor by specifying the 'operation' and 'key' fields.

Unsubscribe from a Key

Cancels a subscription to a specific sensor by specifying the 'operation' and 'key' fields.

Get All Keys

Retrieves a list of all sensor keys from the database by specifying the 'operation' field.

Initialize a New Key

Creates a new sensor key in the database by specifying the 'operation' and 'key' fields.

Rename a Key

Changes the name of an existing sensor key by specifying the 'old_sensor_name' and 'new_sensor_name' fields.

Delete a Key

Removes a specific key from the database by specifying the 'operation' and 'key' fields.

Flush All Data Points

Deletes all data points in your database with a simple 'flush' operation.

Patch Data Points

Allows updating or inserting multiple data points for a specific sensor. It involves specifying the 'key' and 'values' fields, where 'values' is a list of timestamps with corresponding data points.