bytecodealliance / bytecodealliance/componentize-py

Use `wasm-pkg-tools` to pull interface and world definitions from well-known registries

Open
#220 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
277
Forks
51
Avg merge
12h 10m
Merged PRs (30d)
10

Description

[`wasm-pkg-tools`](https://github.com/bytecodealliance/wasm-pkg-tools) provides tools for downloading published WIT definitions (in binary form) from registries, including [default registries](https://github.com/bytecodealliance/wasm-pkg-tools#default-fallback-registries). Ideally, if a `componentize-py` user targets a world that's been published to such a registry, e.g. `wasi:cli/command@0.2.0`, they shouldn't need to provide any WIT files (nor, in the case of WASI worlds, even specify the registry). Instead, `componentize-py` should use `wasm-pkg-tools` to query any available registries and download the world and interface definitions automatically.

In short, we should add a new option for specifying one or more registries (and use the default registries otherwise), plus another option to disable using the default registries if desired. I imagine we'll still want to prioritize using local WIT files if provided.

Contributor guide

Open the contributing guide

Research direction

Trace componentize-py's current WIT and world-resolution entry point, then review how wasm-pkg-tools queries default and explicitly supplied registries. Done means published worlds such as wasi:cli/command@0.2.0 can be resolved without local WIT files, custom registries and disabling defaults are supported, and local WIT files retain priority; add or run coverage for these cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust, wasm
Domain
build-system, cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.