Releases: scylladb/scylla-rust-driver
Release 1.3.1
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.3.1,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 4.414k downloads on crates!
- over 641 GitHub stars!
Changes
New features / enhancements:
- Added support to serialize
Bytesas CQLblob. This works in tandem with the already presentblob->Bytesdeserialization capability (#1397).
Bug fixes:
- Fixed plan exhaustion handling in SE and introduce SE unit tests. (#1401).
- Fixed panic on double formatting in traces (#1404).
- Made module-level documentation from
scylla_cql::deserializemodule appear in mirror module inscyllacrate (#1406).
Documentation:
- Renamed mentions of
ScyllawithScyllaDB, following the official naming (#1393). - Wrote missing docstrings for many items in the codebase (#1398, #1400).
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 |
|---|---|
| 49 | Wojciech Przytuła |
| 8 | Karol Baryła |
Release 1.3.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.3.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 4.189k downloads on crates!
- over 639 GitHub stars!
Changes
New features / enhancements:
DefaultPolicynow filters out disconnected nodes, which is a useful optimisation (#1364).- Improved
ExecutionError::EmptyPlanerror message (#1371). - Allowed serialization and deserialization of
Box<str>andArc<str>(#1382). - Exposed API to unset (serial) consistency on statements (#1385).
- Added request timeout setter and getter for Batches, as it had been accidentally omitted (#1391).
Bug fixes:
Internal API cleanups/refactors:
- Degenericised
run_requestand unified autohandling of specific responses. This simplifies the code and makes it more bug-resitant (#1375).
Documentation:
- Documented a test util method (#1363).
- The
enforce_coordinatorexample is extended to show how to inspect the coordinator of a request (#1346).
Others:
- Fixed doctests configuration with regard to crate features (#1370).
- Updated dependencies (#1381).
- Bumped
sphinx-scylladb-themefrom 1.8.6 to 1.8.7 (#1388). - Appeased clippy again (
clippy::uninlined_format_argslint) (#1389).
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 |
|---|---|
| 44 | Karol Baryła |
| 23 | Wojciech Przytuła |
| 1 | Mikołaj Uzarski |
| 1 | dependabot[bot] |
Release 1.2.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.2.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 3.877k downloads on crates!
- over 633 GitHub stars!
Changes
New features / enhancements:
- Added
flattenattribute toSerializeRowderive macro. The attribute is inspired and analogous to the one found inserde#1144 - Introduced CQL Vector type full support #1165.
- Added
nil()method forCqlTimeuuid#1314. - Added
MaybeUnset::from_option()convenience constructor to reduce boilerplate #1317. - Exposed coordinator that served the request #1287.
- Enabled enforcing a coordinator for the request #1326.
- Derived
Debugfor timestamp generator types #1341. - Introduced
CachingSessionBuilder#1345. - Preparation now is done on exactly one shard on each node (instead of all shards), which reduces unnecessary overhead #1320.
- Fetching schema version when awaiting for schema agreement is now done on one connection per node only (as opposed to all connnections), which reduces unnecessary overhead #1323.
PreparedStatementis materialized only where needed, avoiding unnecessary allocations #1329.- Exposed an option to allow skipping result metadata when executing prepared statements using
CachingSession#1340.
Bug fixes:
- Fixed a bug that the driver panicked if the shard returned by the
LoadBalancingPolicywas out of range for the chosen node #1325. - Fixed a bug that
Metrics::percentiles()would return the number of observations in the corresponding bucket instead of the mean value of the bucket #1327. - Nodes with all connections broken are now ignored during schema agreement. This fixes the bug that such nodes made schema agreement awaiting fail #1355.
Internal API cleanups/refactors:
LatencyAwarenessuses existingIterator's methods instead of hand-crafted logic #1330.- Renamed
PreparedIteratorConfigtoPreparedPagerConfig, because it was a remnant of the legacy naming #1335 - Removed
Node::is_down()and related code, as the event-based node status mechanism is error prone and was not used anyway #1358.
Documentation:
- Described
scylla-cqlAPI's considerations - versioning requirements, guarantees, etc. #1322. - Updated dependencies of the docs #1333.
- Fixed md redirections for multiversion support in the docs #1334.
- Moved
flattenattribute docs toSerializeRow, as it had been put in a wrong place #1144.
CI / developer tool improvements:
- Proxy now supports negotiated compression #1246.
- Added test for the UDT case when metadata is present but the value is missing #1315.
- Fixed warnings in serverless tests #1316.
- Reorganised integration tests into a clear tree-like structure (#1350, #1351).
- Clippy was appeased again, after new lints were introduced in Rust 1.87 #1357.
- Improved our use of Clippy: migrated from
allow()toexpect(), removed unnecessary lints and enabled of checking public API with Clippy #1359.
Others:
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 |
|---|---|
| 108 | Wojciech Przytuła |
| 20 | Mikołaj Uzarski |
| 19 | Karol Baryła |
| 8 | Andres Medina |
| 8 | smoczy123 |
| 4 | Andrés Medina |
| 2 | David Garcia |
| 2 | Vartan Babayan |
| 1 | Dmitry Kropachev |
Release 1.1.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.1.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 3.430k downloads on crates!
- over 623 GitHub stars!
Changes
New features / enhancements:
- Enabled configurable server-side timeout for metadata queries. As a result, users that tighten their general server-side timeouts will no longer suffer from metadata queries timing out (because now they have longer timeouts specified by default). #1171
- Added function to deserialize
CloudConfigfrom anyReader. #1183 - Relaxed
Sizedrequirement inSerializeRowimplementation forBox. The constraint was implicit and unnecessary. #1277 - Made coalescing delay configurable. Now, it's also possible to set the delay to any number of milliseconds, which may speed up throughput-bound use cases. #1297
- Made bind address for driver's local sockets configurable. #1300
- Made bind port range for driver's driver's local sockets configurable. #1303
Bug fixes:
- Added missing fields in
Session'sDebugimplementation. #1301 - Fixed nodes info to include zero-token nodes (they were missing from
ClusterState::get_nodes_info()). #1308 ⚠️ Altered default load balancing policy's logic so that datacenter failover is NOT inhibited by local Consistency or SerialConsistency. This inhibition was a behaviour that no other driver exhibited, and it caused unintuitive empty query plans. #1312
API cleanups / better types:
- Made entities around
Partitionerpubagain, as they showed to be required by, among others,cql-stress. The traits were sealed to prevent adding implementations by downstream crates. #1298
Internal API cleanups/refactors:
- Elided needless clone upon
Sessioncreation. #1306
Documentation:
- Renamed remaining occurrences of
QuerytoStatement(those that were accidentally omitted before 1.0.0). #1278 - Fixed error returned by
Session::await_schema_agreement(we had forgot to update docs when the change was done). #1283 - Fixed broken links in derive macro docs. #1292
- Updated maintenance procedures for after 1.0.0 was released. #1302
- Updated documentation theme to 1.8.6. #1305
- Added
--no-mergesoption togit shortlogused for count commits per author for each release. We decided that merge commits should not count as meaningful impact on the driver. #1311
CI / developer tool improvements:
- Reduced CI running time by various optimisations (caching, removing redundant steps, avoiding actual build in favour of
cargo check, etc.). #1274 - Sped up Cassandra cluster setup in CI. #1276
- Moved tests contained in
session_test.rs, which require running ScyllaDB cluster, from library (unit) tests to integration tests. This is another step on the path to make unit tests runnable without a set up cluster. (#1291) - clippy was appeased again #1309.
Others:
- Disabled tablets in tests involving materialized views, as the ScyllaDB version available at the time (
scylla-2025.1.0) does not support tablets + materialized views combination. #1304
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 |
|---|---|
| 22 | Karol Baryła |
| 18 | Mikołaj Uzarski |
| 18 | Wojciech Przytuła |
| 4 | Roman Hargrave |
| 1 | Collin Styles |
| 1 | Vartan Babayan |
| 1 | dependabot[bot] |
v1.0.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.0.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 3.162k downloads on crates!
- over 612 GitHub stars!
Stabilization
1.0 has a special meaning for Rust crates - it means that the crate is considered "API-stable" - however there is no specific definition of what it means to be "API-stable".
So what does it mean to us, and why did we release this version?
Up until now, we introduced breaking changes whenever we felt we could improve the API this way (sometimes we kept the old API for a bit, and provided a migration guide). This caused the vast majority of our releases to have to bump the major version number - we didn't reach minor version greater than "2" for a few years now. This is not a great situation for our users, because it means it is basically never possible to update the driver without adjusting their codebases.
At the same time we know that we can't (and don't want to) freeze the API forever - there are still many improvements we can make, and the databases (Scylla / Cassandra) are always changing, which sometimes requires breaking changes on our part (an example of this is Tablets feature in Scylla, which required us to change our load balancing APIs). This means we won't stay on 1.x forever.
We decided to stabilize the API by providing a guarantee regarding how long a breaking change won't occur, which will allows users to better allocate time for dealing with breakage. For the 1.0, we won't release 2.0 earlier than 9 months after 1.0 (but we may release it later). Until then we will release minor (1.x) versions. In 1.x versions we may of course introduce new APIs, and deprecate old ones, but there will be no breaking changes.
Two exceptions that may force us to release major versions quicker are:
- urgent security issues
- changes in Scylla / Cassandra that have to be supported by driver quickly and there is no way to implement them without a major version bump.
After releasing new major version (e.g. 2.0) we will continue to provide bugfixes (but no new features) for the previous major version (e.g. 1.0). The exact duration of such bugfix support will be provided after the new major version is released.
Additionally, 1.0 release signifies that we view the driver as production ready. It has been for a long time now, but the 0.x version number may have been suggesting otherwise to some people, and we don't want to send mixed signals.
Changes
New features / enhancements:
⚠️ [API-breaking] Support for Rustls as a TLS provider was added. With this change you can connect to Scylla with TLS without having additional system C libraries installed! (#1254)- Added Timestamp Generators. This is a user-customizable way of generating client-side timestamps for requests. (#1128)
⚠️ [API-breaking] Driver metrics performance was improved. Previously they usedMutexinternally, causing performance problems because of contention. NowAtomicHistogramis used to avoid this problem. Additionally, metrics are now guarded bymetricsfeature, so that the users who don't need them don't have to pay the performance cost and introduce additional dependency. (#1263)- Borrowed versions of CqlVarint and CqlDecimal were added. (#1148)
⚠️ [API-breaking] In metadata, MissingUserDefinedType is no longer part ofCqlType::UserDefinedType. Now, in case of this (and some other errors) the metadata fetch for given keyspace will be aborted (and warning printed), returning previous version of this keyspace if possible. (#1162)- Metadata fetching now verifies that partition key and clustering key indexes have no holes. Thanks to that the users now have guarantee that column names from
Table::partition_keyandTable::clustering_keyare present inTable::columns. If this is not the case, fetch is failed only for this keyspace, as above. (#1252) ⚠️ [API-breaking]Node::is_downwas made private, instead new methodNode::is_connectedwas introduced. The old method has very misleading semantics. The new one tells if there are currently any driver connections opened to given node. (#1196)⚠️ [API-breaking] Added partialVectorsupport. Driver can now correctly fetch metadata of tables with vector columns. Serializing / deserializing vector values will be added after 1.0. (#1020)Displaywas implemented forCqlValue. (#1257)⚠️ [API-breaking]randdependency was updated to 0.9.0. This is a breaking change, because a trait fromrandappears inReplicaSet::choose_filteredmethod. (#1255)- Made all internal queries to
system.localtable useWHERE key='local'which should be a minor performance improvement. (#1245) - Implemented
DebugforMaybeUnset. (#1199)
Bug fixes:
Debugimplementation onCachingSessionwas not usable due to unsatisfiable bounds. (#1161)⚠️ [API-breaking] Our derive macros were not fully hygienic. This was discovered when migrating the hygiene test to new ser/deser frameworks. Issue was fixed, test was migrated and extended to cover more scenarios. Fixing hygiene required moving some modules inscylla-cql, so the change is breaking - but it should not affect users. (#1176)
API cleanups / better types:
⚠️ [API-breaking] Most of the driver module structure was reworked. Before most of the files were put in the non-descriptive "transport" module. Now our top-level modules are much more clear:authentication,client,cluster,network,observability,policies,response,routing,statement,utils. Some structs and method were also renamed as part of this effort. Unfortunately, this is a big change that will require users of our driver to update most of theirusestatements. (#1163, #1187)⚠️ [API-breaking]CqlTypewas removed, andColumnTypeis used in its place. To make this possible,ColumnTypewas heavily modified. (#1166)⚠️ [API-breaking] Errors refactor, started a few versions ago, was finished. Credits to @muzarski for this incredible work. (#1204, #1200, #1191, #1194, #1193, #1201, #1192, #1185, #1180, #1170, #1181, #1160, #1159, #1157, #1168)⚠️ [API-breaking] Old serialization and deserialization frameworks were fully removed, after being deprecated in previous version of the driver. (#1184)⚠️ [API-breaking] After legacy APIs were removed it became clear that module structure ofscylla-cqlhas a lot of problems. Many of them were addressed, which of course is a very breaking change. (#1198)⚠️ [API-breaking] APIs related to TLS were refactored when adding support for Rustls. This will enable us to add further providers in the future without breaking backwards compatibility. (#1254)⚠️ [API-breaking]Querywas renamed toStatement. (#1250)⚠️ [API-breaking] RemovedSerializedValuesfrom public API ofscyllacrate. Functions using it were either changed to using&dyn SerializeRowor deemed unnecessary and removed from the public API. Error types ofClusterStatetoken calculation APIs were changed as part of this. (#1252)ColumnSpecViewandTableSpecViewwere removed.ColumnSpecsreceived a second lifetime.PreparedStatement::get_variable_col_specsandPreparedStatement::get_result_set_col_specsnow returnColumnSpecsto make it consistent withQueryRowsResultandQueryPager. (#1249)⚠️ [API-breaking] Low-level partition APIs were made private. `Prepar...
v0.15.1
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.15.1,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 2.692k downloads on crates!
- over 590 GitHub stars!
Changes by category:
New features / enhancements:
- Migrated tablets to the new deserialization framework (#1120).
- Added
automatically_derivedattribute to impls auto-generated by derive macros (#1145). - Made fields of
ConnectionSetupRequestErrorpublic (#1131).
Bug fixes:
- Allowed serialization of columns/fields that are not valid Rust identifiers (#1137).
- Fixed bug that occured when preparing batch statements targetting multiple tables (#1135).
- Fixed bug that when there were fewer batch statements than batch values provided,
session.batch()would silently drop extra values (#1142).
API cleanups / better types:
- Deprecated remnants of the legacy framework and items belonging to the legacy serialization framework (#1141).
- Removed uses of the legacy
SerializedValuesError(#1149).
Documentation:
- Updated the docs about time types to reflect the new name of the feature flag (
chrono->chrono-04) (#1123, #1110).
CI / developer tool improvements:
- Moved most of tests that require a running cluster to integration tests (#1102).
- Attempted to combat "group 0 concurrent modification" error in CI by sending DDL changes always to the same node (#1127).
- clippy was appeased again (#1136).
Others:
- Implemented
QueryRowsResult::into_innerbehindcpp_rust_unstablecfg for use in cpp-rust-driver (#1133). - Removed unnecessary clone in
PoolRefiller::use_keyspace(#1143).
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!
v0.15.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.15.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 2.516k downloads on crates!
- over 583 GitHub stars!
Changes
Beginning with this release, instead of putting all API-breaking changes into one group, now they are in the proper categories, but labeled as
Main changes:
New deserialization API
The main change in this release is the deserialization API refactor. Its primary goal was to reduce overhead caused by all rows being eagerly deserialized to type-erased CqlValue type, only then being converted to end user types.
Old traits and structs (FromCqlVal, FromRow, QueryResult - renamed to LegacyQueryResult, RowIterator - renamed to LegacyRowIterator, TypedRowIterator - renamed to LegacyTypedRowIterator) are replaced by new ones (DeserializeValue, DeserializeRow, new QueryResult, QueryPager, TypedRowStream). There are wrappers and helper implementations provided, designed to aid in gradually migrating to new API - see the migration guide in the book for more information. Old traits and structs will be removed in one of future versions.
New serialization API has a benefit of increased efficiency - now, rows are deserialized straight to the end user type, without any copying and allocations on the way.
Another feature is the ability to deserialize rows to borrowed types (e.g. &str or &[u8]).
And the result metadata is now deserialized in the borrowed form, saving even more allocations.
The refactor included:
⚠️ [API-breaking] ParametrizedDeserialize{Value,Row}with two lifetimes:'frameand'metadataseparately (#1101).⚠️ [API-breaking] The deserialization refactor was finished (#1088, #1107, #1109, #1093, #1057, #1120, #1118, #1122, #1121).⚠️ [API-breaking] Unified macro attributes' syntax and semantics between serialization and deserialization derive macros (#1119).
Other changes by category:
New features / enhancements:
⚠️ [API-breaking] MadeResultMetadatalifetime-generic, which paved a path to deserializing metadata in a borrowed way as an optimisation to save allocations (#1082).- Exported serialization migration macros that accidentally hadn't been exported before (#1089).
- Exposed public getters to type-erased errors (#1087).
- Trace message is now issued upon successful keepalive (#1092).
- Added
SerializeRowimpl forBox<T: SerializeRow>(#1105). - Exposed public getters for execution profile configuration (#1104).
- Allowed public access to the profile associated with an execution profile handle (#1112).
Bug fixes:
⚠️ [API-breaking] Fixed driver's logic that bases on error variants returned from query execution (#1075).- Fixed possible panic in speculative execution (#1086)
⚠️ [API-breaking] Disallowed deserializing Counter type to plaini64for type safety (#1106).- Fixed logic about ignoring particular error kinds if speculative execution failed (#1124).
API cleanups / better types:
⚠️ [API-breaking] Some of our error types were restructured to be more strongly typed (instead of just containing a string) and better reflect the conditions that they appear in. This work will be continued in 0.16. (#1067, #1074, #1054, #1080, #1080, #1117).- Removed wildcard re-exports of the serialization framework's entities (#1090).
⚠️ [API-breaking] MadeRetryPolicystored behindArcinstead ofBox(#1103).
Internal API cleanups/refactors:
- Removed paging state parameter from unpaged raw
Connection's API (#1084). ⚠️ [API-breaking] Fixed unnameable types in our codebase (by making them exposed, unexposing them or deleting them at all) and enabled theunnameable_typesclippy lint to prevent having such situation in the future (#1094).- Tiny optimizations and code refactors (#1108).
Documentation:
CI / developer tool improvements:
- clippy was appeased again (#1072, #1077, #1095).
- Pinned Rust version in
book.ymlCI workflow (#1096).
Others:
- Rewritten RELEASE.md, so that it now contains up-to-date guide about maintaining and releasing the driver (#1076).
- Bumped MSRV to 1.70 (#1098).
- Added an example showing Counter UPDATE (#1100).
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 |
|---|---|
| 154 | Mikołaj Uzarski |
| 89 | Wojciech Przytuła |
| 45 | Karol Baryła |
| 26 | Piotr Dulikowski |
| 3 | David Garcia |
| 1 | Daniel Boll |
| 1 | Alex Pozhylenkov |
v0.14.0
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.14.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 2.103k downloads on crates!
- over 556 GitHub stars!
Changes
API cleanups / breaking changes:
- Our session & paging API was revamped so that it is more intuitive and robust. Now the type of the query (paged / unpaged) is tied to the method used to execute it (
execute_unpaged/execute_single_page/execute_iter) rather than the page size associated with the statement object. Other changes include (#1061):- Introduced strongly typed paging state instead of using
Bytes. - Paging state is explicitly returned from
execute_single_pageinstead of being a field inQueryResult. - Made
page_sizeon the statements mandatory and providing the default value. - Updated our docs and examples to point users towards paged queries and explaining the issues with unpaged SELECTs. (#1069, #1068)
- Introduced strongly typed paging state instead of using
- Trait
SerializeCqlwas renamed toSerializeValuebecause old name turned out to be confusing for users. (#1000) - Features
chrono,timeandsecretwere renamed tochrono-04,time-03andsecrecy-08to allow us to support new major versions of those libraries in the future. (#939) - Some of our error types were restructured to be more strongly typed (instead of just containing a string) and better reflect the conditions that they appear in. This work will be continued in 0.15. (#1017, #1026)
QueryResult.col_specswas changed from being a field to a method in order to allow sharing it withPreparedStatement. (#1065)- Moved
ResultMetadata.paging_statefield toRows.paging_state_response. This is because paging state is something that changes on each paged request and should not be cached byPreparedStatement. (#1065) - Some parts of our upcoming deserialization refactor were merged, resulting in very minor breaking changes in our error types. The rest of deserialization refactor is planned for 0.15. (#970, #1004, #1024, #1065)
New features / enhancements:
- Values that driver sends to server to identify itself in
STARTUPmessage (DRIVER_NAME,DRIVER_VERSION) can now be configured using newSelfIdentityAPI inSessionBuilder. (#1039) - Replaced some
.unwrap()s with.expect()s in the code generated by our derive macros. This is done to avoid angeringunwrap_usedclippy lint and to provide better error messages if those panics are ever triggered. (#1055)
#1019
Documentation:
- Documentation about using timeuuid type was improved. (#980)
- Improved documentation about
PreparedStatement. (#986) - Updated Scylla Sphinx theme to version 1.7. (#994)
- Added support for building documentation on Mac. (#927)
CI / developer tool improvements:
- #1011 fixed some issue with tests and CI:
- CI now prints versions of used Rust tools so we don't have to wonder what version is running on Github Actions runners again.
- Disabled tablets in tests that use LWT because Scylla doesn't support it yet, and other minor tablet-related changes.
- Restricted Tokio version because of regression when
[tokio::test]is used with[ntest::timeout]
- #1019 removed aforementioned Tokio version bounds after regression was fixed there.
- Clippy lints that were previously skipped in two places are enabled again because Darling crate that was triggering them was fixed. (#1036)
Others:
- Updated maintainers list in
CONTRIBUTING.md. (#997)
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 |
|---|---|
| 163 | Wojciech Przytuła |
| 55 | Mikołaj Uzarski |
| 17 | Karol Baryła |
| 3 | David Garcia |
| 2 | Lucas Kent |
| 2 | Piotr Dulikowski |
| 1 | Daniel Reis |
| 1 | Dmitry Kropachev |
| 1 | Kailokk |
v0.13.2
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.13.2,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 2,080k downloads on crates!
- over 554 GitHub stars!
Changes
Bug fixes:
- Made driver issue a warning and continue instead of failing if an invalid peer is encountered in system tables (#1045)
- Fixed bug that paged queries would be broken when the recently introduced
use_cached_metadataflag was set on aPreparedStatement(#1063)
Documentation:
- Documented
DefaultPolicy(Load Balancing) with a lot of comments intended for developers to understand its logic easier (#1062)
CI / developer tool improvements:
- Appeased Clippy again (#1046)
- Turned tablets off for Counter tests, as tablets do not support Counters yet (#1060)
- Added scylla_cloud_tests to
cfgallowlist (after such allowlist was made mandatory) (#1049) - Fixed semver-checks failure after its unexpected breaking update (#1050, #1051)
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!
v0.13.1
The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.13.1,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!
Some interesting statistics:
- over 1,905k downloads on crates!
- over 545 GitHub stars!
Changes
Bug fixes:
- Made
loglogger work with the driver again (#992) - Fixed bug that Batches would be always sent as LOGGED if they contain any unprepared statement (
Query) (#1038) - Fixed two efficiency-related bugs in default load balancing policy (#1037)
Documentation:
- Documented logging with
tracingandloglibraries and provided an example (#992)
CI / developer tool improvements:
- Silenced mock structs unused warning (#996)
- Appeased Clippy again (#1002 and #1013)
- Turned tablets off for LWT tests, as tablets do not support LWT yet (d20aed54)
- Made LWT tests ignored when testing with tablets, as tablets do not support LWT yet (2bd45560)
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!