#cassandra #scylla #cql

scylla-proxy

Scylla驱动程序和集群之间的代理层,允许在不利条件下测试Scylla驱动程序的行为

4个版本

0.0.4 2024年7月11日
0.0.3 2023年6月5日
0.0.2 2023年3月29日
0.0.1 2022年12月15日

847数据库接口 中排名

Download history 3/week @ 2024-05-25 2/week @ 2024-06-01 100/week @ 2024-07-06 30/week @ 2024-07-13 4/week @ 2024-07-20 59/week @ 2024-07-27 57/week @ 2024-08-03

每月 122 次下载
scylla 中使用

MIT/Apache

655KB
15K SLoC

ScyllaDB Rust驱动程序

Crates.io docs.rs minimum rustc version

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

注意:此驱动程序正式受支持,但目前处于测试版。欢迎提交错误报告和拉取请求!

入门

请从文档手册开始。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

所有示例均位于examples目录中

功能和路线图

该驱动程序支持以下功能

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

持续努力

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

获取帮助

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

支持的Rust版本

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

参考文档

其他驱动程序

许可证

本项目受以下任一许可证的许可

由您选择。

依赖

~7–16MB
~197K SLoC