Skip to content

Conversation

rklaehn
Copy link
Collaborator

@rklaehn rklaehn commented Aug 7, 2025

Description

This makes the ListTags rpc call streaming instead of returning a single Vec<TagInfo>. Returning a Vec was the quickest to implement, but would be an issue if somebody had a giant number of tags, which we all know people will do eventually...

It also adds quite a bit of plumbing to deal with the very common case where you have an irpc stream item enum with 3 cases, item/error/done to provide an explicit marker for successful termination.

It also moves the handling of the only metadata call that requires a task - listblobs, into the metadata actor itself so the metadata actor is more self-contained. Unfortunately this means that the metadata actor also needs a JoinSet of tasks, but this will make it easier later to have the metadata db as a separate component for things like #84

Breaking Changes

Changes the ListTags rpc return type.
Not sure what is wrong with the semver check, but there are breaking changes!

Notes & open questions

Note: if the IrpcStreamItem stuff turns out useful enough I might move it into irpc and add some macros to make declaring these easier. But for now I don't want to do this since I don't want a genawaiter dependency in irpc, and I can't be bothered to manually write the into_stream state machine.

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.

Copy link

github-actions bot commented Aug 7, 2025

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh-blobs/pr/131/docs/iroh_blobs/

Last updated: 2025-08-07T10:40:55Z

@n0bot n0bot bot added this to iroh Aug 7, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Aug 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

2 participants