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 数据库接口
207 每月下载量
在 2 crates 中使用
19KB
523 代码行
rqlite-rs
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: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.8–1.7MB
~36K SLoC