119个版本 (31个破坏性更新)

0.33.4 2024年1月25日
0.33.2 2023年11月24日
0.31.8 2023年7月11日
0.16.2 2023年3月31日

#620网络编程

Download history 131/week @ 2024-04-07 88/week @ 2024-04-14 78/week @ 2024-04-21 117/week @ 2024-04-28 300/week @ 2024-05-05 213/week @ 2024-05-12 221/week @ 2024-05-19 119/week @ 2024-05-26 157/week @ 2024-06-02 318/week @ 2024-06-09 195/week @ 2024-06-16 132/week @ 2024-06-23 126/week @ 2024-06-30 123/week @ 2024-07-07 121/week @ 2024-07-14 170/week @ 2024-07-21

每月548次下载
用于 2 crate

Apache-2.0

77KB
1.5K SLoC

Rust libSQL客户端库

libSQL Rust客户端库可以用于通过HTTP协议和原生Rust接口与sqld进行原生通信。

目前库支持以下后端

  • 本地
  • reqwest
  • hrana
  • Cloudflare Workers环境(可选)

快速入门

为了在项目中使用数据库,只需调用libsql_client::Client::from_env(),或任何其他构造函数

let db = libsql_client::Client::from_env().await?;

您需要提供的只是包含数据库URL的环境变量,例如

export LIBSQL_CLIENT_URL="file:////tmp/example.db"

对于存储在文件中的本地数据库

export LIBSQL_CLIENT_URL="https://example.turso.io"

对于远程数据库连接

您还可以显式使用特定的后端。下一段将介绍如何进行示例。

本地

为了连接到数据库,设置URL指向本地路径

export LIBSQL_CLIENT_URL = "/tmp/example.db"

local_backend功能默认启用,因此添加依赖项如下

cargo add libsql-client

如何连接到数据库并执行查询的示例

    let db = libsql_client::local::Client::from_env()?;
    let response = db
        .execute("SELECT * FROM table WHERE key = 'key1'")
        .await?;
    (...)

Cloudflare Workers

为了连接到数据库,请在.dev.vars中设置以下变量,或将它们注册为秘密

LIBSQL_CLIENT_URL = "https://your-db-url.example.com"
LIBSQL_CLIENT_TOKEN = "<your-jwt>"

启用workers_backend后端将其添加为依赖项。关闭默认功能,因为它们不能保证编译到wasm32-unknown-unknown,这是此环境所需的

cargo add libsql-client --no-default-features -F workers_backend

从GET处理器连接到数据库并执行查询的示例

router.get_async("/", |_, ctx| async move {
    let db = libsql_client::workers::Client::from_ctx(&ctx).await?;
    let response = db
        .execute("SELECT * FROM table WHERE key = 'key1'")
        .await?;
    (...)

依赖项

~5–23MB
~340K SLoC