ReductStore

GitHub release (latest SemVer) GitHub Workflow Status Docker Pulls GitHub all releases Discord

ReductStore is a time series database designed specifically for storing and managing large amounts of blob data. It has high performance for writing and real-time querying, making it suitable for edge computing, computer vision, and IoT applications. ReductStore is 100% open source under Mozilla Public License v2.0. It has a simple HTTP API and provides random access to data via a timestamp or time interval. Read more here.

Features:

Get started

The easiest way to start is to use Docker image:

shell docker run -p 8383:8383 -v ${PWD}/data:/data reduct/store:latest

or you can use cargo:

shell apt install libssl-dev protobuf-compiler pkg-config cargo install reductstore RS_DATA_PATH=./data reductstore

See Getting Started and Download pages for deail.

Usage Example

ReductStore provides a simple HTTP API, so you could use it with curl:

```shell

Create a bucket

curl -d "{\"quotatype\":\"FIFO\", \"quotasize\":10000}" \ -X POST \ "http://127.0.0.1:8383/api/v1/b/my_data"

Write two records with timestamp 10000 and 20000

curl -d "somedata1" \ -X POST \ --header "x-reduct-label-quality: good" \ "http://127.0.0.1:8383/api/v1/b/mydata/entry1?ts=10000"

curl -d "somedata2" \ -X POST \ --header "x-reduct-label-quality: bad" \ "http://127.0.0.1:8383/api/v1/b/mydata/entry1?ts=20000"

Query all records in the bucket (TTL of request 10000s, so you don't need to hurry)

curl "http://127.0.0.1:8383/api/v1/b/mydata/entry1/q?ttl=10000"

Take ID from the response and read the data until the end

curl -v "http://127.0.0.1:8383/api/v1/b/mydata/entry1?q=" ```

Client SDKs

If you don't want to use HTTP API directly, you can use one of the client SDKs:

Tools

You can use the following tools to administrate ReductStore: