Skip to content

Release 0.5.0 #323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 17, 2025
Merged

Release 0.5.0 #323

merged 1 commit into from
Jun 17, 2025

Conversation

wprzytula
Copy link
Collaborator

The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.5.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 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
    • cass_cluster_set_coalesce_delay (#252)
    • cass_cluster_set_local_address[_n] and cass_cluster_set_local_port_range (#254)
    • cass_cluster_set_core_connections_per_host and cass_cluster_set_core_connections_per_shard (#281)
  • 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:
    • cass_session_get_metrics (#280)
    • cass_retry_policy_logging_new (#287)

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 and allow_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 and ServerSideFailureThreeNodeTests 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() and get_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:

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

@wprzytula wprzytula requested review from Lorak-mmk and Copilot June 17, 2025 17:40
@wprzytula wprzytula self-assigned this Jun 17, 2025
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates the version number for the ScyllaDB CPP Rust Driver, marking the new release 0.5.0. It confirms the version change in the Cargo.toml file to align with the release announcement.

@wprzytula wprzytula added this to the 0.5 milestone Jun 17, 2025
@wprzytula wprzytula merged commit 32c75e8 into scylladb:master Jun 17, 2025
11 checks passed
@wprzytula wprzytula deleted the release-0.5.0 branch June 17, 2025 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants