Expand description
Koit is a simple, asynchronous, pure-Rust, structured, embedded database.
§Examples
use std::default::Default;
use koit::{FileDatabase, format::Json};
use serde::{Deserialize, Serialize};
#[derive(Default, Deserialize, Serialize)]
struct Data {
cats: u64,
yaks: u64,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let db = FileDatabase::<Data, Json>::load_from_path_or_default("./db.json").await?;
db.write(|data| {
data.cats = 10;
data.yaks = 32;
}).await;
assert_eq!(db.read(|data| data.cats + data.yaks).await, 42);
db.save().await?;
Ok(())
}
§Features
Koit comes with a file-backed database and JSON and Bincode formatters. You can also define your own storage format or backend.
Note that the file-backed database requires the Tokio 0.3 runtime to function.
Re-exports§
Modules§
- backend
- Backends persist the database. They allow reading and writing bytes. Bytes-to-data conversion,
and back, is handled by a
Format
. - format
- Formats handle transforming structured data to and from bytes for persisting.
Structs§
- Database
- The Koit database.
Enums§
- Koit
Error - The error variants Koit can return.
Type Aliases§
- File
Database file-backend
- A file-backed database.