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
CqlTimeuuidtype.TimeuuidCQL 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::BigIntare now hidden behind feature flag. Support fornum_bigint 0.4is added. You can enable support for chosen version usingnum-bigint-03/num-bigint-04feature flags (#902) bigdecimaldependency version is bumped to 0.4. Similarly toBigInt, usages ofbigdecimalare now behind feature-flagbigdecimal-04(#922)
New features / enhancements:
SerializeRowandSerializeCqlderive macros now supportskipfield attribute to skip some fields during serialization (#903)
Documentation:
- Documentation for
SerializeRow/SerializeCqlderive macros is now rendered only inscyllacrate. Previously it was only visible inscylla-cqldue 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
Sessionobjects and recommendations about sharingSessionobjects between threads. You can find this section inConnecting to the clusterpage of book (#914)
Bug fixes:
- Some
time-related were put behindchronofeature flag instead oftimefeature flag (#898) chronointroduced 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.msrvfile 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 withmdbookwe had a wrapper script that stripped those sections before callingmdbook. Now this script is replaced by preprocessor script called automatically bymdbook- so just callingmdbookcommands “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 |