WebAssembly / WebAssembly/WASI
[1.0] Replace `wasi:http@0.3` `handler` / `client` split with single interface using `implements`
Open
Nobody has claimed this yet.
P-http
proposal
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 333
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 3
Description
This split was a workaround for the absence of implements which could be resolved in 1.0:
https://github.com/WebAssembly/WASI/blob/main/proposals/http/wit/worlds.wit#L104-L108
/// The type signature of `client.send` is the same as `handler.handle`. This
/// duplication is currently necessary because some Component Model tooling
/// (including WIT itself) is unable to represent a component importing two
/// instances of the same interface. A `client.send` import may be linked
/// directly to a `handler.handle` export to bypass the network.
Contributor guide
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.
Research direction
Start with the WIT definition linked at proposals/http/wit/worlds.wit, especially lines 104-108, and read the surrounding handler and client declarations. Determine how the 1.0 implements form should replace the duplicated split interface. Done means the HTTP proposal uses one interface with implements and no longer needs the workaround described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- wasm
- Domain
- api
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100