# RapidDB A reasonably fast configurable embedded key-value sensor database ## Features - Lightweight embedded database - Simple key-value database interface - Simple and flexible optional embedded REST API - Memory first with on-disk persistence - Memory Mapped Append-only Vector backing storage - Bring your own database or API implementation - Store sensor data inside a sensor database ## Getting Started ### Docker Run database with docker ```bash docker run -dit --rm -p 3030:3030 --name rapiddb kruserr/rapiddb:0.1 ``` [Further install options](docs/install.md) ### Use the database with curl Write to database with curl ```bash curl -X POST localhost:3030/api/v0/test-0 -d '{"temp":4.00}' ``` Read from database with curl ```bash curl localhost:3030/api/v0/test-0/latest ``` Explore the API with curl ```bash curl localhost:3030/api/v0 curl localhost:3030/api/v0/sensors curl localhost:3030/api/v0/test-0 ``` ### Explore and customize the database The database is highly customizable, if you use the database inside your cargo project. You can interact with the `db` object, and explore the `IDatabase` interface. You can also use `warp::Filter` to extend the API. You can also implement the `IDatabase` interface yourself, for your own database. Explore the docs to learn more, or look at the examples. ## Documentation Visit the [Documentation](https://docs.rs/rapiddb-web). ## Examples Visit the [Examples](https://github.com/kruserr/rapiddb/tree/main/examples).