/cassandra-sys-rs

Simple mostly-autogenerated wrapper around the DataStax C/C++ CQL driver.

Primary LanguageRustApache License 2.0Apache-2.0

Build Status Current Version License

cassandra-cpp-sys

This is a maintained Rust project that provides a low-level binding of the DataStax cpp driver at https://github.com/datastax/cpp-driver/ . It is mostly autogenerated.

This project also includes a fairly complete set of examples equivalent to the ones in the C++ repository.

It is quite possible to use this crate directly from your Rust code, but it will mean littering unsafe all over the place. Instead it is recommended that you use the safe wrapper of this interface: cassandra-cpp.

Documentation (crates.io).

Getting started

For the wrapper 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.

You can use this crate from cargo with

    [dependencies]
    cassandra-cpp-sys = "0.12"

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.

Compilation

You must have the DataStax driver installed on your system in order to build this crate.

By default, /usr/lib, /usr/local/lib64, and /usr/local/lib are added to the linker search path.

A semicolon separated list of additional directories to add to the linker search path may be specified through the CASSANDRA_SYS_LIB_PATH environment variable.

Autogeneration

The file cassandra.rs is autogenerated as follows:

$ bindgen --no-layout-tests --blacklist-type=max_align_t --rustified-enum=.* --output=src/cassandra.rs cassandra.h

The autogenerated code is formatted with rustfmt.

History

This project was forked from cassandra-sys, which was no longer being maintained.