48 releases (18 stable)
4.0.0-beta.1 | Jan 29, 2021 |
---|---|
3.0.0-beta.2 | Mar 29, 2020 |
2.3.3 | Apr 18, 2020 |
2.3.1 | Mar 26, 2020 |
0.4.0 | Dec 29, 2016 |
#2477 in Database interfaces
613 downloads per month
Used in 4 crates
350KB
9K
SLoC
CDRS
CDRS is looking for maintainers
CDRS is Apache Cassandra driver written in pure Rust.
💡Looking for an async version?
- async-std https://github.com/AlexPikalov/cdrs-async (API is not fully compatible with https://github.com/AlexPikalov/cdrs)
- tokio https://github.com/AlexPikalov/cdrs/tree/async-tokio
Features
- TCP/SSL connection;
- Load balancing;
- Connection pooling;
- LZ4, Snappy compression;
- Cassandra-to-Rust data deserialization;
- Pluggable authentication strategies;
- ScyllaDB support;
- Server events listening;
- Multiple CQL version support (3, 4), full spec implementation;
- Query tracing information.
Documentation and examples
- User guide.
- Examples.
- API docs (release).
- Using ScyllaDB with RUST lesson.
Getting started
Add CDRS to your Cargo.toml
file as a dependency:
cdrs = { version = "2" }
Then add it as an external crate to your 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");
}
This example configures a cluster consisting of a single node, and uses round robin load balancing and default r2d2
values for connection pool.
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dependencies
~3–12MB
~153K SLoC