1个不稳定版本
0.1.0 | 2020年9月4日 |
---|
#2880 在 数据库接口
360KB
9K SLoC
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" }
然后将它作为外部crate添加到您的 main.rs
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版,(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
依赖项
~3–12MB
~153K SLoC