I'm pleased to announce Scylla Rust Driver 0.2.0, an asynchronous CQL driver for Rust, fully compatible with Apache Cassandra™!

Our Rust driver now also has an official documentation page: https://rust-driver.docs.scylladb.com/ , thanks to Laura Novich and David Garcia's contributions.

=== Notable changes ===

Features:

 * Waiting for schema agreement
   The driver is now capable of awaiting schema agreement after schema changes:
   > session.await_schema_agreement().await?

 * Speculative execution support
   The driver now supports setting various speculative execution policies, used when responses do not arrive in time. Currently, the speculative execution can be based on a simple timeout or on specific percentile values.

 * More control over paging
   Except for the existing iterator-based API, queries can now return their paging state. The paging state can be later used to resume the next query from where the previous one left off.

 * Configurable connect timeout
   Sessions can now specify how long they are willing to wait for connections. It can be done via a new connect_timeout parameter in SessionConfig

 * Support for schema change events
   The driver is now capable of receiving schema change CQL events from the cluster

 * Reusable SessionBuilder
   The session builder now supports calling .build() on it multiple times, which allows preparing the configuration once and then using it to establish multiple CQL sessions.

 * Automatic shard-aware port picking (Scylla-only)
   The driver will now probe the cluster for its shard-aware port configuration, and if it finds one, it will automatically switch to using more efficient shard-aware ports

 * Default port: 9042
   It's now possible to omit the explicit port specification when creating a session. In that case, CQL's default 9042 port will be used.

Performance:

Various performance fixes were applied, based on benchmarks and profiling results. Most notably, a couple of synchronization bottlenecks were avoided with the help of the arc_swap crate. We also reduced the number of writes needed to send a request from 2 to 1, which speeds up the operation and also avoid the pitfall of using Nagle's algorithm and delayed ACK at the same time. Also, tcp nodelay option is now set to true by default in order to avoid latency spikes.

Fixes:

Lots of small fixes are introduced in this release. A problem with picking source ports (that we hit on Windows) is now solved. We also properly propagate authentication errors to the users.

===

The source code of the driver can be found here:
  * https://github.com/scylladb/scylla-rust-driver
Contributions are most welcome!

The official crates.io registry entry is here:
  * https://crates.io/crates/scylla

Thank you for your attention, please do not hesitate to contact us if you have any questions, issues, feature requests, or are simply interested in our driver!

Contributors since last release:
commits|author
    26  Michał Sala
    25  Piotr Sarna
    18  Piotr Dulikowski
     5  Kejmer
     3  Jan Ciołek
     3  altanozlu
     2  Pekka Enberg
     1  Anita Śledź
     1  David Garcia
     1  Jasperav
     1  Kajetan Husiatyński
     1  dgarcia360
     1  lauranovich

On 4/8/21 9:19 AM, Piotr Sarna wrote:
I am pleased to announce the first release of a brand new, asynchronous CQL driver for Rust, fully compatible with Apache Cassandra™ - Scylla Rust Driver 0.1.0.

Our new driver is capable of the following, and much more:
 * Asynchronous API based on Tokio (tokio.rs)
 * Token-aware routing
 * Shard-aware routing (specific to Scylla)
 * Prepared statements
 * Query paging
 * Compression (LZ4 and Snappy algorithms)
 * CQL binary protocol version 4
 * Batch statements
 * Configurable load balancing policies
 * Driver-side metrics
 * TLS support (based on openssl)
 * Configurable retry policies
 * Authentication support
 * CQL tracing

The source code of the driver can be found here:
 > https://github.com/scylladb/scylla-rust-driver
Contributions are most welcome!

The official crates.io registry entry is here:
 > https://crates.io/crates/scylla

The original release note:
 > https://groups.google.com/g/scylladb-users/c/IW9mevyygis

Thank you, please don't hesitate to download and test the driver, we're waiting for your feedback!


Reply via email to