Skip to content

feat: streaming ListTags rpc call - #131

Draft
rklaehn wants to merge 7 commits into
mainfrom
lazy-list-tags
Draft

rklaehn wants to merge 7 commits into
mainfrom
lazy-list-tags

Conversation

@rklaehn

@rklaehn rklaehn commented Aug 7, 2025

Copy link
Copy Markdown
Collaborator

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.

@github-actions

github-actions Bot commented Aug 7, 2025

Copy link
Copy Markdown

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

Comment thread src/store/fs/meta.rs Outdated
@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

This branch has not been deployed

No deployments
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