48 个版本 (18 个稳定版)
4.0.0-beta.1 | 2021年1月29日 |
---|---|
3.0.0-beta.2 | 2020年3月29日 |
2.3.3 | 2020年4月18日 |
2.3.1 | 2020年3月26日 |
0.4.0 | 2016年12月29日 |
#713 在 解析器实现
每月368次 下载
用于 4 crates
350KB
9K SLoC
CDRS
CDRS 招募维护者
CDRS 是用纯 Rust 编写的 Apache Cassandra 驱动。
💡需要异步版本?
- async-std https://github.com/AlexPikalov/cdrs-async (API 与 https://github.com/AlexPikalov/cdrs 不完全兼容)
- tokio https://github.com/AlexPikalov/cdrs/tree/async-tokio
功能
- TCP/SSL 连接;
- 负载均衡;
- 连接池;
- LZ4、Snappy 压缩;
- Cassandra 到 Rust 的数据反序列化;
- 可插拔的身份验证策略;
- ScyllaDB 支持;
- 监听服务器事件;
- 支持多个 CQL 版本(3、4),完全符合规范实现;
- 查询跟踪信息。
文档和示例
入门指南
将 CDRS 添加到您的 Cargo.toml
文件作为依赖项
cdrs = { version = "2" }
然后将其添加到您的 main.rs
中的外部 crate
extern crate cdrs;
use cdrs::authenticators::NoneAuthenticator;
use cdrs::cluster::session::{new as new_session};
use cdrs::cluster::{ClusterTcpConfig, NodeTcpConfigBuilder};
use cdrs::load_balancing::RoundRobin;
use cdrs::query::*;
fn main() {
let node = NodeTcpConfigBuilder::new("127.0.0.1:9042", NoneAuthenticator {}).build();
let cluster_config = ClusterTcpConfig(vec![node]);
let no_compression =
new_session(&cluster_config, RoundRobin::new()).expect("session should be created");
let create_ks: &'static str = "CREATE KEYSPACE IF NOT EXISTS test_ks WITH REPLICATION = { \
'class' : 'SimpleStrategy', 'replication_factor' : 1 };";
no_compression.query(create_ks).expect("Keyspace create error");
}
此示例配置了一个由单个节点组成的集群,并使用轮询负载均衡和默认的 r2d2
连接池值。
许可协议
此项目受以下任一许可协议的许可:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
依赖项
~3–12MB
~147K SLoC