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
0.16.0 - 2026-02-18
- Added some new clippy lints to enforce.
get_random_accesswas renamed toget_random_access_mut.- Bumped to 2024 edition.
- Structs that were shared with
hypercore-protocolhave been moved into a separate crate:hypercore_schema. - Dependencies update
- Some function signatures were changed that were pass-by-value or pass-by-ref that didn't need to be.
0.15.0 - 2025-12-25
- More impl's of
CompactEncoding.
- New version of compact-encoding used.
HypercoreStatestruct. It is obsolete with new compact-encoding version.
0.14.0 - 2024-10-25
- [
5a1f98f8c7] fix: error message variable order (Timo Tiuraniemi) - [
4f2f5fe3ec] Use tokio by default (Blake Griffith) - [
7f70249ffc] Fix tests #144 (Blake Griffith) - [
c146362617] Add events needed for replication #142 (Blake Griffith)
.github/workflows/ci.yml | 42 ++++++++++++++++++++++++------------------
Cargo.toml | 6 +++++-
benches/memory.rs | 4 ++--
src/common/node.rs | 7 ++++++-
src/common/peer.rs | 11 ++++++-----
src/core.rs | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
src/lib.rs | 4 +++-
src/replication/events.rs | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/replication/mod.rs | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/replication/shared_core.rs | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/storage/mod.rs | 8 ++------
src/tree/merkle_tree_changeset.rs | 4 ++--
tests/js/package.json | 2 +-
13 files changed, 599 insertions(+), 45 deletions(-)- [
16acbffc92] Remove generic parameters from Hypercore and Storage #139 (cowlicks)
benches/disk.rs | 5 ++---
benches/memory.rs | 24 ++++++++++++++++--------
examples/replication.rs | 6 ++----
src/builder.rs | 17 +++++------------
src/core.rs | 24 +++++++-----------------
src/lib.rs | 2 +-
src/storage/mod.rs | 62 +++++++++++++++++++++++++++++++++++---------------------------
tests/common/mod.rs | 5 ++---
8 files changed, 70 insertions(+), 75 deletions(-)- [
60d50a5e76] Fix Oplog decoding failing on bitfied update (Timo Tiuraniemi)
src/oplog/entry.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)- [
fa7d487758] Merge pull request #138 from datrs/v10 (Timo Tiuraniemi)
.github/workflows/ci.yml | 142 ++++
.gitignore | 2 +
CHANGELOG.md | 31 +
Cargo.toml | 83 +-
README.md | 81 +-
benches/bench.rs | 58 --
benches/disk.rs | 140 ++++
benches/memory.rs | 128 +++
examples/async.rs | 29 -
examples/disk.rs | 88 ++
examples/iter.rs | 80 --
examples/main.rs | 29 -
examples/memory.rs | 59 ++
examples/replication.rs | 116 +++
src/audit.rs | 20 -
src/bitfield/dynamic.rs | 403 +++++++++
src/bitfield/fixed.rs | 228 ++++++
src/bitfield/iterator.rs | 158 ----
src/bitfield/masks.rs | 108 ---
src/bitfield/mod.rs | 379 +--------
src/builder.rs | 100 +++
src/common/cache.rs | 58 ++
src/common/error.rs | 78 ++
src/common/mod.rs | 23 +
src/{storage => common}/node.rs | 77 +-
src/common/peer.rs | 117 +++
src/common/store.rs | 155 ++++
src/core.rs | 1136 ++++++++++++++++++++++++++
src/crypto/hash.rs | 227 +++++-
src/crypto/key_pair.rs | 56 +-
src/crypto/manifest.rs | 43 +
src/crypto/merkle.rs | 74 --
src/crypto/mod.rs | 10 +-
src/crypto/root.rs | 52 --
src/data/mod.rs | 46 ++
src/encoding.rs | 370 +++++++++
src/event.rs | 3 -
src/feed.rs | 676 ----------------
src/feed_builder.rs | 89 --
src/lib.rs | 112 ++-
src/oplog/entry.rs | 164 ++++
src/oplog/header.rs | 325 ++++++++
src/oplog/mod.rs | 495 ++++++++++++
src/prelude.rs | 16 +-
src/proof.rs | 30 -
src/replicate/message.rs | 6 -
src/replicate/mod.rs | 5 -
src/replicate/peer.rs | 40 -
src/storage/mod.rs | 578 +++++--------
src/storage/persist.rs | 19 -
src/tree/merkle_tree.rs | 1616 +++++++++++++++++++++++++++++++++++++
src/tree/merkle_tree_changeset.rs | 131 +++
src/tree/mod.rs | 5 +
tests/bitfield.rs | 195 -----
tests/common/mod.rs | 108 ++-
tests/compat.rs | 178 ----
tests/core.rs | 79 ++
tests/feed.rs | 340 --------
tests/js/interop.js | 128 +++
tests/js/mod.rs | 50 ++
tests/js/package.json | 10 +
tests/js_interop.rs | 192 +++++
tests/model.rs | 175 ++--
tests/regression.rs | 18 -
tests/storage.rs | 51 --
65 files changed, 7558 insertions(+), 3260 deletions(-)- [
084f00dd3c] (cargo-release) version 0.11.1-beta.10 (Bruno Tavares) - [
99eff3db3c] Fix travis errors - clippy warnings and fmt (Bruno Tavares) - [
d6f2c5522f] Merge pull request #121 from khodzha/append_fix (Bruno Tavares) - [
57bd16444e] Avoid calling unwrap or expect inside fn that returns Result (Bruno Tavares) - [
de9ebae3ce] Pin ed25519-dalek to a version with compatible signature methods (Bruno Tavares) - [
f7676d530a] Fix clippy errors (Bruno Tavares) - [
cf251468e9] fixed saving feed to disk (Shamir Khodzha) - [
2c260b1b51] Update changelog (Bruno Tavares)
.gitignore | 1 +-
CHANGELOG.md | 24 +++++++++++++-
Cargo.toml | 4 +-
benches/bench.rs | 7 ++--
examples/main.rs | 23 +++++++++++--
src/bitfield/mod.rs | 97 +++++++++++++++++++++++++++++++++++++++++++++--------
src/crypto/merkle.rs | 11 ++++++-
src/feed.rs | 16 +++++++--
src/feed_builder.rs | 42 +++++++++++++++++++----
src/storage/mod.rs | 93 ++++++++++++++++++++++++++++++++++++---------------
tests/bitfield.rs | 18 ++++------
tests/common/mod.rs | 2 +-
tests/compat.rs | 12 ++++---
tests/feed.rs | 24 +++++++++----
14 files changed, 295 insertions(+), 79 deletions(-)- [
8589bd17a6] (cargo-release) version 0.11.1-beta.9 (Bruno Tavares) - [
2765a010ea] Merge pull request #120 from khodzha/path_check (Bruno Tavares) - [
8ee485bf62] added path is a dir check in Feed::open (Shamir Khodzha) - [
62a411ee66] Merge branch 'dependabot/cargo/bitfield-rle-0.2.0' (Bruno Tavares) - [
bac9ba4905] Fix cargofmt (Bruno Tavares) - [
2a6563b46f] Update bitfield-rle requirement from 0.1.1 to 0.2.0 (dependabot-preview[bot]) - [
37d2a9cf24] Merge branch 'fix-mask-note' (Bruno Tavares) - [
e53afb8d92] Merge branch 'master' into fix-mask-note (Bruno Tavares) - [
999ff75213] Merge branch 'FreddieRidell-document-src-feed-rs' (Bruno Tavares) - [
6be4441404] Merge branch 'document-src-feed-rs' of git://github.com/FreddieRidell/hypercore into FreddieRidell-document-src-feed-rs (Bruno Tavares)
Cargo.toml | 4 +--
src/bitfield/masks.rs | 2 +-
src/crypto/mod.rs | 4 ++-
src/feed.rs | 73 +++++++++++++++++++++++++++++++++++++++++-----------
tests/feed.rs | 30 +++++++++++++++++++++-
5 files changed, 94 insertions(+), 19 deletions(-)- [
b555606bd6] (cargo-release) version 0.11.1-beta.3 (Bruno Tavares) - [
aaf265b8b8] Fix requirements on ram crates to compile (Bruno Tavares) - [
10448df561] Update changelog (Bruno Tavares)
CHANGELOG.md | 24 ++++++++++++++++++++++++
Cargo.toml | 6 +++---
2 files changed, 27 insertions(+), 3 deletions(-)- [
3dfd5c8c71] (cargo-release) version 0.11.1-beta.2 (Bruno Tavares) - [
4136866e01] Merge pull request #96 from bltavares/bitfield-compress (Bruno Tavares) - [
d8beadbbfb] GH Feedback: add comments on the optional fields (Bruno Tavares) - [
9c6812d901] Use literals for floats (Bruno Tavares) - [
356c90e915] Make test with bigger ranges than page size (Bruno Tavares) - [
390e13f9b5] WIP: JS has float numbers on math (Bruno Tavares) - [
bd333ba68d] Compress bitfield and expose it to network code (Bruno Tavares) - [
0bdbf6207a] Bump dalek and rand (Bruno Tavares) - [
ac0f3b6a74] Update changelog (Bruno Tavares)
CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++
Cargo.toml | 3 ++-
src/bitfield/mod.rs | 32 ++++++++++++++++++++++++++++++++
src/feed.rs | 5 +++++
tests/bitfield.rs | 22 ++++++++++++++++++++++
tests/model.rs | 7 +------
6 files changed, 102 insertions(+), 7 deletions(-)- [
e5f071766c] (cargo-release) version 0.11.1-beta.1 (Bruno Tavares) - [
f7af79a3c2] Merge pull request #100 from bltavares/bumps (Bruno Tavares) - [
51c35d8f42] Point deps to crates versions (Bruno Tavares) - [
f3b421c6ca] Fix clippy: rename func to adhere to conventions (Bruno Tavares) - [
ba09c27336] Fix travis: include checks on benchmarks (Bruno Tavares) - [
173bc3fda2] Move from usize to u64 (Bruno Tavares) - [
0678d06687] Fix changes on ed25519_dalek and rand (Bruno Tavares) - [
7fd467d928] Fix Travis config (Bruno Tavares) - [
c4dc33a69a] Bump versions to latest versions (Bruno Tavares) - [
ac3790dd4d] Bump versions to latest versions (Bruno Tavares) - [
a3aa858b61] Update sparse-bitfield requirement from 0.10.0 to 0.11.0 (dependabot-preview[bot]) - [
97cf996831] Update changelog (Bruno Tavares)
.travis.yml | 8 ++--
CHANGELOG.md | 28 +++++++++++++-
Cargo.toml | 34 ++++++++--------
examples/iter.rs | 6 +--
src/audit.rs | 8 ++--
src/bitfield/iterator.rs | 37 +++++++++---------
src/bitfield/mod.rs | 100 ++++++++++++++++++++++++------------------------
src/crypto/hash.rs | 12 +++---
src/crypto/key_pair.rs | 13 +++---
src/crypto/root.rs | 62 +++++++++++++++---------------
src/feed.rs | 48 +++++++++++------------
src/proof.rs | 4 +-
src/replicate/message.rs | 4 +-
src/replicate/peer.rs | 4 +-
src/storage/mod.rs | 42 ++++++++++----------
src/storage/node.rs | 16 ++++----
src/storage/persist.rs | 4 +-
tests/bitfield.rs | 8 ++--
tests/model.rs | 12 +++---
19 files changed, 243 insertions(+), 207 deletions(-)- [
f2baf805d5] (cargo-release) version 0.11.0 (Bruno Tavares) - [
31dfdd15f2] Merge pull request #95 from bltavares/send (Bruno Tavares) - [
46be5197a2] Use published version (Bruno Tavares) - [
d4905b11cf] Point to merkle-tree-stream that is Send while new version is to be released (Bruno Tavares) - [
40caf92ec2] Replace all Rc with Arc in code. Needs to update dependencies (Bruno Tavares) - [
2dc8008a55] example to ensure structs are send (Bruno Tavares) - [
f77fe7b025] fix readme link (#88) (nasa) - [
82e48f0c7d] Update memory-pager requirement from 0.8.0 to 0.9.0 (dependabot-preview[bot]) - [
580dff64c5] Update sparse-bitfield requirement from 0.8.1 to 0.10.0 (dependabot-preview[bot]) - [
7eda3504d6] Merge pull request #81 from bltavares/discovery-key-hash (Szabolcs Berecz) - [
1edf42f790] Implements discoveryKey from hypercore-crypto (Bruno Tavares) - [
aedef0b149] Update changelog (Yoshua Wuyts)
CHANGELOG.md | 26 ++++++++++++++++++++++++++
Cargo.toml | 9 +++++----
README.md | 2 +-
examples/async.rs | 30 ++++++++++++++++++++++++++++++
src/crypto/hash.rs | 42 +++++++++++++++++++++++++++++-------------
src/crypto/merkle.rs | 10 +++++-----
src/feed.rs | 4 ++--
7 files changed, 98 insertions(+), 25 deletions(-)- [
9c2b07fca6] (cargo-release) version 0.9.0 (Yoshua Wuyts) - [
86e241f9e0] 🙋 Implement feed auditing (#55) (Tim Deeb-Swihart) - [
5840a3a6a9] Update rand requirement from 0.5.5 to 0.6.0 (#49) (dependabot[bot]) - [
1628057868] use tree_index functions (#48) (Yoshua Wuyts) - [
f66fbb3543] Update merkle-tree-stream requirement from 0.7.0 to 0.8.0 (#46) (dependabot[bot]) - [
343df6f991] Update changelog (Yoshua Wuyts)
CHANGELOG.md | 26 +++++++++++++++++++-
Cargo.toml | 6 ++--
src/audit.rs | 20 +++++++++++++++-
src/bitfield/mod.rs | 21 ++++++++++------
src/crypto/key_pair.rs | 2 +-
src/crypto/merkle.rs | 14 ++++++----
src/feed.rs | 46 ++++++++++++++++++++++++++++------
src/lib.rs | 1 +-
src/storage/mod.rs | 10 +++++--
src/storage/node.rs | 2 +-
tests/feed.rs | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++-
11 files changed, 191 insertions(+), 26 deletions(-)- [
9c2b07fca6] (cargo-release) version 0.9.0 (Yoshua Wuyts) - [
86e241f9e0] 🙋 Implement feed auditing (#55) (Tim Deeb-Swihart) - [
5840a3a6a9] Update rand requirement from 0.5.5 to 0.6.0 (#49) (dependabot[bot]) - [
1628057868] use tree_index functions (#48) (Yoshua Wuyts) - [
f66fbb3543] Update merkle-tree-stream requirement from 0.7.0 to 0.8.0 (#46) (dependabot[bot]) - [
343df6f991] Update changelog (Yoshua Wuyts)
CHANGELOG.md | 26 +++++++++++++++++++-
Cargo.toml | 6 ++--
src/audit.rs | 20 +++++++++++++++-
src/bitfield/mod.rs | 21 ++++++++++------
src/crypto/key_pair.rs | 2 +-
src/crypto/merkle.rs | 14 ++++++----
src/feed.rs | 46 ++++++++++++++++++++++++++++------
src/lib.rs | 1 +-
src/storage/mod.rs | 10 +++++--
src/storage/node.rs | 2 +-
tests/feed.rs | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++-
11 files changed, 191 insertions(+), 26 deletions(-)- [
938d2816cc] (cargo-release) version 0.8.1 (Yoshua Wuyts) - [
79fd7a8141] Stricter lints (#45) (Yoshua Wuyts) - [
96b3af825d] use spec compatible constants (#44) (Yoshua Wuyts) - [
ac8ef53b0c] Update changelog (Yoshua Wuyts)
CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++
Cargo.toml | 10 +++++++++-
src/crypto/hash.rs | 8 ++++----
src/crypto/key_pair.rs | 2 +-
src/crypto/merkle.rs | 4 ++--
src/feed.rs | 20 ++++++++++----------
src/feed_builder.rs | 10 +++++-----
src/lib.rs | 19 +++++++++++--------
src/prelude.rs | 4 ++--
src/proof.rs | 4 ++--
src/storage/mod.rs | 2 +-
src/storage/node.rs | 4 ++--
src/storage/persist.rs | 2 +-
13 files changed, 83 insertions(+), 39 deletions(-)- [
048921b077] (cargo-release) version 0.8.0 (Yoshua Wuyts) - [
54ceb55e7b] travis master only builds (Yoshua Wuyts) - [
1a06b5862d] upgrade (#43) (Yoshua Wuyts) - [
2fda376767] tests/helpers -> tests/common (#38) (Yoshua Wuyts) - [
d48e5570fa] Keep up with modern times in clippy invocation (#35) (Szabolcs Berecz) - [
a62a21b249] Update quickcheck requirement from 0.6.2 to 0.7.1 (#33) (Szabolcs Berecz) - [
3bbe87db8d] Update changelog (Yoshua Wuyts)
.github/ISSUE_TEMPLATE.md | 40 +++---------------------------
.github/ISSUE_TEMPLATE/bug_report.md | 23 +++++++++++++++++-
.github/ISSUE_TEMPLATE/feature_request.md | 43 ++++++++++++++++++++++++++++++++-
.github/ISSUE_TEMPLATE/question.md | 18 +++++++++++++-
.travis.yml | 24 +++++++++---------
CHANGELOG.md | 25 +++++++++++++++++++-
Cargo.toml | 28 ++++++++++-----------
README.md | 23 +++++++++++++++--
src/feed.rs | 2 +-
src/lib.rs | 23 +++++++++++++----
src/replicate/peer.rs | 2 +-
src/storage/mod.rs | 2 +-
tests/common/mod.rs | 15 +++++++++++-
tests/feed.rs | 29 +++++++++++++++++++---
tests/helpers.rs | 34 +-------------------------
tests/model.rs | 6 ++--
tests/regression.rs | 4 +--
17 files changed, 232 insertions(+), 109 deletions(-)- [
43ad5d3c9a] (cargo-release) version 0.7.1 (Yoshua Wuyts) - [
cb2cfac275] Update ed25519_dalek to 0.8 and rand to 0.5 (#30) (Luiz Irber) - [
ade97ddfe3] Update memory-pager requirement from 0.7.0 to 0.8.0 (dependabot[bot]) - [
420a3b19b0] Upgrade random-access-storage (#26) (Szabolcs Berecz) - [
7421f677eb] update changelog (Yoshua Wuyts)
CHANGELOG.md | 26 ++++++++++++++++++++++++++
Cargo.toml | 14 +++++++-------
benches/bench.rs | 8 +++-----
src/crypto/key_pair.rs | 4 ++--
src/feed.rs | 16 ++++++++--------
src/feed_builder.rs | 6 +++---
src/storage/mod.rs | 40 ++++++++++++++++++++--------------------
src/storage/persist.rs | 4 ++--
tests/compat.rs | 6 +++---
tests/feed.rs | 10 +++++-----
tests/helpers.rs | 8 ++++----
11 files changed, 83 insertions(+), 59 deletions(-)- [
c4c5986191] (cargo-release) version 0.7.0 (Yoshua Wuyts) - [
7d6bde061c] Storage: implement keypair read/write (#18) - [
d027f37ed8] Update sparse-bitfield requirement from 0.4.0 to 0.8.0 (#20) - [
5d9b05f029] Update memory-pager requirement from 0.4.5 to 0.7.0 - [
73a3f28e26] Update sleep-parser requirement from 0.4.0 to 0.6.0 - [
566b7a1021] Upgrade to latest random-access-storage (#17) - [
e086e60942] Add rustfmt back to travis (#19) - [
eb5edfba43] (cargo-release) start next development iteration 0.6.1-alpha.0 (Yoshua Wuyts)
.travis.yml | 1 +-
Cargo.toml | 14 ++++++------
src/bitfield/mod.rs | 9 +++-----
src/feed.rs | 49 +++++++++++++++++++++++++++++--------------
src/feed_builder.rs | 3 ++-
src/lib.rs | 2 +-
src/storage/mod.rs | 62 +++++++++++++++++++++++++++++++++++++++++++++++++-----
tests/compat.rs | 7 +++---
tests/feed.rs | 32 ++++++++++++++++++++++++++++-
tests/helpers.rs | 2 +-
tests/storage.rs | 54 +++++++++++++++++++++++++++++++++++++++++++++++-
11 files changed, 197 insertions(+), 38 deletions(-)