Skip to content

build(deps): bump redb from 4.1.0 to 4.3.0 - #170

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/redb-4.3.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/redb-4.3.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 24, 2026

Copy link
Copy Markdown
Contributor

Bumps redb from 4.1.0 to 4.3.0.

Release notes

Sourced from redb's releases.

4.3.0

New features

  • Add optional locking methods to StorageBackend. Backends may implement these methods to support locking. Custom backends that wrap FileBackend should delegate these methods to the FileBackend otherwise file locking functionality will be lost.
  • Add an optional Key::separator(), which returns a short byte string that separates two keys. &[u8], &str, String keys now store minimal prefixes. Option, array keys, and tuple keys also store optimized separators when their element type is variable length. Tables with these key types will use slightly less space, and lookups will be faster.
  • Add Key::min_encoded_key(), the encoding of a key type's smallest value. Implementing it is optional, and lets container types holding that key store shorter separators.
  • Add experimental support for multi-process read-write access to a single database file, behind the experimental-multiprocess feature flag.

Bug fixes

  • Fix a crash shortly after a commit being able to silently roll that commit back during recovery, if check_integrity() had previously repaired the database.
  • Fix ReadOnlyUntypedTable and ReadOnlyUntypedMultimapTable potentially returning incorrect results if the originating transaction is dropped.
  • Fix iterators silently omitting data when iteration continues after an error. An iterator that yielded Err(Corrupted) could yield the rest of the table on later calls, skipping the unreadable entries with no further error. Iterators and read-only cursors now keep returning an error after the first one; re-seeking a cursor resets it.
  • Fix restore_savepoint(), rename_table(), and delete_table() leaving the transaction committable after a storage error. Committing it could corrupt the database or silently lose a table. Such failures now poison the transaction: commit() returns an error instead of committing the half-applied state.
  • Fix pages being leaked permanently when a panic unwound through a live write transaction and was caught with catch_unwind. The leak survived closing and reopening the database and grew with every such panic; the pages are now reclaimed the next time the database is opened.
  • Fix a Windows-only hang: a write to the database file that reported writing zero bytes made the commit retry it forever. It now fails with a WriteZero I/O error.
  • Fix rename_table() and rename_multimap_table() returning TableExists when the new name is the same as the current one. Renaming a table to its own name now succeeds and leaves the table unchanged.
  • Fix persistent_savepoint() and delete_persistent_savepoint() making the transaction ineligible for further savepoints, so a second savepoint in the same transaction failed with InvalidSavepoint. Only opening, renaming, or deleting a data table, or restoring a savepoint, makes a transaction savepoint-ineligible now.

4.2.0

New features

  • Add an experimental cursor API, behind the experimental_cursor feature flag: Table::lower_bound_mut() and Table::upper_bound_mut() return a CursorMut pointing at a gap between entries, modeled on the standard library's BTreeMap cursors. Inserting sorted data through its insert_before() method can be around 3x faster than calling insert() with the same data; insert_after() inserts through the gap in descending order at the same speed. ReadableTable::lower_bound() and ReadableTable::upper_bound() return a read-only Cursor. The feature is unstable and may change incompatibly, or be removed, in any release.
  • Add ReadOnlyTable::get_owned(), ReadOnlyTable::range_owned(),

... (truncated)

Changelog

Sourced from redb's changelog.

4.3.0 - 2026-09-14

New features

  • Add optional locking methods to StorageBackend. Backends may implement these methods to support locking. Custom backends that wrap FileBackend should delegate these methods to the FileBackend otherwise file locking functionality will be lost.
  • Add an optional Key::separator(), which returns a short byte string that separates two keys. &[u8], &str, String keys now store minimal prefixes. Option, array keys, and tuple keys also store optimized separators when their element type is variable length. Tables with these key types will use slightly less space, and lookups will be faster.
  • Add Key::min_encoded_key(), the encoding of a key type's smallest value. Implementing it is optional, and lets container types holding that key store shorter separators.
  • Add experimental support for multi-process read-write access to a single database file, behind the experimental-multiprocess feature flag.

Bug fixes

  • Fix a crash shortly after a commit being able to silently roll that commit back during recovery, if check_integrity() had previously repaired the database.
  • Fix ReadOnlyUntypedTable and ReadOnlyUntypedMultimapTable potentially returning incorrect results if the originating transaction is dropped.
  • Fix iterators silently omitting data when iteration continues after an error. An iterator that yielded Err(Corrupted) could yield the rest of the table on later calls, skipping the unreadable entries with no further error. Iterators and read-only cursors now keep returning an error after the first one; re-seeking a cursor resets it.
  • Fix restore_savepoint(), rename_table(), and delete_table() leaving the transaction committable after a storage error. Committing it could corrupt the database or silently lose a table. Such failures now poison the transaction: commit() returns an error instead of committing the half-applied state.
  • Fix pages being leaked permanently when a panic unwound through a live write transaction and was caught with catch_unwind. The leak survived closing and reopening the database and grew with every such panic; the pages are now reclaimed the next time the database is opened.
  • Fix a Windows-only hang: a write to the database file that reported writing zero bytes made the commit retry it forever. It now fails with a WriteZero I/O error.
  • Fix rename_table() and rename_multimap_table() returning TableExists when the new name is the same as the current one. Renaming a table to its own name now succeeds and leaves the table unchanged.
  • Fix persistent_savepoint() and delete_persistent_savepoint() making the transaction ineligible for further savepoints, so a second savepoint in the same transaction failed with InvalidSavepoint. Only opening, renaming, or deleting a data table, or restoring a savepoint, makes a transaction savepoint-ineligible now.

4.2.0 - 2026-08-17

New features

  • Add an experimental cursor API, behind the experimental_cursor feature flag: Table::lower_bound_mut() and Table::upper_bound_mut() return a CursorMut pointing at a gap between entries, modeled on the standard library's BTreeMap cursors. Inserting sorted data through its insert_before() method can be around 3x faster than calling insert() with the same data; insert_after() inserts through the gap in descending order at the same speed. ReadableTable::lower_bound() and ReadableTable::upper_bound() return a read-only Cursor. The feature is unstable and may change incompatibly, or be removed, in any release.

... (truncated)

Commits
  • 2de02fa Bump version to 4.3.0
  • 7644dd8 Update changelog
  • 13011e5 Gate multiprocess error variants behind their feature
  • 8f08680 Update changelog
  • cfaa852 Keep local multi-writer commits in the read cache
  • ecec3ba Update changelog
  • ae626c6 Fix table formating in design doc
  • 38624a7 Rename the concurrency modes
  • e4993eb Update AGENTS.md
  • 2846ab7 Keep aborted savepoint handles invalid across writer processes
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [redb](https://github.com/cberner/redb) from 4.1.0 to 4.3.0.
- [Release notes](https://github.com/cberner/redb/releases)
- [Changelog](https://github.com/cberner/redb/blob/master/CHANGELOG.md)
- [Commits](cberner/redb@v4.1.0...v4.3.0)

---
updated-dependencies:
- dependency-name: redb
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants