#libsql #sqlite #rows #gateway #open

yanked libsql_core

libSQL library: the main gateway for interacting with the database

1 unstable release

0.0.1 Jul 11, 2023

#20 in #libsql

MIT license

295KB
6.5K SLoC

libSQL API for Rust

Getting Started

Connecting to a database

use libsql_core::Database;

let db = Database::open("hello.db");

let conn = db.connect().unwrap();

Creating a table

conn.execute("CREATE TABLE IF NOT EXISTS users (email TEXT)", ()).unwrap();

Inserting rows into a table

conn.execute("INSERT INTO users (email) VALUES ('alice@example.org')", ()).unwrap();

Querying rows from a table

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:

export LIBSQL_STATIC_LIB_DIR=$(pwd)/../../.libs

Building the APIs:

cargo build

Running the tests:

cargo test

Running the benchmarks:

cargo bench

Run benchmarks and generate flamegraphs:

echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid
cargo bench --bench benchmark -- --profile-time=5

Dependencies

~51MB
~883K SLoC