#rqlite #async

rqlite-rs-macros

rqlite-rs 的宏

10 个版本

0.2.9 2024年7月20日
0.2.8 2024年6月30日
0.2.7 2024年4月22日
0.2.3 2024年3月21日

#9 in #rqlite

Download history 24/week @ 2024-04-29 11/week @ 2024-05-20 15/week @ 2024-05-27 9/week @ 2024-06-03 3/week @ 2024-06-10 132/week @ 2024-06-24 42/week @ 2024-07-01 100/week @ 2024-07-15 102/week @ 2024-07-22 2/week @ 2024-07-29

每月 124 次下载
rqlite-rs 中使用

MIT/Apache

27KB
589

rqlite-rs

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

rqlite-rs 是 rqlite 的 Rust 客户端,rqlite 是基于 SQLite 构建的分布式关系型数据库,提供异步接口,与 Rust 的异步生态系统无缝集成。使用 reqwest 进行高效的连接管理,它提供了一个 Rustic、高级的 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.7–1.6MB
~35K SLoC