Skip to content

feat: streaming ListTags rpc call #131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft

feat: streaming ListTags rpc call #131

wants to merge 7 commits into from

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