#sqlx #rqlite #driver #sql #toolkit #rxqlite

sqlx-rxqlite

SQLx 的 rqlite 驱动实现。旨在与 sqlx 一起使用;有关详细信息,请参阅 sqlx 包。

1 个不稳定版本

0.1.18 2024年4月26日
0.1.17 2024年4月9日
0.1.9 2024年3月27日

#1321数据库接口

Download history 144/week @ 2024-04-23 10/week @ 2024-04-30 1/week @ 2024-05-14 5/week @ 2024-05-21 1/week @ 2024-05-28 1/week @ 2024-06-11 63/week @ 2024-07-23 33/week @ 2024-07-30

96 每月下载量
用于 casbin-rxqlite-adapter

MIT/Apache

120KB
2.5K SLoC

SQLx rxqlite

Rust SQL 工具包 rxqlite 驱动

Sqlx 驱动,用于 rxqlite

安装

您需要访问 rxqlite 节点。有关安装 rxqlite 的说明,请参阅 https://github.com/HaHa421/rxqlite

使用

一个简单的 Cargo 依赖项可能如下所示

[dependencies]
sqlx-rxqlite = { version = "0.1" }
sqlx = {  version = "0.7" , default-features = false, features = ["macros", "runtime-tokio", "tls-none"] }
tokio = { version = "1", features = [ "full" ] }

假设一个 rxqlite 节点监听在 "127.0.0.1:21001",一个简单的应用程序将按以下方式进行

use futures_util::StreamExt;
use sqlx::prelude::*;
use sqlx_rxqlite::RXQLitePoolOptions;

//#[async_std::main] // Requires the `attributes` feature of `async-std`
#[tokio::main]
// or #[actix_web::main]
async fn main() -> Result<(), sqlx::Error> {
  let pool = RXQLitePoolOptions::new()
        //.max_connections(5)
        .connect("rxqlite://127.0.0.1:21001")
        .await?;
  sqlx::query(
        "CREATE TABLE IF NOT EXISTS _sqlx_rxqlite_test_user_ (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL UNIQUE
    )",
    )
    .execute(&pool)
    .await?;
    
  
    
  let mut row = sqlx::query("SELECT * FROM _sqlx_rxqlite_test_user_  WHERE name = ?")
        .bind("JohnDoe")
        .fetch_optional(&pool)
        .await?;

    if row.is_none() {
        sqlx::query("INSERT INTO _sqlx_rxqlite_test_user_  (name) VALUES (?);")
            .bind("JohnDoe")
            .execute(&pool)
            .await?;
        row = sqlx::query("SELECT * FROM _sqlx_rxqlite_test_user_  WHERE name = 'JohnDoe'")
            .fetch_optional(&pool)
            .await?;
    }
    assert!(row.is_some());
    sqlx::query(
        "DROP TABLE _sqlx_rxqlite_test_user_",
    )
    .execute(&pool)
    .await?;
    Ok(())
}

安全

rxqlite 支持不安全的 TLS 连接(接受任何证书,包括自签名证书)。


许可证

许可方式为以下之一

任选其一。

贡献

除非您明确表示,否则您提交的任何贡献,根据 Apache-2.0 许可证的定义,都应按照上述许可方式,而不附加任何额外条款或条件。

依赖项

~19–33MB
~601K SLoC