cassandra-cpp-sys 1.1.0

A bindgen-generated Rust wrapper around the DataStax Cassandra C++ driver plus working examples. You probably want to use the "cassandra-cpp" crate which provides a safe wrapper.
Documentation
[![Build Status](https://github.com/Metaswitch/cassandra-sys-rs/actions/workflows/build.yml/badge.svg)](https://github.com/Metaswitch/cassandra-sys-rs/actions)
[![Current Version](http://img.shields.io/crates/v/cassandra-cpp-sys.svg)](https://crates.io/crates/cassandra-cpp-sys)
[![License](https://img.shields.io/github/license/Metaswitch/cassandra-sys-rs.svg)](#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.
It was originally a fork of https://github.com/tupshin/cassandra-sys-rs/ but that is no longer maintained.

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](https://github.com/Metaswitch/cassandra-rs).

[Documentation (crates.io)](https://docs.rs/cassandra-cpp-sys).


## Getting started

For the wrapper to work, you must first have installed the datastax-cpp driver.
Follow the steps in the
[cpp driver docs](https://github.com/datastax/cpp-driver/tree/master/topics#installation)
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 as `cassandra-cpp-sys`.

## License

This code is open source, licensed under the Apache License Version 2.0 as
described in [`LICENSE`](LICENSE).


## Contributing

Please see [`CONTRIBUTING.md`](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.

## Feature flags

This crate includes the feature flag `early_access_min_tls_version`, which allows you to build against a version of the DataStax driver including the `cass_ssl_set_min_protocol_version` method, as defined in [this PR](https://github.com/datastax/cpp-driver/pull/525). You must have a version of the driver supporting this installed local to be able to compile (and run) with this feature flag.

When this this feature is available in the mainline driver this flag will be set to do nothing and deprecated, and the functions will be added to the main library. The flag will then be retired in the next breaking change.

## 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](https://github.com/tupshin/cassandra-sys-rs), which was no longer being maintained.