Module cdrs::compression [] [src]

CDRS support traffic decompression as it is described in Apache Cassandra protocol

Before being used, client and server must agree on a compression algorithm to use, which is done in the STARTUP message. As a consequence, a STARTUP message must never be compressed. However, once the STARTUP frame has been received by the server, messages can be compressed (including the response to the STARTUP request).

CDRS provides generic trait Compressor. Enum Compression contains implementation for Compressor.

use cdrs::client::CDRS;
use cdrs::query::QueryBuilder;
use cdrs::authenticators::NoneAuthenticator;
use cdrs::compression::Compression;
use cdrs::transport::TransportTcp;

let addr = "127.0.0.1:9042";
let tcp_transport = TransportTcp::new(addr).unwrap();

// pass authenticator into CDRS' constructor
let client = CDRS::new(tcp_transport, NoneAuthenticator);
let session = client.start(Compression::None);
//let session = client.start(Compression::Lz4)
//let session = client.start(Compression::Snappy)

Enums

Compression

Enum which represents a type of compression. Only non-startup frame's body can be compressen.

CompressionError

It's an error which may occure during encoding or deconding frame body. As there are only two types of compressors it contains two related enum options.

Constants

LZ4
SNAPPY

Traits

Compressor

Compressor trait that defines functionality which should be provided by typical compressor.