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!
Notable changes
API cleanups / breaking changes:
- Removed
Session::estimate_replicas_for_query
. The same effect can be achieved via slightly longersession.get_cluster_data().get_token_endpoints()
. #768 - Removed
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, andget_tracing_info
should be used instead. #768 - Removed accidental reexports of
Consistency
andSerialConsistency
from thescylla::statement::batch
module. Those are already available through more convenient import paths. #767 - Removed the reexport of
QueryResult
fromscylla::transport::connection
module. It is already reexported from thescylla
module which should be more convenient. #763 - Removed the
scylla::routing::Node
struct. It hasn’t been used by any of our APIs and had a very similar name toscylla::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-cql
crate, as well as two internal functions related to frame compression/decompression. #764 - The
CloudConfig
struct has been exposed to the users. The purpose of this change is to aid in implementing Scylla Cloud support in thecpp-rust-driver
project. #750 - 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::tracing
span 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_key
is added. It allows to calculate a partition key only by using a partitioner and values of a partition key, noPreparedStatement
object is needed. #757 - The
scale
parameter inLatencyAwarePolicy
, 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
Bug fixes:
- The
RoutingInfo
struct 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
Others:
- Non-public dependencies of the driver were updated. (#769, #755)
- The
clone.rs
example has been removed. It promoted bad practices; we recommend only using oneSession
object per application. #728 - Uses of
SimpleStrategy
has 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
ccm
tool, 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 compose
version 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:
commits | author |
---|---|
20 | Piotr Dulikowski |
15 | Wojciech Przytuła |
11 | Piotr Grabowski |
3 | Jan Ciolek |
2 | David Garcia |
2 | Gor Stepanyan |
1 | Lucas Kent |