Expand description
Rusqlite is an ergonomic wrapper for using SQLite from Rust.
Historically, the API was based on the one from
rust-postgres
. However, the
two have diverged in many ways, and no compatibility between the two is
intended.
use rusqlite::{params, Connection, Result};
#[derive(Debug)]
struct Person {
id: i32,
name: String,
data: Option<Vec<u8>>,
}
fn main() -> Result<()> {
let conn = Connection::open_in_memory()?;
conn.execute(
"CREATE TABLE person (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
data BLOB
)",
(), // empty list of parameters.
)?;
let me = Person {
id: 0,
name: "Steven".to_string(),
data: None,
};
conn.execute(
"INSERT INTO person (name, data) VALUES (?1, ?2)",
(&me.name, &me.data),
)?;
let mut stmt = conn.prepare("SELECT id, name, data FROM person")?;
let person_iter = stmt.query_map([], |row| {
Ok(Person {
id: row.get(0)?,
name: row.get(1)?,
data: row.get(2)?,
})
})?;
for person in person_iter {
println!("Found person {:?}", person.unwrap());
}
Ok(())
}
Re-exports
pub use libsqlite3_sys as ffi;
Modules
backup
backup
Online SQLite backup API.
blob
blob
Incremental BLOB I/O.
Configure database connections
functions
functions
Create or redefine SQL functions.
hooks
hooks
Commit, Data Change and Rollback Notification Callbacks
limits
limits
Run-Time Limits
trace
trace
Tracing and profiling functions. Error and warning log.
Traits dealing with SQLite data types.
vtab
vtab
Create virtual tables.
Macros
A macro making it more convenient to pass lists of named parameters
as a
&[(&str, &dyn ToSql)]
.A macro making it more convenient to longer lists of
parameters as a
&[&dyn ToSql]
.Structs
An iterator over the mapped resulting rows of a query, with an Error type
unifying with Error.
Batch iterator
Cacheable statement.
Information about a column of a SQLite query.
A connection to a SQLite database.
Allows interrupting a long-running computation.
LoadExtensionGuard
load_extension
RAII guard temporarily enabling SQLite extensions to be loaded.
F
is used to transform the streaming iterator into a fallible
iterator.An iterator over the mapped resulting rows of a query.
Flags for opening SQLite database connections. See
sqlite3_open_v2 for details.
A single result row of a query.
An handle for the resulting rows of a query.
Represents a savepoint on a database connection.
A prepared statement.
Represents a transaction on a database connection.
Enums
Name for a database within a SQLite connection.
Options for how a Transaction or Savepoint should behave when it is dropped.
Enum listing possible errors from rusqlite.
Error Codes
Prepared statement status counters.
Options for transaction behavior. See BEGIN
TRANSACTION for details.
Constants
Shorthand for
DatabaseName::Main
.Shorthand for
DatabaseName::Temp
.Traits
Trait used for sets of parameter passed into SQL
statements/queries.
A trait implemented by types that can index into columns of a row.
A trait for types that can be converted into SQLite values. Returns
Error::ToSqlConversionFailure
if the conversion fails.Functions
rusqlite’s check for a safe SQLite threading mode requires SQLite 3.7.0 or
later. If you are running against a SQLite older than that, rusqlite
attempts to ensure safety by performing configuration and initialization of
SQLite itself the first time you
attempt to open a connection. By default, rusqlite panics if that
initialization fails, since that could mean SQLite has been initialized in
single-thread mode.
Constructor function for a
ParamsFromIter
. See its documentation for
more.Returns the SQLite version as a string; e.g.,
"3.16.2"
for version 3.16.2.Returns the SQLite version as an integer; e.g.,
3016002
for version
3.16.2.Type Definitions
A typedef of the result returned by many methods.