# VibraDB
[](https://github.com/zanderlewis/vibra/actions/workflows/rust.yml)
## What is Vibra?
Vibra is a powerful and fast database that is thread-safe. Vibra takes inspiration from Laravel's Eloquent and SQLite.
Along with its ease-of-use and speed, Vibra is powerfully encrypted using 10 rounds of AES-256 encryption by default. This ensures that your data is safe and secure.
## Installation
Vibra can be added to your `Cargo.toml` file like so:
```toml
[package]
name = "my_vibra_project"
version = "0.0.1"
edition = "2021"
[dependencies]
vibradb = <vibra_version_here>
```
## Vibra.toml
Vibra requires a `Vibra.toml` file to be present in the root of your project. This file contains the configurations for VibraDB. Here is an example of a `Vibra.toml` file:
```toml
path = "vibra_db"
cache_size = 100
enctyption_layers = 10
```
## Usage
```rs
use vibradb::{VibraConfig, VibraDB, Row};
use tokio;
#[tokio::main]
async fn main() {
// Set up configuration
let config = match VibraConfig::init() {
Ok(config) => config,
Err(e) => {
println!("Failed to read config file: {}", e);
return;
}
};
// Initialize VibraDB with custom configurations
let vibra_db = VibraDB::new(config);
// Example usage
vibra_db.create_table("users").await;
let row = Row {
id: "user1".to_string(),
columns: vec![
("name".to_string(), "John Doe".to_string()),
("email".to_string(), "john.doe@example.com".to_string()),
],
};
vibra_db.insert_row("users", row).await;
if let Some(value) = vibra_db.get_row("users", "user1").await {
println!("Retrieved: {:?}", value);
} else {
println!("Failed to retrieve row");
}
let updated_row = Row {
id: "user1".to_string(),
columns: vec![
("name".to_string(), "John Doe Updated".to_string()),
("email".to_string(), "john.doe.updated@example.com".to_string()),
],
};
vibra_db.update_row("users", updated_row).await;
if let Some(value) = vibra_db.get_row("users", "user1").await {
println!("Retrieved: {:?}", value);
} else {
println!("Failed to retrieve row");
}
// Delete DB
vibra_db.delete_db().await;
}
```