24 个版本

0.3.19 2024年7月20日
0.3.18 2024年6月30日
0.3.15 2024年5月3日
0.3.14 2024年4月22日
0.2.3 2024年3月15日

#835 in 数据库接口

Download history 544/week @ 2024-04-17 42/week @ 2024-04-24 180/week @ 2024-05-01 7/week @ 2024-05-08 4/week @ 2024-05-15 8/week @ 2024-05-22 138/week @ 2024-05-29 32/week @ 2024-06-05 6/week @ 2024-06-12 223/week @ 2024-06-26 40/week @ 2024-07-03 101/week @ 2024-07-17 137/week @ 2024-07-24

每月238次下载

MIT/Apache

79KB
2K SLoC

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.19"

快速开始

确保您有一个运行的 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 使用以下任一许可证:

任您选择。

依赖项

~4–15MB
~212K SLoC