[RELEASE] ScyllaDB Rust Driver 1.7.0

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

Some interesting statistics:

  • over 7.2M downloads on crates.io!
  • over 674 GitHub stars!

Changes

New features / enhancements:

  • Preferred DC and rack can now be configured on Session directly (#1658).
  • Introduced refill trigger in connection pool. Now a refill is triggered automatically upon two kinds of events: 1) client routes change 2) node status changes to UP, which decreases reconnection delay in those situations (#1630).
  • Added method to ClusterState to get node by host id (#1646).
  • Exposed cluster name in ClusterState (#1666).
  • Re-exported in scylla crate VectorIterator and other Vector-related types (#1650).
  • get_tracing_info now waits for the request duration to be available (#1652).
  • Implemented / fixed / optimized optional methods (size_hint) and traits (ExactSizeIterator) for our iterators (#1664).
  • Added Vec accessor support for CqlValue::Vector (#1705).
  • Made TCP options use dedicated tokio helpers (#1618).

Bug fixes:

  • Statements executed with SERIAL/LOCAL_SERIAL consistency are now treated as LWT for routing, reducing Paxos contention (#1647).
  • Fixed panic in metadata/reader occurring on runtime shutdown (#1644).
  • Node attribute changes are now handled correctly w.r.t. HostFilter (#1654).
  • Fixed shard-awareness port iteration logic when REUSEADDR is used (#1622).
  • Made driver reject lz4 frame bodies shorter than the 4-byte size prefix (#1642).
  • Fixed read_inet port conversion (#1649).
  • Fixed panic in connection pool on out-of-range shard (#1656).
  • Fixed shard aware port range crash (and other problems) (#1657).
  • Require first_tablet < last_tablet when parsing tablet hint from the server (#1660).
  • Fixed tracing diagnostics to reference system_traces.sessions (#1698).
  • Fixed RequiredHostAbsent error, which always displayed host id 0 (#1700).
  • Hex prefix validation error is now propagated in custom type parser (#1701).
  • Zero prepared-statement cache capacity is now rejected to prevent infinite looping (#1702).
  • Exposed inner error in TracingError row-conversion variants (#1703).
  • Zero latency scale in the default load-balancing policy is now rejected (#1704).
  • Fixed (again) ser/deser of tuples that are shorter than the metadata says (#1708).
  • Zero keepalive interval is now rejected during session creation (#1711).

Internal refactors:

  • Extracted part of scylla-cql crate that is exposed in scylla crate’s public API into a new scylla-cql-core crate, which is now a dependency of scylla-cql. This allows us to make breaking changes in scylla-cql from now on, without affecting the scylla crate’s public API. (#1604, #1609, #1593).
  • Pinned scylla crate’s dependencies (scylla-cql-core, scylla-cql) to specific versions, to prevent resolving incompatible dependencies. Now users will no longer suffer from incompability of scylla with scylla-cql[-core] (#1715).

Documentation:

  • Described interaction of statement idempotence and DefaultRetryPolicy decision matrix (#1633).
  • Updated actions (#1635).
  • Clarified connection_address semantics in Coordinator (#1651).
  • Fixed broken links (#1663).

CI / developer tool improvements:

  • Improved client routes testing (#1615, #1631).
  • Decreased number of connections in many_connections test to prevent file descriptor exhaustion (#1621).
  • Fixed client-routes tests flakiness upon node decommission (#1653).
  • Fixed swapped arguments in result metadata serialize test helper (#1699).
  • Fixed flaky test_schema_await_required_host_absent (#1709).

Others:

  • Updated used dependencies (#1617).

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
155 Karol Baryła
26 Wojciech Przytuła
5 Copilot
4 Stanisław Czech
2 copilot-swe-agent[bot]
1 David Garcia
1 Lukasz Sojka
1 Matt Van Horn
1 Photon101
1 Sai Asish Y
1 conorbros