Skip to content

tupshin/cassandra-rs

Folders and files

NameName
Last commit message
Last commit date
Dec 13, 2016
Dec 4, 2016
Jul 5, 2015
Dec 15, 2016
Dec 13, 2016
Jan 10, 2015
Dec 13, 2016
Dec 15, 2016
Dec 4, 2016
Dec 4, 2016

Repository files navigation

Build Status Current Version License: MPL-2.0

cassandra-rs

This is a maintained rust project that exposes the cpp driver at https://github.com/datastax/cpp-driver/ in a somewhat-sane crate.

For the wrapper to work, you must first have installed the datastax-cpp driver.

Follow the steps on the cpp driver docs to do so.

Make sure that the driver (specifically libcassandra_static.a and libcassandra.so) are in your /usr/local/lib64/ directory

You can use it from cargo with

    [dependencies.cassandra]
    git = "https://github.com/tupshin/cassandra-rs"

Or just

    [dependencies]
    cassandra="*"

Here's a straightforward example found in simple.rs:

    #[macro_use(stmt)]
    extern crate cassandra;
    use cassandra::*;
    use std::str::FromStr;
    
    
    fn main() {
        let query = stmt!("SELECT keyspace_name FROM system_schema.keyspaces;");
        let col_name = "keyspace_name";
    
        let contact_points = ContactPoints::from_str("127.0.0.1").unwrap();
    
        let mut cluster = Cluster::default();
        cluster.set_contact_points(contact_points).unwrap();
        cluster.set_load_balance_round_robin();
    
        match cluster.connect() {
            Ok(ref mut session) => {
                let result = session.execute(&query).wait().unwrap();
                println!("{}", result);
                for row in result.iter() {
                    let col: String = row.get_col_by_name(col_name).unwrap();
                    println!("ks name = {}", col);
                }
            }
            err => println!("{:?}", err),
        }
    }

There's additional examples included with the project in src/examples.