Skip to content

Release v0.4.0 #245

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
Apr 14, 2025
Merged

Release v0.4.0 #245

merged 1 commit into from
Apr 14, 2025

Conversation

muzarski
Copy link
Contributor

@muzarski muzarski commented Apr 14, 2025

The ScyllaDB team is pleased to announce ScyllaDB CPP Rust Driver 0.4.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.

We are also happy to announce, that starting from this release, the driver version can be considered Beta:

  1. Safety refactor hardened FFI API and detected some critical bugs - this increased our confidence in the quality of the driver.
  2. Key features are already implemented and tested.
  3. The underlying rust-driver version is stable and breaking changes are not expected anytime soon.

Some minor features still need to be included. See Limitations section in README.md.

The underlying Rust driver used version: 1.1.0.

Changes

Implemented API functions:

  • Schema metadata:
    • cass_table_meta_column (#228)
  • CassIterator:
    • cass_iterator_type (#230)
  • CassValue:
    • cass_value_get_bytes - extended the support for remaining CQL types. (#236)

New features / enhancements

  • Bumped underlying rust-driver version to 1.1.0. (#237)
  • Safety refactor - implemented an API which ensures safe pointer manipulation. This enforces the safety on the type level - most critical bugs should now be discovered at compile time. (#207, #225, #226, #208)
  • Lazy deserialization refactor - rows and values are now lazily deserialized to the specific type - only when requested. This allowed us to reduce the number of allocations on a hot path and properly implement cass_value_get_bytes method. (#213, #236)
  • Enabled caching result metadata optimization for prepared statements on rust-driver side by default. (#210)

Bug fixes:

  • Fixed by-name parameter binding, so the logic is consistent with cpp-driver. (#187)
  • Thanks to new FFI API, we found and fixed few bug fixes related to raw pointer manipulation. (#229)

CI / developer tool improvements:

  • Enabled NamedParametersTests suite and introduced new test cases to the suite. (#187)
  • Addressed clippy lints (#211, #218)
  • Added lib to crate-type list in Cargo.toml. This is to enable the doctests during CI. (#227)
  • Enabled unsafe-op-in-unsafe-fn compiler lint. (#232)
  • Bumped minimum cmake version to 3.15 (#233)
  • Started building packages for Fedora 41. (#247)
  • Started installing valgrind using apt instead of snap. (#248)
  • Updated Cargo.lock file to build the library with latest dependencies. (#250)
  • Bumped Rust edition to 2024. (#251)

Documentation:

  • Bumped sphinx-scylladb-theme version multiple times (current version is 1.8.6). (#217, #219, #234)

Others:

  • Replaced lazy_static usages with LazyLock, which was stabilized in Rust 1.80. Removed lazy_static dependency altogether. (#212)
  • Added WHERE key='local' clause to all queries to system.local table. (#221)
  • Updated README.md. (#246)

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
90 Mikołaj Uzarski
4 Karol Baryła
3 dependabot[bot]
1 Dmitry Kropachev
1 Wojciech Przytuła

@wprzytula wprzytula added this to the 0.4 milestone Apr 14, 2025
@muzarski
Copy link
Contributor Author

Cassandra fail was related to installing valgrind:

Run make install-valgrind-if-missing
Valgrind not found in the system, install it.
error: cannot perform the following tasks:
- Download snap "core24" (739) from channel "stable" (unexpected EOF)
make: *** [Makefile:102: install-valgrind-if-missing] Error 1

I'll rerun the job.

@muzarski muzarski force-pushed the bump-cpp-rust-0.4 branch from 3205e99 to b1fa65b Compare April 14, 2025 13:41
@muzarski
Copy link
Contributor Author

v1.1: Rebased on master. Updated release notes and added entries for PRs that were recently merged (readme, fedora 41 pkgs and valgrind installation).

@muzarski muzarski requested review from Lorak-mmk and wprzytula April 14, 2025 13:42
@muzarski muzarski force-pushed the bump-cpp-rust-0.4 branch from b1fa65b to 716de88 Compare April 14, 2025 15:31
@muzarski
Copy link
Contributor Author

v1.2: Rebased on master again. Updated release notes.

@muzarski muzarski requested review from Lorak-mmk and wprzytula April 14, 2025 15:38
@muzarski muzarski merged commit 716de88 into scylladb:master Apr 14, 2025
12 checks passed
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.

3 participants