#sqlite #tokio #async #sql

tokio-sqlite

异步SQLite客户端

5个版本

0.1.4 2024年3月22日
0.1.3 2024年2月7日
0.1.2 2024年1月25日
0.1.1 2024年1月24日
0.1.0 2024年1月24日

#1752 in 数据库接口

每月 49 次下载

MIT/Apache

20KB
509 代码行

tokio-sqlite

crates.io codecov

用法

use tokio_sqlite::{Connection, Value};

struct Post {
    id: i32,
    title: String,
    author: Option<i64>,
}

#[tokio::main]
async fn main() {
    let mut conn = Connection::open(":memory:").await.unwrap();
    conn.execute(
        "CREATE TABLE post (
            id     INTEGER PRIMARY KEY,
            title  TEXT NOT NULL,
            author BIGINT
        )",
        [],
    )
    .await
    .unwrap();
    let post = Post {
        id: 1,
        title: "tokio-sqlite".into(),
        author: None,
    };
    let mut rows = conn
        .query(
            "INSERT INTO post (title, author) VALUES ($1, $2) RETURNING id",
            [post.title.into(), post.author.into()],
        )
        .await
        .unwrap();
    let row = rows.next().await.unwrap().unwrap();
    assert_eq!(row.values()[0], Value::Integer(post.id.into()));
}

许可证

tokio-sqlite在MIT许可证和Apache 2.0许可证的条款下分发。

依赖

~25MB
~468K SLoC