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
LoadBalancingPolicy
would return aPlan
consisting ofNode
s;
now, together with aNode
it can optionally specify theShard
to 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_enum
dependency. 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-cql
definitions which weren’t intended for access from outside the driver. (#933)
New features / enhancements:
- Improved the
FromRow
derive 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
strum
andstrum_macros
dependencies. 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::rows
is going to be deprecated in the next release, once the new lazy deserialization framework is introduced. We thus recommend switching torows_typed
wherever possible. (#955)
CI / developer tool improvements:
- Removed unreachable
pub
s (#958) - Dealed with
chrono
deprecations (#951) - CI: run
cargo clean
before 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_args
clippy lint”, asrust-analyzer
now 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 |