# libSQL API for Rust ## Getting Started #### Connecting to a database ```rust use libsql_core::Database; let db = Database::open("hello.db"); let conn = db.connect().unwrap(); ``` #### Creating a table ```rust conn.execute("CREATE TABLE IF NOT EXISTS users (email TEXT)", ()).unwrap(); ``` #### Inserting rows into a table ```rust conn.execute("INSERT INTO users (email) VALUES ('alice@example.org')", ()).unwrap(); ``` #### Querying rows from a table ```rust let rows = conn.execute("SELECT * FROM users WHERE email = ?", params!["alice@example.org"]).unwrap().unwrap(); let row = rows.next().unwrap().unwrap(); // prints "alice@example.org" println!("{}", row.get::<&str>(0).unwrap()); ``` ## Developing Setting up the environment: ```sh export LIBSQL_STATIC_LIB_DIR=$(pwd)/../../.libs ``` Building the APIs: ```sh cargo build ``` Running the tests: ```sh cargo test ``` Running the benchmarks: ```sh cargo bench ``` Run benchmarks and generate flamegraphs: ```console echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid cargo bench --bench benchmark -- --profile-time=5 ```