# What changed in rusqlite

> 34 changes in rusqlite 0.41 to 0.42 from its official release notes, upgrade guides and advisories: 6 breaking, 3 security, 7 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/cargo/rusqlite/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## rusqlite 0.42

### Security

- Fixes a use-after-free in Session::apply. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)
- Fixes a use-after-free in Session::apply_strm. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)

### New APIs and options

- Introduces RawValue. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)
- Adds a binding to sqlite3_key_v2. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)
- Adds a binding to sqlite3_rekey_v2. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)

### Performance

- Tells SQLite that rarray is already ordered by rowid. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)

### Behavior and default changes

- Bundled SQLCipher is enabled for the wasm32-unknown-unknown target. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)

### Fixes and other changes

- Fixes a memory leak when registering a collation or function with an invalid name. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)
- Fixes set_clientdata behavior on out-of-memory errors. (0.42.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0)

## rusqlite 0.41

### Breaking changes

- Adds a Send bound to create_aggregate_function. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Lowers the minimum supported Rust version to 1.88.0. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Raises the minimum SQLite version to 3.45.3. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Now returns an Iterator. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Now returns an Iterator. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Now returns an Iterator. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)

### Security

- Fixes a use-after-free reachable from safe code in trace_v2, busy_handler, and related APIs. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)

### New APIs and options

- Introduces DEFAULT_NAME. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Exposes sqlite3_file_control. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Adds sqlite3_set_clientdata and sqlite3_get_clientdata. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Adds Values::get_subtype to read SQLite value subtypes in virtual-table callbacks. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)

### Behavior and default changes

- Removes the check of the PRAGMA name when using SQLCipher. (0.41.1) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0), [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.1)
- Updates bundled SQLCipher to version 4.17.0. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Reruns the bundled SQLCipher build when OPENSSL_* environment variables change. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- The bundled build no longer enables SQLITE_ENABLE_MEMORY_MANAGEMENT. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Uses u64 for zeroblob. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)

### Fixes and other changes

- Fixes a panic when a deterministic scalar function has zero arguments. (0.41.1) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.42.0), [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.1)
- Fixes a discrepancy between backup and restore. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Updates the bundled SQLite version to 3.54.0. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Fixes Connection::serialize. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Adds a Send bound to create_window_function. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Fixes a possible memory leak on error. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- PRAGMA names are checked against pragma_list for validity. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Fixes UtcDateTime. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
- Fixes virtual table set_result. (0.41.0) — [release notes](https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0)
