oxidecomputer / oxidecomputer/bundle-cat

Expose support-bundle parsing through a reusable library crate

Open
#3 0 comments 0 reactions 1 assignee View on GitHub

@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-lib crate containing the reusable parsing, filtering, and data-model functionality.
  • Retain bundle-cat as 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.