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.
The project is currently in the development stage. However, its last C++ version, 1.3.2, is already being used in production and shows good performance. Version 1.4.0 was rewritten in Rust, but we have experienced some regressions. Therefore, please do not use the main
branch for any serious purposes. Currently, the Rust version is available as the reduct/store:main
Docker image.
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
cargo install reductstore
RS_DATA_PATH=./data reductstore
See Getting Started and Download pages for deail.
ReductStore provides a simple HTTP API, so you could use it with curl
:
```shell
curl -d "{\"quotatype\":\"FIFO\", \"quotasize\":10000}" \ -X POST \ "http://127.0.0.1:8383/api/v1/b/my_data"
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"
curl "http://127.0.0.1:8383/api/v1/b/mydata/entry1/q?ttl=10000"
curl -v "http://127.0.0.1:8383/api/v1/b/mydata/entry1?q=
If you don't want to use HTTP API directly, you can use one of the client SDKs:
You can use the following tools to administrate ReductStore: