The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.9.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 403k downloads on crates;
- over 440 GitHub stars!
API cleanups / breaking changes:
Session::estimate_replicas_for_query. The same effect can be achieved via slightly longer
Session::get_tracing_info_custom. The parameters passed to that function (number of retries, delay between retries, consistency level) can now be set on the per-session level basis, and
get_tracing_infoshould be used instead. #768
- Removed accidental reexports of
scylla::statement::batchmodule. Those are already available through more convenient import paths. #767
- Removed the reexport of
scylla::transport::connectionmodule. It is already reexported from the
scyllamodule which should be more convenient. #763
- Removed the
scylla::routing::Nodestruct. It hasn’t been used by any of our APIs and had a very similar name to
scylla::transport::Node, so it would only be a source of confusion if left alone any longer. #762
- A bunch of constants have been un-pubbed from the
scylla-cqlcrate, as well as two internal functions related to frame compression/decompression. #764
CloudConfigstruct has been exposed to the users. The purpose of this change is to aid in implementing Scylla Cloud support in the
- It is now not possible to set the SSL context when using Rust driver with Scylla Cloud; the SSL context should be determined fully by the Scylla Cloud configuration and should not be modified by users. #703
New features / enhancements:
- In case when executing prepared queries, the partition key associated with the request is emitted in a
tokio::tracingspan in a human-readable form. Previously, it was also emitted, but in a form that is hard to parse by a human. #766
- The function
Session::calculate_token_for_partition_keyis added. It allows to calculate a partition key only by using a partitioner and values of a partition key, no
PreparedStatementobject is needed. #757
LatencyAwarePolicy, which is exposed in cpp driver but was missing from the rust implementation’s API, is now exposed. The previous default value has been changed. #733
- The documentation theme has been updated. #737
RoutingInfostruct to load balancing policies used to have incorrect consistency level set. This is now fixed, and a regression test has been added. #743
- If one of the hostnames passed as a contact point cannot be resolved, the driver would fail to create a session, even if other nodes would resolve correctly. This is now fixed and the driver will succeed in such scenario. #753
CI / developer tool improvements:
- The timeout of CI jobs has been reduced from the default 6 hours to 1 hour. #734
- Non-public dependencies of the driver were updated. (#769, #755)
clone.rsexample has been removed. It promoted bad practices; we recommend only using one
Sessionobject per application. #728
- Uses of
SimpleStrategyhas been removed from examples and documentation. This strategy will become deprecated in ScyllaDB in the future, and we no longer want to promote its use in learning materials. #726
- The runners in our CI has been temporarily downgraded to use Ubuntu 20.04. The reason for this change is that the
ccmtool, used by the CI, requires Python 2 which is no longer available in the ubuntu-latest runner. Requirement for Python 2 will be dropped with the next ScyllaDB release, and the system version will be upgraded again after this happens. #752
docker composeversion has been upgraded from V1 to V2 in the CI. The old one stopped receiving updates. #761
Congrats to all contributors and thanks everyone for using our driver!
The source code of the driver can be found here:
- GitHub - scylladb/scylla-rust-driver: Async CQL driver for Rust, optimized for Scylla!
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: