Rusqlite

Travis Build Status AppVeyor Build Status Latest Version

Rusqlite is an ergonomic wrapper for using SQLite from Rust. It attempts to expose an interface similar to rust-postgres. View the full API documentation.

```rust extern crate rusqlite; extern crate time;

use time::Timespec; use rusqlite::Connection;

[derive(Debug)]

struct Person { id: i32, name: String, time_created: Timespec, data: Option> }

fn main() { let conn = Connection::openinmemory().unwrap();

conn.execute("CREATE TABLE person (
              id              INTEGER PRIMARY KEY,
              name            TEXT NOT NULL,
              time_created    TEXT NOT NULL,
              data            BLOB
              )", &[]).unwrap();
let me = Person {
    id: 0,
    name: "Steven".to_string(),
    time_created: time::get_time(),
    data: None
};
conn.execute("INSERT INTO person (name, time_created, data)
              VALUES (?1, ?2, ?3)",
             &[&me.name, &me.time_created, &me.data]).unwrap();

let mut stmt = conn.prepare("SELECT id, name, time_created, data FROM person").unwrap();
let person_iter = stmt.query_map(&[], |row| {
    Person {
        id: row.get(0),
        name: row.get(1),
        time_created: row.get(2),
        data: row.get(3)
    }
}).unwrap();

for person in person_iter {
    println!("Found person {:?}", person.unwrap());
}

} ```

Optional Features

Rusqlite provides several features that are behind Cargo features. They are:

Author

John Gallagher, johnkgallagher@gmail.com

License

Rusqlite is available under the MIT license. See the LICENSE file for more info.