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

#672 in Parser implementations

Download history 61/week @ 2023-11-27 30/week @ 2023-12-04 28/week @ 2023-12-11 68/week @ 2023-12-18 40/week @ 2023-12-25 55/week @ 2024-01-01 58/week @ 2024-01-08 49/week @ 2024-01-15 25/week @ 2024-01-22 27/week @ 2024-01-29 67/week @ 2024-02-05 41/week @ 2024-02-12 174/week @ 2024-02-19 134/week @ 2024-02-26 104/week @ 2024-03-04 43/week @ 2024-03-11

458 downloads per month
Used in 4 crates

MIT/Apache

350KB
9K SLoC

CDRS crates.io version Build Status Build status

CDRS is looking for maintainers

CDRS - Apache Cassandra driver

CDRS is Apache Cassandra driver written in pure Rust.

💡Looking for an async version?

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

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

at your option.

Dependencies

~3–13MB
~144K SLoC