#cassandra #driver #cc #apache #data-stax #wrapper #datastax

yanked cassander

A Rustified wrapper around the DataStax C/C++ Driver for Apache Cassandra and DataStax Products

0.1.2 Mar 21, 2024
0.1.1 Mar 21, 2024
0.1.0 Mar 21, 2024

#57 in #cassandra

MIT license

320KB
9K SLoC

Cassander

Cassander is a Rust wrapper around the DataStax C/C++ Driver for Apache Cassandra and DataStax Products.

This is the work in progress project: expect breaking changes and defects.

The minimal supported C/C++ driver version is 2.17.1.


lib.rs:

Cassander

The cassander crate provides idiomatic Rust bindings to the DataStax C++ driver for Apache Cassandra. The crate is a work in progress and is not feature complete. The crate is not yet ready for production use.

Architecture

      +---------+
      |cassander|
      +---------+
           |
           |  +----------+
           +->|mod driver|
           |  +----------+
           |        |
           |        |  +-------+
           |        +->|mod ffi|
           |        |  +-------+
           |        |      |  +--------------------+
           |        |      +->|struct_CassStatement|
           |        |    B |  +--------------------+
           |        |    I |  +--------------------+
           |        |    N +->|        ...         |
           |        |    D |  +--------------------+
           |        |    I |  +--------------------+
           |        |    N +->|   enum_CassError   |
           |        |    G |  +--------------------+
           |        |    S |  +--------------------+
           |        |      +->|cass_session_prepare|
           |        |         +--------------------+
           |        |
           |        |  +--------+
           |        +->|mod cass|
           |           +--------+
           |                |  +-------------+
           |                +->|  CassError  |
           |                |  +-------------+
           |                |  +-------------+
           |              S +->| CassFuture  |
           |              A |  +-------------+
           |              F |  +-------------+
           |              E +->|CassStatement|
           |                |  +-------------+
           |              W |  +-------------+
           |              R +->|     ...     |
           |              A |  +-------------+
           |              P |  +-------------+
           |              P +->|  newtypes   |
           |              E |  +-------------+
           |              R |  +-------------+
           |              S +->|   traits    |
           |                |  +-------------+
           |                |  +-------------+
           |                +->|   methods   |
           |                   +-------------+
           |
-----------+---------------------------------------------
           |
           v
    +-------------+
    |Rustified API|
    +-------------+
           |
           |  +---------------+
           +->|   Statement   |
           |  +---------------+
           |  +---------------+
           +->|CachedStatement|
           |  +---------------+
           |  +---------------+
           +->|     Query     |
           |  +---------------+
           |  +---------------+
           +->|   CqlValue    |
           |  +---------------+
           |  +---------------+
           +->| ClusterConfig |
           |  +---------------+
           |  +---------------+
           +->|      ...      |
              +---------------+

Dependencies

~5–13MB
~150K SLoC