The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.12.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 1,156k downloads on crates!
- over 500 GitHub stars; We passed 500 stars!
Changes
API cleanups / breaking changes:
- Introduced
CqlTimeuuid
type.Timeuuid
CQL type now corresponds to the new type instead ofUuid
. The purpose of new type is mostly providing correct semantics (matching the database) with regard to sorting / comparing / hashing (#894) - Public usages of
num_bigint::BigInt
are now hidden behind feature flag. Support fornum_bigint 0.4
is added. You can enable support for chosen version usingnum-bigint-03
/num-bigint-04
feature flags (#902) bigdecimal
dependency version is bumped to 0.4. Similarly toBigInt
, usages ofbigdecimal
are now behind feature-flagbigdecimal-04
(#922)
New features / enhancements:
SerializeRow
andSerializeCql
derive macros now supportskip
field attribute to skip some fields during serialization (#903)
Documentation:
- Documentation for
SerializeRow
/SerializeCql
derive macros is now rendered only inscylla
crate. Previously it was only visible inscylla-cql
due to an oversight, which made it hard to discover for users. It is not possible to render it in both crates without duplicating it in code because of rustdoc limitation (#907) - Examples now use different table and keyspace names so that running multiple of them on the same cluster works correctly (#846)
- Added section discouraging use of multiple / short-lived
Session
objects and recommendations about sharingSession
objects between threads. You can find this section inConnecting to the cluster
page of book (#914)
Bug fixes:
- Some
time
-related were put behindchrono
feature flag instead oftime
feature flag (#898) chrono
introduced an arguably breaking change - changing values ofNaiveDate::MIN/MAX
. We changed our tests to nor rely on those values. If you used those values as markers / placeholders in database, you may not be able to deserialize them with new version ofchrono
(#919)
CI / developer tool improvements:
- Purpose of
Cargo.lock.msrv
file and ways to update this file when min_rust job are now documented inCONTRIBUTING.md
(#913) - Building documentation using Scylla’s Sphinx tooling now uses myst parser instead of deprecated recommonmark. One improvement is markdown table support (#874)
- Our documentation must work with Scylla’s Sphinx tooling, so it contains ToC (Table of Contents) sections that are not supported by
mdbook
. In order to be able to build it withmdbook
we had a wrapper script that stripped those sections before callingmdbook
. Now this script is replaced by preprocessor script called automatically bymdbook
- so just callingmdbook
commands “just works” again now (#910). - New Markdown parser for Sphinx parser, and our preprocessor mentioned in previous point, now support warning admonition with the following syntax (#914):
:::{warning}
text
:::
- Fixed new clippy warnings introduced in Rust 1.75 (#900)
- Introduced cargo-semver-checks tool to our CI to decrease the chance of releasing a breaking change after we are at 1.0 (#909)
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 |
---|---|
31 | Mikołaj Uzarski |
31 | Karol Baryła |
13 | Piotr Dulikowski |
2 | Oliver Bøving |
1 | David Garcia |
1 | Nick Sippl-Swezey |