# \[RELEASE\] ScyllaDB Rust Driver 0.12.0

**URL:** <https://forum.scylladb.com/t/release-scylladb-rust-driver-0-12-0/1267>\
**Category:** Release Notes\
**Tags:** release, drivers, rust-driver, rust\
**Created:** [February 2, 2024, 4:56pm UTC](https://forum.scylladb.com/t/release-scylladb-rust-driver-0-12-0/1267 "2024-02-02T16:56:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lorak](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/lorak/32/374_2.png) [@Lorak](https://forum.scylladb.com/u/Lorak)\
**Post date:** [February 2, 2024, 4:56pm UTC](https://forum.scylladb.com/t/release-scylladb-rust-driver-0-12-0/1267/1 "2024-02-02T16:56:56Z")

</div>

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 of `Uuid`. The purpose of new type is mostly providing correct semantics (matching the database) with regard to sorting / comparing / hashing ([#894](https://github.com/scylladb/scylla-rust-driver/pull/894))
- Public usages of `num_bigint::BigInt` are now hidden behind feature flag. Support for `num_bigint 0.4` is added. You can enable support for chosen version using `num-bigint-03` / `num-bigint-04` feature flags ([#902](https://github.com/scylladb/scylla-rust-driver/pull/902))
- `bigdecimal` dependency version is bumped to 0.4. Similarly to `BigInt`, usages of `bigdecimal` are now behind feature-flag `bigdecimal-04` ([#922](https://github.com/scylladb/scylla-rust-driver/pull/922))

**New features / enhancements:**

- `SerializeRow` and `SerializeCql` derive macros now support `skip` field attribute to skip some fields during serialization ([#903](https://github.com/scylladb/scylla-rust-driver/pull/903))

**Documentation:**

- Documentation for `SerializeRow` / `SerializeCql` derive macros is now rendered only in `scylla` crate. Previously it was only visible in `scylla-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](https://github.com/scylladb/scylla-rust-driver/pull/907))
- Examples now use different table and keyspace names so that running multiple of them on the same cluster works correctly ([#846](https://github.com/scylladb/scylla-rust-driver/pull/846))
- Added section discouraging use of multiple / short-lived `Session` objects and recommendations about sharing `Session` objects between threads. You can find this section in `Connecting to the cluster` page of book ([#914](https://github.com/scylladb/scylla-rust-driver/pull/914))

**Bug fixes:**

- Some `time`-related were put behind `chrono` feature flag instead of `time` feature flag ([#898](https://github.com/scylladb/scylla-rust-driver/pull/898))
- `chrono` introduced an arguably breaking change - changing values of `NaiveDate::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 of`chrono`([#919](https://github.com/scylladb/scylla-rust-driver/pull/919))

**CI / developer tool improvements:**

- Purpose of `Cargo.lock.msrv` file and ways to update this file when min\_rust job are now documented in `CONTRIBUTING.md` ([#913](https://github.com/scylladb/scylla-rust-driver/pull/913))
- Building documentation using Scylla’s Sphinx tooling now uses myst parser instead of deprecated recommonmark. One improvement is markdown table support ([#874](https://github.com/scylladb/scylla-rust-driver/pull/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 with `mdbook` we had a wrapper script that stripped those sections before calling `mdbook`. Now this script is replaced by preprocessor script called automatically by `mdbook` - so just calling `mdbook` commands “just works” again now ([#910](https://github.com/scylladb/scylla-rust-driver/pull/910)).
- New Markdown parser for Sphinx parser, and our preprocessor mentioned in previous point, now support warning admonition with the following syntax ([#914](https://github.com/scylladb/scylla-rust-driver/pull/914/files#diff-3f2ce25805a416f9062b805f2ea2ce73831c623dd0c6cfa4d7d585ddb31a8e9e)):

```auto
:::{warning}
text
:::

```

- Fixed new clippy warnings introduced in Rust 1.75 ([#900](https://github.com/scylladb/scylla-rust-driver/pull/900))
- Introduced [cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks) tool to our CI to decrease the chance of releasing a breaking change after we are at 1.0 ([#909](https://github.com/scylladb/scylla-rust-driver/pull/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](https://github.com/scylladb/scylla-rust-driver)  
Contributions are most welcome!

The official [crates.io](http://crates.io) registry entry is here:

- [https://crates.io/crates/scylla](https://crates.io/crates/scylla)

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 |
