| Crates.io | squire |
| lib.rs | squire |
| version | 0.0.1-alpha.5 |
| created_at | 2025-09-05 07:21:43.869528+00 |
| updated_at | 2025-11-29 03:17:34.644341+00 |
| description | Safe and idiomatic SQLite bindings |
| homepage | |
| repository | https://github.com/silverlyra/squire |
| max_upload_size | |
| id | 1825203 |
| size | 267,845 |
Squire is a crate for embedding SQLite in Rust. It provides a safe, idiomatic Rust interface to the underlying SQLite C API.
⚠️ Squire is under active development, without even a
0.0.1release yet. Not all features describe below exist.
use squire::{Connection, Database};
let db = Database::memory();
let connection = Connection::open(db)?;
let connection = Connection::builder(Database::memory()).open()?;
let statement = connection.prepare("SELECT id, username, score FROM users WHERE id = ?")?;
let id: squire::RowId = connection.execute("INSERT INTO users VALUES (DEFAULT, ?, ?);", ("boo", 0.69))?;
let user: (i32, String, f64) = statement.bind(101)?.fetch()?;
#[derive(squire::Query)]
#[query = "SELECT * FROM users WHERE id = ?"]
struct GetUser(i64);
#[squire::query]
fn get_user(id: i64) -> Result<User> {
"SELECT * FROM users WHERE id = :id"
}
#[derive(squire::Table)]
#[squire(table = users)]
pub struct User {
pub id: squire::RowId,
pub username: String,
pub score: f64,
}
#[derive(squire::Bind)]
#[bind(sequential)]
pub struct InsertUser<'a> {
pub username: &'a str,
pub score: f64,
}