oxidecomputer / oxidecomputer/bundle-cat
Expose support-bundle parsing through a reusable library crate
@hermanol is already working on this.
Since Jul 17, 2026.
- Dominant language
- Rust
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Description
Adding a library crate alongside the existing bundle-cat binary would allow other programs to reuse the support-bundle parsing capabilities developed here without invoking the CLI or parsing its formatted output.
As support bundles expand in scope within the control plane, consumers may need to select a version of bundle-cat compatible with a particular system release. A library crate would provide a straightforward way to pin that compatibility through a normal Rust dependency.
The existing command-line interface should remain available and retain its current behavior, while its parsing and filtering functionality moves behind a reusable public API. The library should also provide the ability to access bundle contents through a small source abstraction rather than depending directly on ZipArchive, enabling ZIP files, unpacked directories, and consumer-provided storage backends.
Requirements
- Add a
bundle-cat-libcrate containing the reusable parsing, filtering, and data-model functionality. - Retain
bundle-catas a thin CLI built on the library, preserving its existing arguments, behavior, and textual output. - Provide documented, structured APIs so consumers do not need to parse CLI-formatted text.
- Expose reusable parsing primitives for stable support-bundle formats where appropriate.
- Support ZIP-backed bundles, unpacked directories, and consumer-provided storage implementations through a common source abstraction.
- Add tests demonstrating equivalent behavior across supported bundle sources.
- Preserve and extend existing tests to verify that the CLI continues to behave as before.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.