Skip to content

feat!: streaming blockstores#358

Merged
achingbrain merged 6 commits intomainfrom
feat/streaming-blockstores
Oct 3, 2025
Merged

feat!: streaming blockstores#358
achingbrain merged 6 commits intomainfrom
feat/streaming-blockstores

Conversation

@achingbrain
Copy link
Member

Changes the blockstore interface to return (and accept) streams of Uint8Arrays instead of individual Uint8Arrays.

This is to enable future work on large blocks (for streaming hashes) and also to reduce memory usage since we can stream from the filesystem in smaller chunks (typically 64KiB) rather than 256KiB at a time.

BREAKING CHANGE: blockstore.get and similar now return streams of bytes

Changes the blockstore interface to return (and accept) streams of
`Uint8Array`s instead of individual `Uint8Array`s.

This is to enable future work on large blocks (for streaming hashes)
and also to reduce memory usage since we can stream from the
filesystem in smaller chunks (typically 64KiB) rather than 256KiB at
a time.

BREAKING CHANGE: blockstore.get and similar now return streams of bytes
@achingbrain achingbrain merged commit 4dbb136 into main Oct 3, 2025
20 checks passed
@achingbrain achingbrain deleted the feat/streaming-blockstores branch October 3, 2025 06:46
github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [interface-store-v7.0.0](interface-store-6.0.3...interface-store-7.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version interface-store-v7.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [interface-blockstore-v6.0.0](interface-blockstore-5.3.2...interface-blockstore-6.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version interface-blockstore-v6.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [interface-datastore-v9.0.0](interface-datastore-8.3.2...interface-datastore-9.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version interface-datastore-v9.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [interface-blockstore-tests-v8.0.0](interface-blockstore-tests-7.0.3...interface-blockstore-tests-8.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version interface-blockstore-tests-v8.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [blockstore-core-v6.0.0](blockstore-core-5.0.4...blockstore-core-6.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))

### Dependencies

* bump @libp2p/logger ([#359](#359)) ([edb5a1f](edb5a1f))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version blockstore-core-v6.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [blockstore-fs-v3.0.0](blockstore-fs-2.0.5...blockstore-fs-3.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version blockstore-fs-v3.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [datastore-core-v11.0.0](datastore-core-10.0.4...datastore-core-11.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))

### Dependencies

* bump @libp2p/logger ([#359](#359)) ([edb5a1f](edb5a1f))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version datastore-core-v11.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [blockstore-idb-v3.0.0](blockstore-idb-2.0.4...blockstore-idb-3.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version blockstore-idb-v3.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [blockstore-level-v3.0.0](blockstore-level-2.0.5...blockstore-level-3.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version blockstore-level-v3.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [blockstore-s3-v3.0.0](blockstore-s3-2.0.5...blockstore-s3-3.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))

### Trivial Changes

* bump sinon from 20.0.0 to 21.0.0 ([#351](#351)) ([f24dd4f](f24dd4f))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version blockstore-s3-v3.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [datastore-fs-v11.0.0](datastore-fs-10.0.6...datastore-fs-11.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version datastore-fs-v11.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [datastore-idb-v4.0.0](datastore-idb-3.0.4...datastore-idb-4.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version datastore-idb-v4.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [datastore-level-v12.0.0](datastore-level-11.0.4...datastore-level-12.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version datastore-level-v12.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
## [datastore-s3-v13.0.0](datastore-s3-12.0.5...datastore-s3-13.0.0) (2025-10-03)

### ⚠ BREAKING CHANGES

* blockstore.get and similar now return streams of bytes

### Features

* streaming blockstores ([#358](#358)) ([4dbb136](4dbb136))

### Trivial Changes

* bump sinon from 20.0.0 to 21.0.0 ([#351](#351)) ([f24dd4f](f24dd4f))
@github-actions
Copy link

github-actions bot commented Oct 3, 2025

🎉 This PR is included in version datastore-s3-v13.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

rvagg added a commit to filecoin-project/filecoin-pin that referenced this pull request Oct 14, 2025
rvagg added a commit to filecoin-project/filecoin-pin that referenced this pull request Oct 15, 2025
rvagg added a commit to filecoin-project/filecoin-pin that referenced this pull request Oct 17, 2025
SgtPooki pushed a commit to filecoin-project/filecoin-pin that referenced this pull request Oct 17, 2025
* chore(deps): bump @helia/unixfs from 5.1.0 to 6.0.1

Bumps [@helia/unixfs](https://github.com/ipfs/helia) from 5.1.0 to 6.0.1.
- [Release notes](https://github.com/ipfs/helia/releases)
- [Changelog](https://github.com/ipfs/helia/blob/main/CHANGELOG.md)
- [Commits](ipfs/helia@mfs-v5.1.0...mfs-v6.0.1)

---
updated-dependencies:
- dependency-name: "@helia/unixfs"
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump helia from 5.5.1 to 6.0.1

Bumps [helia](https://github.com/ipfs/helia) from 5.5.1 to 6.0.1.
- [Release notes](https://github.com/ipfs/helia/releases)
- [Changelog](https://github.com/ipfs/helia/blob/main/CHANGELOG.md)
- [Commits](ipfs/helia@helia-v5.5.1...helia-v6.0.1)

---
updated-dependencies:
- dependency-name: helia
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: adapt to streaming interface-blockstore changes

Ref: ipfs/js-stores#358

* refactor: use it-to-buffer for Uint8Array collection

* fix: throw on unused methods

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rod Vagg <rod@vagg.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant