scylla-cql
CQL data types and primitives, for interacting with ScyllaDB.
1.8.0
8.3M downloads/mo
#3453 most downloaded on crates.io
scylladb/scylla-rust-driver
What this package is like to depend on
Last release 10 days ago
13 Aug 2026
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 8 of 27 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
28 releases · first in 2022
5 releases in the last 12 months
see the full history below
Release timeline
28 releases · Aug 2022 to Aug 2026Releases
latest 28-
1.8.013 Aug 2026Release notes
Open source →The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.8.0,
an asynchronous CQL driver for Rust, optimized for ScyllaDB, but also compatible with Apache Cassandra!Some interesting statistics:
- over 8.1M downloads on crates.io!
- over 682 GitHub stars!
Changes
New features / enhancements:
QueryPager(used bySession::execute_iterandSession::query_iter) was optimized for single-page queries. Now it only starts atokio::taskif there is more than one page (#1739).QueryPagernow treats each page as a fully separate request: new execution plan is produced for each page, downgraded consistency is reset. Driver still tries to stick to the same coordinator for subsequent pages: the first element of the plan for the next page will be the coordinator of the previous page (#1739).QueryPager(used bySession::execute_iterandSession::query_iter) now supports Speculative Execution (#1783).- Internal metadata fetching procedures were greatly improved, dropping many unnecessary false dependencies between internal driver tasks, which should improve the delay of some of them (#1792, #1823, #1835).
- Metadata fetching now supports client-side timeouts (#1837).
- Driver will now temporarily stop using shard-aware port on shard mismatch (indicating NAT usage) (#1804).
- On STATUS_CHANGE DOWN event a keepalive is now immediately requested on connection to the affected node (#1806).
- Driver now correctly resolves DNS names to multiple IP addresses, both v4 and v6 (#1805).
Client Routesfeature now choose an IP randomly for each connection if DNS resolves to multiple IPs (#1805).- Extended
CqlTimestampwith more functionalities: trait derives, useful constants and operations againststd::time::Duration(#1776, #1834). - A new crate
scylla-ccm-bridgeis extracted for reuse in different projects (#1810). - Driver can now be configured to fetch only the minimal subset of metadata that doesn't break token-awareness (#1815).
Keyspacestruct now has a newtabletsfield, indicating if the keyspace is vnode- or tablet-based. This info fetched from system tables and used by the driver for more precise routing (#1720).- Added new metrics accessors that properly distinguish between unpaged, manually paged and automatically paged requests (#1775).
- Bugs in our examples are fixed, some examples are restructured. Examples now run in CI to keep them working (#1813).
RetrySessionis now created lazily when needed, to save an allocation on the hot path (#1833).
Bug fixes:
- Fixed a deadlock happening when driver was flooded with CQL events during metadata refresh (#1835).
- Tablet-awareness now correctly works with materialized views (#1778).
- Out-of-range shard ids in ShardingInfo are now correctly rejected (#1712).
- Shard set in Coordinator is now set to the real shard from Connection, not the shard requested by LBP (#1765).
- Fix bug in
Metrics::get_latency_percentile_msthat caused it to return completely wrong value (#1749). - Scylla with
enable_shard_aware_drivers: falseis now recognized as Scylla, not Cassandra (#1719). Client Routes: non-sticky routes are now correctly overwritten on updates (#1822).RequestInfopassed toRetrySessionnow gets current (so potentially downgraded) consistency, instead of the original consistency (#1758, #1770).- Fixed trace span not being finalized when RetrySession issues a
IgnoreWriteErrordecision (#1761).
Internal refactors:
- Internal request execution paths were deduplicated into a common module. Now all variants (unpaged, QueryPager, ControlConnection) use the same logic to handle retries, tracing, speculative execution, query history, and other mechanism (#1774, #1783, #1786, #1789, #1830, #1751).
- Reduced
cfgsprawl frommetricsfeature across the codebase (#1750). - Return client routes in Metadata instead of applying them in ControlConnection (#1820).
- Fixed issues pointed out by Clippy after its 1.97 release (#1779).
- Removed unused dependencies from
scylla-proxy(#1744). CqlTimeuuid::lsb_signedis now properly documented.Timeuuidordering test is hardened (#1766).- Various small fixes related to unification of execution paths (#1770).
Documentation:
- Updated dependencies of documentation (#1724).
- Bumped sphinx-scylladb-theme from 1.9.2 to 1.9.3 (#1791).
CI / tests / developer tool improvements:
- Added Valgrind-based benchmarks, running in CI to catch regressions (#1780).
- Renovate was configured to keep our dependencies up to date (#1753, #1812, #1746, #1740).
- Updated Scylla version used in tests to v2026.2.3 (#1826).
- Speed up vector type integration test by running subtests concurrently (#1759).
- Speed up vector type integration test by using a single table for all subtests (#1760).
- Unified handling of Scylla versions between tests categories (#1821).
- Vastly expanded and improved our Tablets tests (#1777).
- Cleanly handle startup failures in
Client Routestest utils (#1795). - Connection: changed
#[expect(deprecated)]to#[allow(deprecated)]onset_lingerbecause older Tokio verions don't mark is as deprecated (#1787). - Remove misleading comment in test (#1808).
Dependencies:
- Updated scylladb/github-automation action multiple times (#1743, #1747, #1752, #1754, #1755, #1757, #1768, #1773, #1797, #1800, #1807).
- Updated actions-rust-lang/setup-rust-toolchain action to v1.16.1 (#1825).
- Updated taiki-e/install-action action to v2.77.0 (#1798, #1802, #1803).
- Updated Rust crate criterion to 0.8 (#1722).
- Updated Rust crate darling to 0.24.0 (#1725, #1811).
- Updated Rust crate hashbrown to 0.17 (#1726).
- Updated Rust crate itertools to 0.15.0 (#1727).
- Updated Rust crate socket2 to 0.6.0 (#1735).
- Updated Rust crate syn to v3 (#1796, #1811, #1827).
- Updated Rust crate lz4_flex to 0.14.0 (#1728, #1785).
- Updated histogram to 1.0 (#1748).
Others:
- Added public methods required for python-rs driver (#1771, #1790).
- Conditionally published APIs for C# RS Driver (#1717).
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 116 Karol Baryła 112 Wojciech Przytuła 25 renovate[bot] 19 Patrycja Ziemkiewicz 2 Dawid Pawlik 2 Floze 2 phalat 2 Paulina Czajkowska 1 Anna Stuchlik 1 Photon101 1 Vismay 1 dependabot[bot] -
1.7.011 Jun 2026Release notes
Open source →The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.7.0,
an asynchronous CQL driver for Rust, optimized for ScyllaDB, but also compatible with Apache Cassandra!Some interesting statistics:
- over 7.2M downloads on crates.io!
- over 674 GitHub stars!
Changes
New features / enhancements:
- Preferred DC and rack can now be configured on
Sessiondirectly (#1658). - Introduced refill trigger in connection pool. Now a refill is triggered automatically upon two kinds of events: 1) client routes change 2) node status changes to UP, which decreases reconnection delay in those situations (#1630).
- Added method to
ClusterStateto get node by host id (#1646). - Exposed cluster name in
ClusterState(#1666). - Re-exported in
scyllacrateVectorIteratorand other Vector-related types (#1650). get_tracing_infonow waits for the request duration to be available (#1652).- Implemented / fixed / optimized optional methods (
size_hint) and traits (ExactSizeIterator) for our iterators (#1664). - Added Vec accessor support for
CqlValue::Vector(#1705). - Made TCP options use dedicated tokio helpers (#1618).
Bug fixes:
- Statements executed with
SERIAL/LOCAL_SERIALconsistency are now treated as LWT for routing, reducing Paxos contention (#1647). - Fixed panic in
metadata/readeroccurring on runtime shutdown (#1644). - Node attribute changes are now handled correctly w.r.t.
HostFilter(#1654). - Fixed shard-awareness port iteration logic when
REUSEADDRis used (#1622). - Made driver reject lz4 frame bodies shorter than the 4-byte size prefix (#1642).
- Fixed
read_inetport conversion (#1649). - Fixed panic in connection pool on out-of-range shard (#1656).
- Fixed shard aware port range crash (and other problems) (#1657).
- Require
first_tablet < last_tabletwhen parsing tablet hint from the server (#1660). - Fixed tracing diagnostics to reference
system_traces.sessions(#1698). - Fixed
RequiredHostAbsenterror, which always displayed host id0(#1700). - Hex prefix validation error is now propagated in custom type parser (#1701).
- Zero prepared-statement cache capacity is now rejected to prevent infinite looping (#1702).
- Exposed inner error in TracingError row-conversion variants (#1703).
- Zero latency scale in the default load-balancing policy is now rejected (#1704).
- Fixed (again) ser/deser of tuples that are shorter than the metadata says (#1708).
- Zero keepalive interval is now rejected during session creation (#1711).
Internal refactors:
- Extracted part of
scylla-cqlcrate that is exposed inscyllacrate's public API into a newscylla-cql-corecrate, which is now a dependency ofscylla-cql. This allows us to make breaking changes inscylla-cqlfrom now on, without affecting thescyllacrate's public API. (#1604, #1609, #1593). - Pinned
scyllacrate's dependencies (scylla-cql-core,scylla-cql) to specific versions, to prevent resolving incompatible dependencies. Now users will no longer suffer from incompability ofscyllawithscylla-cql[-core](#1715).
Documentation:
- Described interaction of statement idempotence and
DefaultRetryPolicydecision matrix (#1633). - Updated actions (#1635).
- Clarified
connection_addresssemantics inCoordinator(#1651). - Fixed broken links (#1663).
CI / developer tool improvements:
- Improved client routes testing (#1615, #1631).
- Decreased number of connections in
many_connectionstest to prevent file descriptor exhaustion (#1621). - Fixed client-routes tests flakiness upon node decommission (#1653).
- Fixed swapped arguments in result metadata serialize test helper (#1699).
- Fixed flaky
test_schema_await_required_host_absent(#1709).
Others:
- Updated used dependencies (#1617).
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 155 Karol Baryła 26 Wojciech Przytuła 5 Copilot 4 Stanisław Czech 2 copilot-swe-agent[bot] 1 David Garcia 1 Lukasz Sojka 1 Matt Van Horn 1 Photon101 1 Sai Asish Y 1 conorbros -
1.6.022 Apr 2026Release notes
Open source →The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.6.0,
an asynchronous CQL driver for Rust, optimized for ScyllaDB, but also compatible with Apache Cassandra!Some interesting statistics:
- over 6.5M downloads on crates!
- over 666 GitHub stars!
Changes
New features / enhancements:
- Introduced "Client Routes Routing" (with some preceding internal and testing preparations in #1590), which is a feature allowing the use of driver in deployments with mechanisms like AWS PrivateLink (#1582).
- Exposed more configuration options for sockets opened by the driver (#1577).
durable_writesfield was added toKeyspacestruct (#1578).- ⚠️ Our MSRV was bumped to 1.88 (#1602).
- ⚠️ Removed address translation workaround, because the root cause was fixed in Scylla a long time ago (#1606).
Warning: Removal of the above workaround may break some misconfigured setups.
Driver usesrpc_addresscolumn fromsystem.peers/system.localtables to get addresses it uses to connect to nodes. This column is populated usingbroadcast-rpc-addressconfiguration (orrpc-addressif the former is not present).
If addresses retrieved from those tables are not reachable by the driver, it won't be able to establish a session.
The workaround that was removed made driver ignore the address fromsystem.local, and instead use the address that we used to open the control connection (which initially happens to be one of the provided contact points). In the misconfigured setup it would allow the driver to connect to only a single node, resulting is severely deficient session. Such setup won't work at all now.Bug fixes:
Session::query_iter/Session::execute_iternow correctly refresh driver metadata (if enabled in session config) after a DDL statement is executed using those APIs (#1579).- Fixed a bug in implementation of result metadata ID extension. This bug prevented reading the results of some special statements (like
LIST ROLES of) if they were executed as prepared statements (#1581).
Documentation:
- Fixed Github links displayed on crates.io by making them absolute instead of relative (#1572).
- Updated Scylla theme to 1.9 (#1584) and then to 1.9.2 (#1608).
- Fixed improper
total_connectionsmetric docstring (#1586). - Bumped sphinx-multiversion-scylla to 0.3.8 (#1605).
CI / developer tool improvements:
- Add various Scylla flags to our docker-compose.yml to make tests run faster (#1574).
- Clippy fixes (#1576).
- Book tests are now executed along other doctests, instead of using
mdbook test(#1591). - Our MSRV check CI pipeline no longer checks
examples/folder (#1594). - Introduced a tool to print sizes of our error types (#1597).
- Recently Scylla stopped creating a default superuser
cassandra:cassandra, which broke our tests. Fixed that by using flags to explicitly create the superuser (#1601). - Small fix for a test incorrectly handling proxy finish result (#1603).
- Added
wait_for_connectionandinject_event_to_ccmethods to our testing proxy (#1610). - Explicitly disable tablets for our one SingleStrategy tests, because Scylla started to throw errors on SimpleStrategy keyspace creation with tablets (#1611).
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 61 Wojciech Przytuła 13 Karol Baryła 4 Hanna Marszałek 3 Dmitry Kropachev 3 Jakub Janowski 2 copilot-swe-agent[bot] 2 dependabot[bot] 1 Dani Tweig 1 David Garcia 1 Dawid Pawlik 1 Copilot -
1.5.005 Feb 2026Release notes
Open source →The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.5.0,
an asynchronous CQL driver for Rust, optimized for ScyllaDB, but also compatible with Apache Cassandra!Some interesting statistics:
- over 5.7M downloads on crates!
- over 663 GitHub stars!
Changes
New features / enhancements:
-
⚠️ Enabled hostname verification for OpenSSL. This is an important security improvement, and brings our OpenSSL usage to parity with Rustls (which doesn't even allow disabling verification in any easy way). Warning: it may cause the driver to be unable to connect to your cluster if you use OpenSSL and your node certs don't have node IP in SAN (#1491).
-
Introduced configurable DNS resolution timeout. Check out
hostname_resolution_timeoutmethod onSessionBuilder(#1113). -
Internal requests performed by the driver that fetch schema and topology are now prepared. It may slightly lower the load on cluster in some scenarios, especially when there is a great amount of driver sessions existing at the same time. (#1530).
-
Schema agreement wait (performed by
Session::await_schema_agreementand automatically after DDL requests unless disabled) no longer fails immediately after any error. Instead, it retries when the error is classified as non-permanent (#1473, #1479). -
Implemented Debug for ColumnSpecsGuard (#1522).
-
Added support for secrecy 0.10, including SecretString and SecretSlice (#1523).
-
Implemented SerializeValue for MaybeEmpty (#1525).
-
Allowed (de)serialization of
Cow<'_, T>values (#1545). -
Introduced
scylla_unstablecfg flag to gate all unstable features (#1505). -
Implemented unstable HostListener mechanism for CPP-RS Driver (#1496).
-
⚠️ Removed "unstable cloud" feature, as it was abandoned long time ago. The removed feature was marked as
unstable, so this is not a semver-major change, but it may cause compilation error if your code used this feature (#1487).
Bug fixes:
Session::execute_iterandSession::query_iternow correctly handleUSE keyspacerequests (by switching keyspace on all connections) and DDL requests (by awaiting schema agreement unless disabled). (#1548).frozenflag is no longer considered when type checking upon (de)serialization (#1500).MetadataError::FetchErrornow has correct message when printed. Before this fix, it was accidentally hardcoded to "transparent" (#1539).- Frozen modifer is now correctly parsed in custom types. This is relevant pretty much only for
vectorof collections - extremely niche use case (#1567).
Internal cleanups/refactors:
- Brought the first batch of internal metadata fetching improvements (#1526).
- Fully-qualified call to
collect_arrayincustom_type_parser(#1494). - Fixed variable shadowing in
value_tests.rs(#1511). - Small refactor of execution methods (#1514).
- Replaced
&Stringwith&strwhere possible (#1529).
Documentation:
- Added a new step to the release procedure: updating the list of supported driver versions (#1476).
- Clarified metrics docs w.r.t client-side vs server-side metrics (#1470).
- Slightly improved
data-types.md(#1474). - Updated docs on
permit_dc_failover(#1489). - Updated dead link in
duration.md(#1516). - Documented best practice: prepare statements once, execute multiple times (#1524).
- Documented DefaultPolicy replica shuffling (#1547).
- Removed multilingual option for md book (#1478).
CI / developer tool improvements:
- ⚠️ Employed Nextest for running tests. Warning: using
cargo testis now discouraged in favor of using nextest. Behaviors of the two may diverge, andcargo testcould possibly even break in the future (#1568). - Migrated docs to uv (#1528).
- Fix flaky
test_schema_await_with_unreachable_node(#1471). - Added test for
RequiredHostAbsenterror (#1475). - Added CCM TLS tests, replacing TLS workflow (#1482).
- Increased
test_pager_timeoutstimeouts to prevent flakiness (#1484). - Small fixes/improvements to ccm lib. Apart from small fixes, this adds node decommission capability (#1501).
- Changed defaults for SCYLLA_URI* env variables to make running tests much easier (#1555).
- Fixed flakiness of schema agreement tests: (#1565).
- Silenced warnings for uninhabited types (#1507).
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 122 Karol Baryła 48 Wojciech Przytuła 5 Stanisław Czech 4 dependabot[bot] 3 Mikołaj Uzarski 3 Yaniv Kaul 2 Piotr Dulikowski 2 copilot-swe-agent[bot] 1 Andres Medina -
1.4.006 Nov 2025Release notes
Open source →The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 1.4.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!Some interesting statistics:
- over 5.200k downloads on crates!
- over 650 GitHub stars!
Changes
New features / enhancements:
- Added support for Scylla's result metadata id extension. This improves type safety (especially for
SELECT *queries), and in many cases performance (because driver won't have to request result metadata for each request). (#1463). - ⚠️ Result metadata in
PreparedStatementis now mutable in order to support the above extension. It was accessible to users withPreparedStatement::get_result_set_col_specs, which is now deprecated and will return initial result metadata. Useget_current_result_set_col_specsinstead (#1445). - Bumped MSRV to 1.85 (#1430).
- Thanks to the above bump, we were able to move to Rust 2024 edition (#1422).
- Pager requests (
execute_iter,query_iter) now respect client-side timeout settings, treating is as timeout for fetching a single page (#1458). DeserializeRowderive macro now supportsdefault_when_nullfield attribute (#1403).- Driver now reports the host that control connection is opened to when metadata fetch fails (#1460).
- Removed unnecessary
'staticbounds fromQueryPager::rows_streammethod (#1427).
Bug fixes:
- Fixed QueryPager panic that could happen during runtime shutdown (#1456).
- Allowed deserializing tuples with suffix of fields missing by interpreting those fields as nulls (#1453).
- Type checking in pager methods (
execute_iter,query_iter) is now performed for each page, not only the first one (#1449). - Fixed race condition that could potentially cause CachingSession to never drop statements from its cache (#1423).
- Removed panicking access to buffers in scylla-cql (#1465).
Internal cleanups/refactors:
- Use explicit matches for errors when the decision is crucial for correctness/performance (#1083).
- Request timeout improvements (#1457).
- Multiple refactors needed to support result metadata id extension:
idandlwtfields were moved to shared data ofPreparedStatement(#1442).- Data sharing between various
PreparedStatementvariants have been centralized to make reasoning about it easier (#1446). - Metadata in results is now deserialized eagerly, instead of being deserialized in
QueryResult::into_rows_result(#1461).
Documentation:
- Bumped sphinx-scylladb-theme from 1.8.7 to 1.8.8 (#1426).
- Documented features in
Cargo.toml(#1459).
CI / developer tool improvements:
- Integration tests now drop created keyspaces to not overwhelm database when running them multiple times (#1414).
- Fixed
test_default_policy_is_tablet_awarethat started to fail because of Scylla changes (#1412). - Fixed clippy 1.89 & 1.90 lints (#1428, #1437).
- Switched to using our fork of cargo-semver-checks to work around a bug in upstream (#1434).
- Made semver-checks not fail when
#[deprecated]attribute is added (#1450, #1464).
Others:
- Added an UntranslatedPeer constructor for Node.js driver (#1466).
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 127 Karol Baryła 24 Wojciech Przytuła 3 Mikołaj Uzarski 2 Stanisław Czech 1 Collin Styles 1 spoorn 1 dependabot[bot] -
1.3.130 Jul 2025Release notes
Open source →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 -
1.3.007 Jul 2025Release notes
Open source →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] -
1.2.027 May 2025Release notes
Open source →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 -
1.1.003 Apr 2025Nothing published for this version
-
1.0.004 Mar 2025Nothing published for this version
-
0.4.111 Dec 2024Nothing published for this version
-
0.4.014 Nov 2024Nothing published for this version
-
0.3.005 Sep 2024Nothing published for this version
-
0.2.222 Aug 2024Nothing published for this version
-
0.2.111 Jul 2024Nothing published for this version
-
0.2.009 May 2024Nothing published for this version
-
0.1.002 Feb 2024Nothing published for this version
-
0.0.1121 Dec 2023Nothing published for this version
-
0.0.1019 Dec 2023 withdrawnNothing published for this version
-
0.0.906 Oct 2023Nothing published for this version
-
0.0.827 Jul 2023Nothing published for this version
-
0.0.705 Jun 2023Nothing published for this version
-
0.0.621 Apr 2023Nothing published for this version
-
0.0.522 Mar 2023Nothing published for this version
-
0.0.414 Feb 2023Nothing published for this version
-
0.0.315 Dec 2022Nothing published for this version
-
0.0.204 Oct 2022Nothing published for this version
-
0.0.125 Aug 2022Nothing published for this version