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
Sessiondirectly (#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
ClusterStateto get node by host id (#1646). - Exposed cluster name in
ClusterState(#1666). - Re-exported in
scyllacrateVectorIteratorand other Vector-related types (#1650). get_tracing_infonow 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_SERIALconsistency are now treated as LWT for routing, reducing Paxos contention (#1647). - Fixed panic in
metadata/readeroccurring on runtime shutdown (#1644). - Node attribute changes are now handled correctly w.r.t.
HostFilter(#1654). - Fixed shard-awareness port iteration logic when
REUSEADDRis used (#1622). - Made driver reject lz4 frame bodies shorter than the 4-byte size prefix (#1642).
- Fixed
read_inetport 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_tabletwhen parsing tablet hint from the server (#1660). - Fixed tracing diagnostics to reference
system_traces.sessions(#1698). - Fixed
RequiredHostAbsenterror, which always displayed host id0(#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-cqlcrate that is exposed inscyllacrate’s public API into a newscylla-cql-corecrate, which is now a dependency ofscylla-cql. This allows us to make breaking changes inscylla-cqlfrom now on, without affecting thescyllacrate’s public API. (#1604, #1609, #1593). - Pinned
scyllacrate’s dependencies (scylla-cql-core,scylla-cql) to specific versions, to prevent resolving incompatible dependencies. Now users will no longer suffer from incompability ofscyllawithscylla-cql[-core](#1715).
Documentation:
- Described interaction of statement idempotence and
DefaultRetryPolicydecision matrix (#1633). - Updated actions (#1635).
- Clarified
connection_addresssemantics inCoordinator(#1651). - Fixed broken links (#1663).
CI / developer tool improvements:
- Improved client routes testing (#1615, #1631).
- Decreased number of connections in
many_connectionstest 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:
- https://github.com/scylladb/scylla-rust-driver
Contributions are most welcome!
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 |