Expand description
libSQL API for Rust
libSQL is an embeddable SQL database engine based on SQLite. This Rust API is a batteries-included wrapper around the SQLite C API to support transparent replication while retaining compatibility with the SQLite ecosystem, such as the SQL dialect and extensions. If you are building an application in Rust, this is the crate you should use. There are also libSQL language bindings of this Rust crate to other languages such as JavaScript, Python, Go, and C.
Getting Started
To get started, you first need to create a Database
object and then open a Connection
to it, which you use to query:
use libsql::Database;
let db = Database::open_in_memory().unwrap();
let conn = db.connect().unwrap();
conn.execute("CREATE TABLE IF NOT EXISTS users (email TEXT)", ()).await.unwrap();
conn.execute("INSERT INTO users (email) VALUES ('alice@example.org')", ()).await.unwrap();
Embedded Replicas
Embedded replica is libSQL database that’s running in your application process, which keeps a local copy of a remote database. They are useful if you want to move data in the memory space of your application for fast access.
You can open an embedded read-only replica by using the [Database::with_replicator
] constructor:
use libsql::{Database, Opts};
use libsql_replication::{Frame, Frames, Replicator};
let mut db = Database::open_with_sync("/tmp/test.db", "http://localhost:8080", "").await.unwrap();
let frames = Frames::Vec(vec![]);
db.sync_frames(frames).unwrap();
let conn = db.connect().unwrap();
conn.execute("SELECT * FROM users", ()).await.unwrap();
Examples
You can find more examples in the examples
directory.
Re-exports
pub use errors::Error;
Modules
Macros
Structs
Enums
Functions
- Convert an owned iterator into Params.
- Return the version of the underlying SQLite library as a string.
- Return the version of the underlying SQLite library as a number.