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
每月 124 次下载
在 rqlite-rs 中使用
27KB
589 行
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.18"
快速入门
确保你有一个正在运行的 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 采用 MIT 许可证。有关详细信息,请参阅 LICENSE。
依赖
~0.7–1.6MB
~35K SLoC