mirror of
				https://github.com/isar/rusqlite.git
				synced 2025-10-31 05:48:56 +08:00 
			
		
		
		
	
			
				
					
						
					
					8b5f871386d35c60f6b3fd1d247488f0de9da4d9
				
			
			
		
	Rusqlite
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.
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<Vec<u8>>
}
fn main() {
    let conn = Connection::open_in_memory().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 mut 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:
- load_extensionallows loading dynamic library-based SQLite extensions.
- backupallows use of SQLite's online backup API.
- functionsallows you to load Rust closures into SQLite connections for use in queries.
- traceallows hooks into SQLite's tracing and profiling APIs.
- blobgives- std::io::{Read, Write, Seek}access to SQL BLOBs.
Author
John Gallagher, johnkgallagher@gmail.com
License
Rusqlite is available under the MIT license. See the LICENSE file for more info.
					Languages
				
				
								
								
									Rust
								
								99.5%
							
						
							
								
								
									Shell
								
								0.5%