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 数据库接口
每月238次下载
79KB
2K SLoC
rqlite-rs
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:4001
和 localhost: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 使用以下任一许可证:
- Apache 许可证 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任您选择。
依赖项
~4–15MB
~212K SLoC