The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.13.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 1,615k downloads on crates!
- over 520 GitHub stars!
Changes
API cleanups / breaking changes:
- Implemented support for Tablets, a new major architectural feature of Scylla that will be a part of upcoming 6.0 release. This support is required for token (and shard) awareness to work with Tablet-based tables. You can read more about Tablets in a blogpost by Tomasz Grabiec or watch a presentation by Avi Kivity (#937)
- Enabled shard-selecting load balancing. Before, a
LoadBalancingPolicywould return aPlanconsisting ofNodes;
now, together with aNodeit can optionally specify theShardto contact as well. This is crucial for proper Tablets support (see above). Main PR #944, with follow up #969 Token: added constructor and normalization to increase type-safety (#948)- Removed another unstable dependency,
histogram::Histogram, from public API (#935) - Implemented CQL protocol-level optimisation: prepared statement result metadata can be now used to decode rows. This saves network bandwidth if that option is enabled, because result metadata need not be sent with each DB query result. (#925)
- Removed
num_enumdependency. It was unstable, and we managed to do without it, so it no longer appears in the public API. (#931) - Decreased pub visibility of
scylla-cqldefinitions which weren’t intended for access from outside the driver. (#933)
New features / enhancements:
- Improved the
FromRowderive macro to suppport structs with unnamed fields. Before, only structs with named fields were supported. (#985) - testing: Increased timeout for fetching tracing info - Cassandra was so slow in tests that our CI used to fail sometimes… (#966)
- Removed
strumandstrum_macrosdependencies. They were unstable, and we managed to do without it. (#934)
Documentation:
- Got rid of (most) uses of
QueryResult::rows. The preferred method is the more type safeQueryResult::rows_typed. Moreover,QueryResult::rowsis going to be deprecated in the next release, once the new lazy deserialization framework is introduced. We thus recommend switching torows_typedwherever possible. (#955)
CI / developer tool improvements:
- Removed unreachable
pubs (#958) - Dealed with
chronodeprecations (#951) - CI: run
cargo cleanbefore tests (#929) - CI: small fixes in semver checks (#942)
- CI: semver_checks now edits its comment instead of posting new one, so that the PR wall is less cluttered. (#952)
- CI: Tracing output is now shown for a test iff the test failed. This is a major aid in debugging in CI. (#959)
- Reverted “CI/Makefile: disable
uninlined_format_argsclippy lint”, asrust-analyzernow properly supports semantic analysis of such format args. (#945) - Appeased Clippy again (#971)
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 |
|---|---|
| 40 | Karol Baryła |
| 24 | Mikołaj Uzarski |
| 10 | Wojciech Przytuła |
| 1 | Piotr Dulikowski |
| 1 | Piotr Grabowski |