Skip to content

Releases: cberner/redb

2.1.0

20 Apr 17:18
Compare
Choose a tag to compare
  • Implement Key and Value for String
  • Allow users to implement ReadableTableMetadata, ReadableTable, and ReadableMultimapTable

2.0.0

22 Mar 17:17
Compare
Choose a tag to compare

Major file format change

2.0.0 uses a new file format that optimizes len() to be constant time. This means that it is not
backwards compatible with 1.x. To upgrade, consider using a pattern like that shown in the
upgrade_v1_to_v2 test.

Other changes

  • check_integrity() now returns a DatabaseError instead of a StorageError
  • Table metadata methods have moved to a new ReadableTableMetadata trait
  • Rename RedbKey to Key
  • Rename RedbValue to Value
  • Remove lifetimes from read-only tables
  • Remove lifetime from WriteTransaction and ReadTransaction
  • Remove drain() and drain_filter() from Table. Use retain, retain_in, extract_if or extract_from_if instead
  • impl Clone for Range
  • Add support for [T;N] as a Value or Key as appropriate for the type T
  • Add len() and is_empty() to MultimapValue
  • Add retain() and retain_in() to Table
  • Add extract_if() and extract_from_if() to Table
  • Add range() returning a Range with the 'static lifetime to read-only tables
  • Add get() returning a range with the 'static lifetime to read-only tables
  • Add close() method to ReadTransaction

2.0.0-beta0

18 Mar 00:23
Compare
Choose a tag to compare
2.0.0-beta0 Pre-release
Pre-release

Major file format change

2.0.0 uses a new file format that optimizes len() to be constant time. This means that it is not
backwards compatible with 1.x. To upgrade, consider using a pattern like that in
upgrade_v1_to_v2 test.

Other changes

  • check_integrity() now returns a DatabaseError instead of StorageError
  • Refactor table metadata methods into a new ReadableTableMetadata trait
  • Rename RedbKey to Key
  • Rename RedbValue to Value
  • Remove lifetimes from read-only tables
  • Remove lifetime from WriteTransaction and ReadTransaction
  • Remove drain() and drain_filter() from Table
  • impl Clone for Range
  • Add len() and is_empty() to MultimapValue
  • Add retain() and retain_in() to Table
  • Add extract_if() and extract_from_if() to Table
  • Add range() returning a Range with the 'static lifetime to read-only tables
  • Add get() returning a range with the 'static lifetime to read-only multimap tables
  • Add close() method to ReadTransaction

1.5.1

17 Mar 04:29
Compare
Choose a tag to compare
  • Fix check_integrity() so that it returns Ok(true) when no repairs were preformed. Previously,
    it returned Ok(false)

1.5.0

15 Jan 22:30
Compare
Choose a tag to compare
  • Export TableStats type
  • Export MutInPlaceValue which allows custom types to support insert_reserve()
  • Add untyped table API which allows metadata, such as table stats, to be retrieved for at table
    without knowing its type at compile time
  • Fix compilation on uncommon platforms (those other than Unix and Windows)

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