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_page instead of being a field in QueryResult.
Made page_size on 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)
Trait SerializeCql was renamed to SerializeValue because old name turned out to be confusing for users. (#1000)
Features chrono, time and secret were renamed to chrono-04, time-03 and secrecy-08 to 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_specs was changed from being a field to a method in order to allow sharing it with PreparedStatement. (#1065)
Moved ResultMetadata.paging_state field to Rows.paging_state_response. This is because paging state is something that changes on each paged request and should not be cached by PreparedStatement. (#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 STARTUP message (DRIVER_NAME, DRIVER_VERSION) can now be configured using new SelfIdentity API in SessionBuilder. (#1039)
Replaced some .unwrap()s with .expect()s in the code generated by our derive macros. This is done to avoid angering unwrap_used clippy lint and to provide better error messages if those panics are ever triggered. (#1055)
scylladb/scylla-rust-driver#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)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps scylla from 0.13.2 to 0.14.0.
Release notes
Sourced from scylla's releases.
... (truncated)
Commits
0341198
scylla: bump version to 0.14.0229cbb4
scylla-cql: bump version to 0.3.0f87936e
scylla-macros: bump version to 0.6.0edc2ae2
Merge pull request #1068 from wprzytula/eradicate-unpaged-selects-from-docs8604a33
docs: exhaustive overview of statements & best practices663e09d
docs/paged: remove leftover PageSize try_into()8e4c555
docs: add caveat about unpaged SELECTs' drawbacks31f512c
Merge pull request #1065 from wprzytula/new-deserialization-api-preparations47e9864
Merge pull request #1069 from muzarski/replace-query-unpaged-in-examples18bdbd1
examples/basic: query_unpaged -> query_iterDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show