[](https://crates.io/crates/dustdata)
# DustData
A data concurrency control storage engine to [Rustbase](https://github.com/rustbase/rustbase)
Join our [community](https://discord.gg/m5ZzWPumbd) and [chat](https://discord.gg/m5ZzWPumbd) with other Rust users.
# ⚠️ Warning
This is a work in progress. The API is not stable yet.
# 🔗 Contribute
[Click here](./CONTRIBUTING.md) to see how to Contribute
# How to install
Add the following to your `Cargo.toml`:
```toml
[dependencies]
dustdata = "2.0.0-beta.2"
```
# Usage
Initialize a new `DustData` instance with the default configuration:
```rust
use dustdata::DustData;
let mut dustdata = DustData::new(Default::default()).unwrap();
```
## Inserting data into a collection
```rust
#[derive(Serialize, Deserialize, Clone, Debug)]
struct User {
name: String,
age: u32,
}
let collection = dustdata.collection::<User>("users");
let user = User {
name: "Pedro".to_string(),
age: 21,
};
// Creating a new transaction.
let mut transaction = collection.start();
// Inserting the user into the transaction.
transaction.insert("user:1", user);
// Committing the transaction.
collection.commit(&mut transaction).unwrap();
// Done!
```
## Reading data from a collection
```rust
let collection = dustdata.collection::<User>("users").unwrap();
let user = collection.get("user:1").unwrap();
```
# Authors
<div align="center">
</div>
# License
[MIT License](./LICENSE)