In go.etcd.io/bbolt/internal/common bucket header size is
const BucketHeaderSize = int(unsafe.Sizeof(InBucket{}))
"unsafe package may be non-portable and are not protected by the Go 1 compatibility guidelines."
https://pkg.go.dev/unsafe#pkg-overview
So header size for structs might change in the future Go versions.