Note that we start to track changes starting from v1.3.7.
- Bump go version to 1.22.x.
- This patch also added
dmflakey
package, which can be reused by other projects. See #812.
- Remove deprecated
UnsafeSlice
and useunsafe.Slice
- Stabilize the behaviour of Prev when the cursor already points to the first element
- Fix db.close() doesn't unlock the db file if db.munnmap() fails.
- Avoid syscall.Syscall use on OpenBSD.
- Fix rollback panicking after mlock failed or both meta pages corrupted.
- Fix bbolt panicking due to 64bit unaligned on arm32.
- Add recursive checker to confirm database consistency.
- Add support to get the page size from the second meta page if the first one is invalid.
- Add support for loong64 arch.
- Add internal iterator to Bucket that goes over buckets.
- Add validation on page read and write.
- Add PreLoadFreelist option to support loading free pages in readonly mode.
- Add (*Tx) CheckWithOption to support generating human-readable diagnostic messages.
- Fix Use
golang.org/x/sys/windows
forFileLockEx
/UnlockFileEx
. - Fix readonly file mapping on windows.
- Fix the "Last" method might return no data due to not skipping the empty pages.
- Fix panic on db.meta when rollback.
- Add support for get keys in sub buckets in
bbolt get
command. - Add support for
--format
flag forbbolt keys
command. - Add safeguards to bbolt CLI commands.
- Add
bbolt page
supports --all and --value-format=redacted formats. - Add
bbolt surgery
commands. - Fix open db file readonly mode for commands which shouldn't update the db file, see also pull/292.
- Build bbolt CLI tool, test and format the source code using golang 1.17.13.
- Bump golang.org/x/sys to v0.4.0.
Release v1.3.7 contains following critical fixes:
- fix to problem that
Last
method might return incorrect value (#341) - fix of potential panic when performing transaction's rollback (#362)
Other changes focused on defense-in-depth (#358, #294, #225, #395)
bbolt
command line tool was expanded to: