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)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions