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_new
cass_timestamp_gen_monotonic_new
cass_timestamp_gen_monotonic_new_with_settings
cass_timestamp_gen_free
cass_cluster_set_timestamp_gen
- Host filtering (#291):
cass_execution_profile_set_whitelist_filtering
cass_execution_profile_set_whitelist_filtering_n
cass_execution_profile_set_blacklist_filtering
cass_execution_profile_set_blacklist_filtering_n
cass_execution_profile_set_whitelist_dc_filtering
cass_execution_profile_set_whitelist_dc_filtering_n
cass_execution_profile_set_blacklist_dc_filtering
cass_execution_profile_set_blacklist_dc_filtering_n
cass_cluster_set_whitelist_filtering
cass_cluster_set_whitelist_filtering_n
cass_cluster_set_blacklist_filtering
cass_cluster_set_blacklist_filtering_n
cass_cluster_set_whitelist_dc_filtering
cass_cluster_set_whitelist_dc_filtering_n
cass_cluster_set_blacklist_dc_filtering
cass_cluster_set_blacklist_dc_filtering_n
- Inspecting/enforcing coordinator (#299, #316):
cass_statement_set_host
cass_statement_set_host_n
cass_statement_set_host_inet
cass_statement_set_node
cass_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_dc
andallow_remote_dcs_for_local_cl
of the DC-aware LBP are now properly supported. (#321)
Bug fixes:
- Fixed conversion of serial variants of
CassConsistency
. Now,CassConsistency
SERIAL or LOCAL_SERIAL can be used as consistency for SELECTs to make them use Paxos. (#289) - Null pointer provided to
cass_cluster_set_contact_points
now correctly clears the list. (#293) - Fixed errors when
-DCASS_BUILD_SHARED=OFF
was specified upon build. (#310)
CI / developer tool improvements:
- Enabled subset of
ControlConnectionTests
suite. (#255) - Adjusted and enabled
LatencyAwarePolicyTest
suite. (#256) - Enabled two tests from
MetricsTests
suite. (#280) - Enabled tests from
ExecutionProfileTest
suite. (#287, #290) integration_testing.rs
is now compiled conditionally, only in the testing mode. (#288)NetworkTopologyStrategy
is now used in integration tests by default. (#292)- Enabled some tests from the
ServerSideFailure
suite. (#294) - Enabled most tests from the
TimestampTests
suite. (#295) - Enabled tests from
StatementNoClusterTests
,StatementTests
andServerSideFailureThreeNodeTests
suites. (#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
Timestamps
test 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
DcAwarePolicyTest
suite 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 |