ahri

Crates.ioahri
lib.rsahri
version1.0.1
sourcesrc
created_at2023-09-30 17:25:19.480988
updated_at2023-10-05 00:18:15.055903
descriptionahri is a database 🗳
homepage
repositoryhttps://github.com/AuracleTech/ahri
max_upload_size
id988754
size71,057
A (AuracleTech)

documentation

README

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

Commit count: 16

cargo fmt