2 stable releases
1.0.1 | Oct 5, 2023 |
---|---|
1.0.0 | Sep 30, 2023 |
#1590 in Encoding
19KB
ahri
ahri is a database ๐ณ
Completed
- Database structure
- Async support
- Serialization / Deserialization
- ACID transactions
Example
use ahri::Table;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Book {
name: String,
year: u16,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let default_book = Book {
name: "Unknown Book".to_string(),
year: 0,
};
let mut bookshelf = Table::from_structure(default_book);
for i in 0..7 {
let book_name = format!("Harry Potter {}", i + 1);
let new_book = Book {
name: book_name.clone(),
year: 1997 + i as u16,
};
bookshelf.insert(&book_name, new_book);
}
println!("Bookshelf: {:#?}", bookshelf);
Ok(())
}
Result
Bookshelf: Table {
default: Book {
name: "Unknown Book",
year: 0,
},
rows: {
"Harry Potter 3": Book {
name: "Harry Potter 3",
year: 1999,
},
"Harry Potter 6": Book {
name: "Harry Potter 6",
year: 2002,
},
"Harry Potter 7": Book {
name: "Harry Potter 7",
year: 2003,
},
"Harry Potter 2": Book {
name: "Harry Potter 2",
year: 1998,
},
"Harry Potter 4": Book {
name: "Harry Potter 4",
year: 2000,
},
"Harry Potter 5": Book {
name: "Harry Potter 5",
year: 2001,
},
"Harry Potter 1": Book {
name: "Harry Potter 1",
year: 1997,
},
},
}
Performances
creation of 4 tables and for each inserting 1000 entries in 766 ยตs
Dependencies
~1โ1.6MB
~37K SLoC