11个不稳定版本 (4个重大变更)

0.5.2 2024年8月22日
0.5.1 2024年7月11日
0.5.0 2024年5月9日
0.4.0 2024年2月2日
0.1.0 2021年4月7日

#2705 in 数据库接口

Download history 23236/week @ 2024-05-02 25724/week @ 2024-05-09 36316/week @ 2024-05-16 31605/week @ 2024-05-23 25524/week @ 2024-05-30 37402/week @ 2024-06-06 31434/week @ 2024-06-13 33209/week @ 2024-06-20 35752/week @ 2024-06-27 25925/week @ 2024-07-04 28340/week @ 2024-07-11 25446/week @ 2024-07-18 25376/week @ 2024-07-25 28678/week @ 2024-08-01 31831/week @ 2024-08-08 27450/week @ 2024-08-15

118,468 每月下载量
46 个crate中使用 (直接使用2个)

MIT/Apache

57KB
1K SLoC

ScyllaDB Rust驱动程序

Crates.io docs.rs minimum rustc version

这是一个用纯Rust编写的ScyllaDB客户端驱动程序,具有使用Tokio的完整异步API。虽然针对ScyllaDB进行了优化,但该驱动程序也兼容Apache Cassandra®

注意:此驱动程序已官方支持,但目前处于beta版本。欢迎提交错误报告和pull请求!

入门

文档手册》是入门的好地方。另一个有用的资源是Scylla University的Rust和Scylla 课程

示例

let uri = "127.0.0.1:9042";

let session: Session = SessionBuilder::new().known_node(uri).build().await?;

let result = session.query("SELECT a, b, c FROM ks.t", &[]).await?;
let mut iter = result.rows_typed::<(i32, i32, String)>()?;
while let Some((a, b, c)) = iter.next().transpose()? {
    println!("a, b, c: {}, {}, {}", a, b, c);
}

请参阅完整的示例程序以获取更多信息。如果您有一个运行的Scylla服务器,也可以按照以下方式运行示例

SCYLLA_URI="127.0.0.1:9042" cargo run --example basic

所有示例均可在示例目录中找到

功能和路线图

该驱动程序支持以下功能

  • 异步API
  • Token感知路由
  • 分片感知路由(特定于ScyllaDB)
  • 预编译语句
  • 查询分页
  • 压缩(LZ4和Snappy算法)
  • CQL二进制协议版本4
  • 批处理语句
  • 可配置的负载均衡策略
  • 驱动程序端度量
  • TLS支持 - 如果要使用它,请安装openssl https://docs.rs/openssl/0.10.32/openssl/#automatic
  • 可配置的重试策略
  • 身份验证支持
  • CQL跟踪

持续努力

  • CQL 事件
  • 更多测试
  • 更多基准测试

寻求帮助

请加入 ScyllaDB Slack 上的 #rust-driver 频道,讨论您可能遇到的问题或疑问。ScyllaDB Slack

支持的 Rust 版本

我们的驱动程序最低支持的 Rust 版本 (MSRV) 是 1.66.0。任何更改都将明确发布,并且仅在主要版本发布时发生。

参考文档

其他驱动程序

许可

本项目受以下任一许可协议的许可:

任选其一。

依赖

~0.6–1MB
~24K SLoC