39 releases (7 stable)

2.0.0-beta.3 Mar 24, 2024
2.0.0-beta.0 May 23, 2023
1.3.2 Feb 19, 2023
1.1.0 Dec 18, 2022
0.1.0 Jun 18, 2022

#178 in Database interfaces

Download history 41/week @ 2024-02-13 129/week @ 2024-02-20 29/week @ 2024-02-27 43/week @ 2024-03-19 89/week @ 2024-03-26 294/week @ 2024-04-02

426 downloads per month

MIT license

44KB
1K SLoC

crates.io docs.rs

DustData

A data concurrency control storage engine to Rustbase

Join our community and chat with other Rust users.

⚠️ Warning

This is a work in progress. The API is not stable yet.

🔗 Contribute

Click here to see how to Contribute

How to install

Add the following to your Cargo.toml:

[dependencies]
dustdata = "2.0.0-beta.2"

Usage

Initialize a new DustData instance with the default configuration:

use dustdata::DustData;

let mut dustdata = DustData::new(Default::default()).unwrap();

Inserting data into a collection

#[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

let collection = dustdata.collection::<User>("users").unwrap();

let user = collection.get("user:1").unwrap();

Authors

License

MIT License

Dependencies

~4.5MB
~60K SLoC