13 releases
0.16.6 | Jun 17, 2022 |
---|---|
0.16.4 | May 29, 2022 |
0.16.3 | Jan 27, 2022 |
0.16.2-rc0 | Dec 5, 2021 |
0.15.1 | May 7, 2020 |
#2457 in Database interfaces
45,279 downloads per month
300KB
6K
SLoC
cassandra-cpp
This is a maintained Rust project that exposes the DataStax cpp driver at https://github.com/datastax/cpp-driver/ in a somewhat-sane crate. It was originally a fork of https://github.com/tupshin/cassandra-rs but that is no longer maintained.
It is a wrapper around the raw driver binding crate cassandra-cpp-sys.
Getting started
For this crate to work, you must first have installed the datastax-cpp driver. Follow the steps in the cpp driver docs to do so. Pre-built packages are available for most platforms.
Make sure that the driver (specifically libcassandra_static.a
and libcassandra.so
) are in your /usr/local/lib64/
directory
Documentation
See the API documentation.
The Cassandra Query Language (CQL) documentation is likely to be useful.
Since this crate provides a relatively thin wrapper around the DataStax driver, you may also find the DataStax documentation and API docs useful.
Example
For a straightforward example see simple.rs
.
There are additional examples included with the project in tests
and
examples
.
Futures (version 0.15)
Since version 0.15, this crate uses std::future
, allowing your code to
use futures:0.3
, async/await
, etc.
Previous versions (up to 0.14) used futures:0.1
. You can either remain on
the 0.14 stream, update your code to use std::future
, or use a compatibility
shim (e.g., futures::compat
).
Migrating from version 0.8
The API changed significantly in version 0.10.
(Version 0.9 was skipped, for consistency with the cassandra-cpp-sys
version number.)
For a summary of the main changes, see CHANGELOG
.
License
This code is open source, licensed under the Apache License Version 2.0 as
described in LICENSE
.
Contributing
Please see CONTRIBUTING.md
for details on how to contribute
to this project.
Development
This crate is regularly built by Travis; to see details of the most recent builds click on the "build" badge at the top of this page.
You must have the DataStax driver installed on your system in order to build this crate.
The unit tests assume Cassandra is running on the local host accessible on the standard port. The easiest way to achieve this is using Docker and the standard Cassandra image, with
docker pull cassandra
docker run -d --net=host --name=cassandra cassandra
You should run them single-threaded to avoid the dreaded
org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch
error. The tests share a keyspace and tables, so if run in parallel they
interfere with each other.
cargo test -- --test-threads 1
Remember to destroy the container when you're done:
docker stop cassandra
docker rm cassandra
History
This project was forked from cassandra, which was no longer being maintained.
Dependencies
~7–13MB
~181K SLoC