Releases: scylladb/cpp-rust-driver
v0.3.0
The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.3.0, an API-compatible rewrite of https://github.com/scylladb/cpp-driver as a wrapper for the Rust driver. It will fully replace the CPP driver, which is already reaching its End of Life.
The current driver version should be considered Alpha.
Some minor features still need to be included. See Limitations section in README.md.
The underlying Rust driver used version: 0.15.0.
Currently, the cpp-rust-driver does not fully utilize lazy deserialization mechanism introduced in rust-driver 0.15.0. The support for lazy deserialization, and all features
that depend on it are going to be introduced in some future release.
Changes
Starting from this release, features that are not part of original cpp-driver
, but are implemented in cpp-rust-driver
as an extension to original API, will be labeled as 🚀 [Extension].
Implemented API functions:
- CassPrepared: (#185)
cass_prepared_parameter_name
cass_prepared_parameter_data_type
cass_prepared_parameter_data_type_by_name[_n]
- CassResult: (#136)
cass_result_column_type
cass_result_column_data_type
- Heartbeat/Keepalive: (#194)
cass_cluster_set_connection_heartbeat_interval
cass_cluster_set_connection_idle_timeout
- Schema agreement: (#198)
cass_cluster_set_max_schema_wait_time
cass_cluster_set_schema_agreement_interval
🚀 [Extension]
- Rack awareness: (#195)
cass_cluster_set_load_balance_rack_aware[_n]
cass_execution_profile_set_load_balance_rack_aware[_n]
New features / enhancements
- Prepared statements now cache result metadata provided by the server. The metadata is NOT updated when table schema is altered. (#136, #205)
Bug fixes:
- Fixed
cass_result_first_row
implementation. Previously, it would panic forRESULT:Rows
response with empty rows. (#136) - Original cpp-driver tries to prepare an empty statement when null pointer is provided
tocass_session_prepare
. We decided to inherit this behaviour for compatibility reasons. (#194) - Adjusted some cluster config defaults, according to the defaults specified by
cassandra.h
. (#193) - Fixed the bug where the driver would fallthrough to default round-robin LBP for execution profiles whose LBP was not set by the user. Now, if the LBP for the execution profile is not set, the driver chooses the global LBP defined on the cluster object. (#197)
- Fixed the bug where result metadata would be inconsistent for prepared statements when table schema was altered. (#205)
CI / developer tool improvements:
- Adjusted to rust-driver logic, and enabled the
SerialConsistencyTests
suite. (#186) - Fixed the runner's image ubuntu version to 22.04 during CI. (#191)
- Enabled
NullStringApiArgsTest
suite. (#194) - Added an explicit step to update apt cache during CI jobs. (#190)
- Adjusted, and enabled 2 out of 3 tests from
HeartbeatTests
suite. (#202) - Enabled
AlterDoesntUpdateColumnCount
test in favor ofAlterProperlyUpdatesColumnCount
. It is related to the bug fix regarding prepared statement's result metadata. (#205)
Documentation:
- Created a
docs
directory with a sample docs site. Work on the documentation will continue in the near future. (#134)
Others:
- Adjusted
build.rs
, so bindgen generates definitions for numeric types automatically. Created modules for each source file generated bybindgen
. (#188) - Got rid of redundant
cassandra.h
file inscylla-rust-wrapper
. (#196)
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/cpp-rust-driver/
Contributions are most welcome!
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 |
---|---|
76 | Mikołaj Uzarski |
3 | David Garcia |
2 | Karol Baryła |
1 | Dmitry Kropachev |
v0.2.0
The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.2.0, an API-compatible rewrite of https://github.com/scylladb/cpp-driver as a wrapper for the Rust driver. It will fully replace the CPP driver, which is already reaching its End of Life.
The current driver version should be considered Alpha.
Some minor features still need to be included. See Limitations section in README.md.
The underlying Rust driver used version: 0.14.0.
Changes
Implemented API functions:
-
CassFuture:
cass_future_wait_timed
(#147)
-
CassDataType:
cass_data_type_is_frozen
(#141)
-
CassExecProfile:
cass_execution_profile_set_no_speculative_execution_policy
(#150)
-
CassCluster:
-
CassStatement:
cass_statement_reset_parameters
(#171)
-
CassCollection: (#143)
cass_collection_new_from_data_type
cass_collection_data_type
-
Token awareness: (#170)
cass_cluster_set_token_aware_routing_shuffle_replicas
cass_execution_profile_set_token_aware_routing_shuffle_replicas
-
Client's identity: (#167)
cass_cluster_set_application_name[_n]
cass_cluster_set_application_version[_n]
cass_cluster_set_client_id
cass_session_get_client_id
-
Duration CQL type support: (#135)
cass_statement_bind_duration_*
cass_user_type_set_duration_*
cass_tuple_set_duration
cass_value_get_duration
cass_value_is_duration
cass_collection_append_duration
-
Decimal CQL type support: (#146)
cass_statement_bind_decimal_*
cass_user_type_set_decimal_*
cass_tuple_set_decimal
cass_value_get_decimal
cass_value_is_decimal
cass_collection_append_decimal
-
Misc:
New features / enhancements
- Adjusted cpp-rust-driver to new serialization framework introduced in rust-driver 0.11.0. (#138, #152)
- Bumped rust-driver dependency version to 0.14.0. (#160)
- Introduced typechecks logic to the driver. (#143)
Bug fixes:
- Bumped
ntest
dependency version to 0.9.3, sorust-analyzer
is not confused for functions marked with both#[tokio::test]
and#[ntest::timeout()]
. (#137) - Adjusted default default request client timeout according to
cassandra.h
documentation: (#151)
CI / developer tool improvements:
- Extended cmake file, so now it can build packages next to the regular builds. (#129)
- Introduced top-level
Makefile
that can be used to mimic CI behaviour locally. (#159, #174) - Enabled tests against multiple Scylla/Cassandra versions in CI. (#159, #168)
- Fixed clippy lints. (#145)
- Fixed an issue that caused some tests against Scylla be unnecessarily skipped. (#155)
- Removed some implemented functions from
testing_unimplemented.cpp
(#161) - Fixed and enabled
ConfigTests
suite. (#163) - Added a CI step that updates rust toolchain. (#175)
- Adjusted integration tests logic to
scylla-ccm
which does not support--force
flag forccm <node> decommission command
. Enabled the tests fixed due to this change. (#180) - Fixed and enabled
ConsistencyTwoNodeClusterTests
suite. (#181) - Introduced CI workflows responsible for verifying that package builds work as expected. (#183)
- Extended CI by
clang-format
checks for integration tests directory (src
). (#176)
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/cpp-rust-driver/
Contributions are most welcome!
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 |
---|---|
124 | Mikołaj Uzarski |
17 | Dmitry Kropachev |
7 | Karol Baryła |
3 | Takuya ASADA |
2 | Wojciech Przytuła |
v0.1.0
The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.1.0, an API-compatible rewrite of https://github.com/scylladb/cpp-driver as a wrapper for the Rust driver. It will fully replace the CPP driver, which is already reaching its End of Life.
The current driver version should be considered Alpha.
Some minor features still need to be included. See Limitations section in README.md.
The underlying Rust driver used version: 40aaee6 (not any specific release at the moment).
The source code of this driver can be found here:
The source code of the Rust driver can be found here:
Contributions are most welcome!
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 very beginning of the project up until this first release:
commits | author |
---|---|
65 | Gor Stepanyan |
63 | Karol Baryła |
62 | Piotr Grabowski |
52 | Wojciech Przytuła |
13 | Piotr Dulikowski |
12 | Jan Ciolek |
5 | Michał Sala |
4 | Juliusz Stasiewicz |
4 | Takuya ASADA |
2 | Jan Ciołek |