Rust API
Rust API
Native Rust API for embedded database usage.
Basic Usage
use heliosdb_nano::{EmbeddedDatabase, Value};
fn main() -> Result<(), Box<dyn std::error::Error>> { // Create database let db = EmbeddedDatabase::new("./data")?;
// Execute SQL db.execute("CREATE TABLE users (id INT, name TEXT)")?;
// Insert with parameters db.execute_params( "INSERT INTO users VALUES ($1, $2)", &[Value::Int4(1), Value::String("Alice".into())] )?;
// Query let results = db.query("SELECT * FROM users")?; for row in results.rows { println!("{:?}", row); }
Ok(())}Core Types
pub struct EmbeddedDatabase { ... }pub struct QueryResult { pub rows: Vec<HashMap<String, Value>>, pub columns: Vec<String>, pub rows_affected: i64,}
pub enum Value { Null, Bool(bool), Int4(i32), Int8(i64), Float8(f64), String(String), Bytes(Vec<u8>), Json(serde_json::Value), Vector(Vec<f32>),}Transactions
let tx = db.begin_transaction()?;db.execute("INSERT INTO users VALUES (1, 'Alice')")?;db.execute("INSERT INTO users VALUES (2, 'Bob')")?;tx.commit()?;// Or tx.rollback()?;Branching
db.create_branch("dev", Some("main"), None)?;db.switch_branch("dev")?;db.merge_branch("dev", "main")?;db.drop_branch("dev")?;Time-Travel
let results = db.query_as_of_timestamp( "SELECT * FROM orders", "2025-01-15 00:00:00", &[])?;Vector Search
let results = db.vector_search("documents", "search query", 10)?;for result in results { println!("{}: {}", result.id, result.score);}See API Reference for complete documentation.