All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
- CI checks for pull requests
- Enable basic replication
TraverseConfig::in_bounds
takes a slice instead of a&Vec
now.- Bumped upstream dependencies.
- Fixed broken python tests. FFI requires tokio now.
- Work around some broken python & FFI tests
0.5.0 - 2024-08-25
- Added
Hyperbee::from_hypercore
. - Made
HyperbeeError
non-exhaustive #32
- Update to latest Hypercore with IO type erased. This resulted in 4 dependencies being removed.
- Removed some types that should not have been public:
HyperbeeBuilder
this was impossible to use anyway because it required a private type (Tree
).HyperbeeBuilderError
consumers should useHyperbeeError
instead.
0.4.0 - 2024-03-31
- Infastructure to publish python package. The package will be published when this is released.
- Added docstrings to ffi functions
ffi
feature now default so that we can build and distribute python packages. This will be fixed when package in split into workspaces.ffi
feature added that lets us build libraries for other languages. IncludesHyperbee
's.get
,.put
,.del
, and.sub
methods. Only Python has been tested so far. Generating bindings is documented in the README.
Debug
implementation forChildren
,Child
,Node
andBlockEntry
changed to be more readable.- On-disk binary output is now identical to JavaScript Hyperbee.
Hyperbee
no longer takes a generic parameter withCoreMem
bound.
Hyperbee::print
andHyperbee::height
are removed from the default API. They can still be accessed by enabling thedebug
feature.CoreMem
trait and all usage of it.
0.3.1 - 2024-02-29
0.3.0 - 2024-02-29
- Make
prefixed
module,HyperbeeBuilderError
, andmessages::header::Metadata
public
- Make
Hyprebee::traverse
andPrefixed::traverse
returnimpl Stream<Item = KeyDataResult>
. - Make
Prefixed::traverse
strip prefix and separator from yielded keys. The method now returnsimpl Stream
instead ofTraverse
. - Now the
.sub
method, andPrefixed
struct require configuration withPrefixedConfig
, which has aseperator
field. This separates the key and the prefix.separor
defaults to the NULL byte, which is the same as the JavaScript implementation.
BlockEntry
,KeyValue
,Node
andChild
are now private- You can now no longer manually construct
Traverse
orPrefixed
structs
0.2.2 - 2024-02-23
- More docs
- Add Rust to JavaScript integration tests for file system data
- Move
tracing-subscriber
from regular dependencies to dev-dependencies