#sqlite #orm #rusqlite

sequelite

A simple SQLite ORM for Rust

4 releases

0.2.3 Apr 14, 2023
0.2.2 Apr 14, 2023
0.2.1 Apr 14, 2023
0.2.0 Apr 14, 2023

#1713 in Database interfaces

MIT license

95KB
1.5K SLoC

Sequelite 🚀

Sequelite is a simple, lightweight, and fast SQLite ORM for rust.

It is built on top of rusqlite

Features

  • Simple and easy to use
  • Lightweight
  • Fast
  • Automatic schema migration

Usage

Add this to your Cargo.toml:

[dependencies]
sequelite = "0.2"

You can find the documentation here

Example

use sequelite::prelude::*;

#[derive(Debug, Model)]
struct User {
    id: Option<i32>,
    #[default_value(&"Unknown name")]
    name: Option<String>,
    age: i32,
}

fn main() {
    // Create new database connection
    let mut conn = Connection::new("example.db").unwrap();

    // Ensure database schema is up to date
    conn.register::<User>().unwrap();
    conn.migrate();

    // Create a new users
    conn.insert(&[
        User { id: None, name: Some("John".to_string()), age: 20 },
        User { id: None, name: Some("Jane".to_string()), age: 21 },
    ]);

    // Get all users whose name is "John"
    let users = User::select()
        .filter(User::name.eq("John"))
        .exec(&conn).unwrap();

    // Print all users
    println!("{:#?}", users);
}

Dependencies

~36MB
~589K SLoC