#rqlite #async

rqlite-rs-core

rqlite-rs 的核心库

12 个版本

0.2.10 2024年7月20日
0.2.9 2024年6月30日
0.2.8 2024年4月22日
0.2.4 2024年3月21日
0.1.0 2024年3月15日

#1512 in 数据库接口

Download history 169/week @ 2024-04-13 188/week @ 2024-04-20 28/week @ 2024-04-27 6/week @ 2024-05-04 9/week @ 2024-05-18 16/week @ 2024-05-25 20/week @ 2024-06-01 7/week @ 2024-06-08 2/week @ 2024-06-15 170/week @ 2024-06-29 5/week @ 2024-07-06 4/week @ 2024-07-13 135/week @ 2024-07-20 58/week @ 2024-07-27

207 每月下载量
2 crates 中使用

MIT/Apache

19KB
523 代码行

rqlite-rs

build status Test Coverage Crates.io Documentation License Crates.io Rust

rqlite-rs 是 rqlite 的 Rust 客户端,rqlite 是基于 SQLite 的分布式关系型数据库,提供异步接口,以便与 Rust 的异步生态系统无缝集成。利用 reqwest 进行高效连接管理,它提供了一组 Rust 风格的高级 API,以便轻松高效地与 rqlite 集群交互。

功能

  • 异步接口:完全异步,兼容 Tokio、async-std 和 smol。
  • 连接池:高效管理对 rqlite 集群的连接。
  • 高级 API:简化与 rqlite API 的交互。
  • 弹性:在连接问题发生时自动切换到备用节点。
  • 集群管理:通过节点查询和管理功能完全控制集群。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
...
+ rqlite-rs = "0.3.18"

快速入门

确保您有一个正在运行的 rqlite 集群。将 localhost:4001localhost:4002 替换为您的节点地址

use rqlite_rs::prelude::*;

#[derive(FromRow)]
pub struct Table {
    name: String,
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let client = RqliteClientBuilder::new()
        .known_host("localhost:4001")
        .build()?;

    let query = rqlite_rs::query!(
        "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'"
    )?;

    let rows = client.fetch(query).await?;

    let tables = rows.into_typed::<Table>()?;

    for table in tables {
        println!("Table: {}", table.name);
    }

    Ok(())
}

弹性

客户端支持自动故障转移,如果在连接错误或超时发生时尝试连接到下一个已知节点,确保高可用性。

文档

有关详细的 API 文档和高级使用方法,请访问 rqlite-rs 文档

贡献

欢迎贡献!

许可证

rqlite-rs 根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE

依赖项

~0.8–1.7MB
~36K SLoC