Releases: cberner/redb
Releases Β· cberner/redb
0.20.0
0.19.0
0.18.0
- Improve errors to be more granular.
Error
has been split into multiple differentenum
s, which
can all be implicitly converted back toError
for convenience - Rename
savepoint()
toephemeral_savepoint()
- Add support for persistent savepoints. These persist across database restarts and must be explicitly
released - Optimize
restore_savepoint()
to be ~30x faster - Add experimental support for WASI. This requires nightly
- Implement
RedbKey
for()
- Fix some rare crash and data corruption bugs
0.17.0
- Enforce a limit of 3GiB on keys & values
- Fix database corruption bug that could occur if a
Durability::None
commit was made,
followed by a durable commit and the durable commit crashed or encountered an I/O error duringcommit()
- Fix panic when re-openning a database file, when the process that last had it open had crashed
- Fix several bugs where an I/O error during
commit()
could cause a panic instead of returning anErr
- Change
length
argument toinsert_reserve()
tou32
- Change
Table::len()
to returnu64
- Change width of most fields in
DatabaseStats
tou64
- Remove
K
type parameter fromAccessGuardMut
- Add
Database::compact()
which compacts the database file - Performance optimizations
0.16.0
0.15.0
- Add
Database::check_integrity()
to explicitly run repair process (it is still always run if needed on db open) - Change
list_tables()
to return aTableHandle
- Change
delete_table()
to take aTableHandle
- Make
insert_reserve()
API signature type safe - Change all iterators to return
Result
and propagate I/O errors - Replace
WriteStrategy
withDurability::Paranoid
- Remove
Builder::set_initial_size()
- Enable db file shrinking on Windows
- Performance optimizations
0.14.0
- Remove
Builder::create_mmapped()
andBuilder::open_mmapped()
. The mmap backend has been removed
because it was infeasible to prove that it was sound. This makes the redb API entirely safe,
and the remainingFile
based backed is within a factor of ~2x on all workloads that I've benchmarked - Make
Table
implementSend
. It is now possible to insert into multipleTable
s concurrently - Expose
AccessGuardMut
,Drain
andDrainFilter
in the public API - Rename
RangeIter
toRange
- Rename
MultimapRangeIter
toMultimapRange
- Rename
MultimapValueIter
toMultimapValue
- Performance optimizations
0.13.0
- Fix a major data corruption issue that was introduced in version 0.12.0. It caused databases
greater than ~4GB to become irrecoverably corrupted due to an integer overflow inPageNumber::address_range
that was introduced by commitb2c44a824d1ba69f526a1a75c56ae8484bae7248
- Add
drain_filter()
toTable
- Make key and value type bounds more clear for tables
0.12.1
0.12.0
This version contains a known data corruption bug (fixed by #516) and SHOULD NOT be used
Changes:
- Add
pop_first()
andpop_last()
toTable
- Add
drain()
toTable
- Add support for
Option<T>
as a value type - Add support for user defined key and value types. Users must implement
RedbKey
and/orRedbValue
- Change
get()
,insert()
,remove()
...etc to take arguments of typeimpl Borrow<SelfType>
- Return
Error::UpgradeRequired
when opening a file with an outdated file format - Improve support for 32bit platforms
- Performance optimizations