Skip to content

wasi-http proxy components don't conform to their world as of nightly-2025-12-10 #150120

@dgohman-fastly

Description

@dgohman-fastly

This minimal repro repository contains a program to be built with --target=wasm32-wasip2. It uses a build.rs script to select the proxy adapter, intending to conform to the wasi:http/proxy world.

With Rust nightly-2025-12-09 and earlier, the compiled component conforms to the wasi:http/proxy world.

With Rust nightly-2025-12-10 and later, the compiled component contains imports not in the wasi:http/proxy world.

$ wasm-tools component wit target/wasm32-wasip2/debug/main.wasm  | grep 'import.*terminal'
  import wasi:cli/terminal-input@0.2.4;
  import wasi:cli/terminal-output@0.2.4;
  import wasi:cli/terminal-stdin@0.2.4;
  import wasi:cli/terminal-stdout@0.2.4;
  import wasi:cli/terminal-stderr@0.2.4;

These imports are not present in the wasi_snapshot_preview1.proxy.wasm adapter that's used.

Meta

The specific compiler versions are:

Works as expected with:
$ rustc +nightly-2025-12-09 --version
rustc 1.94.0-nightly (37aa213 2025-12-08)

Unexpected imports with:
$ rustc +nightly-2025-12-10 --version
rustc 1.94.0-nightly (c61a3a4 2025-12-09)

From a quick scan of the commits in that range, #147572 seems most likely to be relevant. @alexcrichton

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.O-wasip2Operating System: WASI Preview 2 (*-wasip2)needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions