Skip to content

Release 1.1.0

Latest
Compare
Choose a tag to compare
@wprzytula wprzytula released this 03 Apr 13:12
· 27 commits to main since this release

The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.1.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!

Some interesting statistics:

  • over 3.430k downloads on crates!
  • over 623 GitHub stars!

Changes

New features / enhancements:

  • Enabled configurable server-side timeout for metadata queries. As a result, users that tighten their general server-side timeouts will no longer suffer from metadata queries timing out (because now they have longer timeouts specified by default). #1171
  • Added function to deserialize CloudConfig from any Reader. #1183
  • Relaxed Sized requirement in SerializeRow implementation for Box. The constraint was implicit and unnecessary. #1277
  • Made coalescing delay configurable. Now, it's also possible to set the delay to any number of milliseconds, which may speed up throughput-bound use cases. #1297
  • Made bind address for driver's local sockets configurable. #1300
  • Made bind port range for driver's driver's local sockets configurable. #1303

Bug fixes:

  • Added missing fields in Session's Debug implementation. #1301
  • Fixed nodes info to include zero-token nodes (they were missing from ClusterState::get_nodes_info()). #1308
  • ⚠️ Altered default load balancing policy's logic so that datacenter failover is NOT inhibited by local Consistency or SerialConsistency. This inhibition was a behaviour that no other driver exhibited, and it caused unintuitive empty query plans. #1312

API cleanups / better types:

  • Made entities around Partitioner pub again, as they showed to be required by, among others, cql-stress. The traits were sealed to prevent adding implementations by downstream crates. #1298

Internal API cleanups/refactors:

  • Elided needless clone upon Session creation. #1306

Documentation:

  • Renamed remaining occurrences of Query to Statement (those that were accidentally omitted before 1.0.0). #1278
  • Fixed error returned by Session::await_schema_agreement (we had forgot to update docs when the change was done). #1283
  • Fixed broken links in derive macro docs. #1292
  • Updated maintenance procedures for after 1.0.0 was released. #1302
  • Updated documentation theme to 1.8.6. #1305
  • Added --no-merges option to git shortlog used for count commits per author for each release. We decided that merge commits should not count as meaningful impact on the driver. #1311

CI / developer tool improvements:

  • Reduced CI running time by various optimisations (caching, removing redundant steps, avoiding actual build in favour of cargo check, etc.). #1274
  • Sped up Cassandra cluster setup in CI. #1276
  • Moved tests contained in session_test.rs, which require running ScyllaDB cluster, from library (unit) tests to integration tests. This is another step on the path to make unit tests runnable without a set up cluster. (#1291)
  • clippy was appeased again #1309.

Others:

  • Disabled tablets in tests involving materialized views, as the ScyllaDB version available at the time (scylla-2025.1.0) does not support tablets + materialized views combination. #1304

Congrats to all contributors and thanks everyone for using our driver!


The source code of the driver can be found here:

The official crates.io registry entry is here:

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 the last release:

commits author
22 Karol Baryła
18 Mikołaj Uzarski
18 Wojciech Przytuła
4 Roman Hargrave
1 Collin Styles
1 Vartan Babayan
1 dependabot[bot]