The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.5.0, an API-compatible rewrite of GitHub - scylladb/cpp-driver: Scylla C/C++ Driver as a wrapper for the Rust driver. It will fully replace the CPP driver, which is already reaching its End of Life.
The driver version shall be considered Beta.
Some minor features still need to be included. See Limitations and Unimplemented functions from cassandra.h sections in README.md.
The underlying Rust driver used version: 1.2.0.
Changes
Implemented API functions:
- Connection
- Timestamp generation (#295):
cass_timestamp_gen_server_side_newcass_timestamp_gen_monotonic_newcass_timestamp_gen_monotonic_new_with_settingscass_timestamp_gen_freecass_cluster_set_timestamp_gen
- Host filtering (#291):
cass_execution_profile_set_whitelist_filteringcass_execution_profile_set_whitelist_filtering_ncass_execution_profile_set_blacklist_filteringcass_execution_profile_set_blacklist_filtering_ncass_execution_profile_set_whitelist_dc_filteringcass_execution_profile_set_whitelist_dc_filtering_ncass_execution_profile_set_blacklist_dc_filteringcass_execution_profile_set_blacklist_dc_filtering_ncass_cluster_set_whitelist_filteringcass_cluster_set_whitelist_filtering_ncass_cluster_set_blacklist_filteringcass_cluster_set_blacklist_filtering_ncass_cluster_set_whitelist_dc_filteringcass_cluster_set_whitelist_dc_filtering_ncass_cluster_set_blacklist_dc_filteringcass_cluster_set_blacklist_dc_filtering_n
- Inspecting/enforcing coordinator (#299, #316):
cass_statement_set_hostcass_statement_set_host_ncass_statement_set_host_inetcass_statement_set_nodecass_future_coordinator
- Observability:
New features / enhancements
- Made returned errors more in line with the CPP Driver’s. (#255, #297)
- When an unexpected null pointer is provided, the driver no longer panics; instead, the error is logged and returned. (#300)
- The parameters:
used_hosts_per_remote_dcandallow_remote_dcs_for_local_clof the DC-aware LBP are now properly supported. (#321)
Bug fixes:
- Fixed conversion of serial variants of
CassConsistency. Now,CassConsistencySERIAL or LOCAL_SERIAL can be used as consistency for SELECTs to make them use Paxos. (#289) - Null pointer provided to
cass_cluster_set_contact_pointsnow correctly clears the list. (#293) - Fixed errors when
-DCASS_BUILD_SHARED=OFFwas specified upon build. (#310)
CI / developer tool improvements:
- Enabled subset of
ControlConnectionTestssuite. (#255) - Adjusted and enabled
LatencyAwarePolicyTestsuite. (#256) - Enabled two tests from
MetricsTestssuite. (#280) - Enabled tests from
ExecutionProfileTestsuite. (#287, #290) integration_testing.rsis now compiled conditionally, only in the testing mode. (#288)NetworkTopologyStrategyis now used in integration tests by default. (#292)- Enabled some tests from the
ServerSideFailuresuite. (#294) - Enabled most tests from the
TimestampTestssuite. (#295) - Enabled tests from
StatementNoClusterTests,StatementTestsandServerSideFailureThreeNodeTestssuites. (#299) - Fixed rpm package build failure on fedora-40-x86_64, by updating the target to newer fedoras 41 and 42. (#311)
- Increased timestamp tolerance in
Timestampstest to combat flakiness. (#313) - Allowed clippy public API-related complaints. (#317)
- Implemented
set_record_contacted_hosts()andget_attempted_hosts_from_future()for use in integration tests. (#322) - Enabled
DcAwarePolicyTestsuite and extended it with one new test case. (#321)
Documentation:
- Updated docs’ dependencies. (#286)
- Written
MAINTENANCE.md, a guide for maintainers. Currently contains information about the release process. (#306) - Documented most important CMake options in README. (#307)
- Listed all unimplemented API functions in README. (#320)
Others:
- Privatised a major part of the wrapper’s API that anyway wasn’t intended to be public. (#318)
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 |
|---|---|
| 113 | Mikołaj Uzarski |
| 38 | Wojciech Przytuła |
| 2 | Takuya ASADA |
| 1 | David Garcia |