Skip to content

Releases: cberner/redb

1.4.0

21 Nov 22:38
Compare
Choose a tag to compare
  • Add Builder::set_repair_callback() which can be used to set a callback function that will be invoked if the database needs repair while opening it.
  • Add support for custom storage backends. This is done by implementing the StorageBackend trait and
    using the Builder::create_with_backend function. This allows the database to be stored in a location other
    than the filesystem
  • Implement RedbKey and RedbValue for char
  • Implement RedbKey and RedbValue for bool
  • Implement TableHandle for Table
  • Implement MultimapTableHandle for MultimapTable
  • Fix panic that could occur when inserting a large number of fixed width values into a table within a single transaction
  • Fix panic when calling delete_table() on a table that is already open
  • Improve performance for fixed width types
  • Support additional platforms

1.3.0

22 Oct 17:12
Compare
Choose a tag to compare
  • Implement RedbKey for Option<T>
  • Implement RedbValue for Vec<T>
  • Implement Debug for tables
  • Add ReadableTable::first() and last() which retrieve the first and last key-value pairs, respectively`
  • Reduce lock contention for mixed read-write workloads
  • Documentation improvements

1.2.0

24 Sep 18:02
Compare
Choose a tag to compare
  • Add Builder::create_file() which does the same thing as create() but
    takes a File instead of a path
  • Add stats() to tables which provides informational statistics on the table's storage
  • Fix WriteTransaction::stats() to correctly count the storage used by multi-map tables
  • Fix panics that could occur when operating on savepoints concurrently from multiple threads
    on the same WriteTransaction
  • Implement Send for WriteTransaction
  • Change MSRV to 1.66
  • Performance optimizations

1.1.0

21 Aug 00:23
Compare
Choose a tag to compare
  • Fix panic when calling compact() on certain databases
  • Fix panic when calling compact() when an ephemeral Savepoint existed
  • Improve performance of compact()
  • Relax lifetime requirements on arguments to insert()

1.0.5

16 Jul 22:00
Compare
Choose a tag to compare
  • Fix a rare panic when recovering a database file after a crash
  • Minor performance improvement to write heavy workloads

1.0.4

01 Jul 22:40
Compare
Choose a tag to compare
  • Fix serious data corruption issue when calling drain() or drain_filter() on a Table that had
    uncommitted data

1.0.3

30 Jun 23:10
Compare
Choose a tag to compare
  • Fix panic when re-opening databases of certain, small, sizes

1.0.2

29 Jun 18:04
Compare
Choose a tag to compare
  • Fix panic when recovering some databases after a forceful shutdown
  • Fix panic when recovering databases with multimaps that have fixed width values after a forceful shutdown

1.0.1

26 Jun 18:19
Compare
Choose a tag to compare
  • Fix panic that could occur after an IO error when reopening a database
  • Fix panic that could occur after an IO error when opening a table
  • Improve error message when opening a table twice to include a more meaningful line number
  • Performance improvements

1.0.0

16 Jun 17:54
Compare
Choose a tag to compare

Announcement

redb has reached its first stable release! The file format is now gauranteed to be backward compatible,
and the API is stable. I've run pretty extensive fuzz testing, but please report any bugs you encounter.

The following features are complete:

  • MVCC with a single WriteTransaction and multiple ReadTransactions
  • Zero-copy reads
  • ACID semantics, including non-durable transactions which only sacrifice Durability
  • Savepoints which allow the state of the database to be captured and restored later

Changes from 0.22.0:

  • Stabilize file format
  • Improve performance of restore_savepoint()