Skip to content

wasmtime serve: Support multiple sockets, unix sockets - #14320

Open
simolus3 wants to merge 3 commits into
bytecodealliance:mainfrom
simolus3:serve-unix-sockets
Open

wasmtime serve: Support multiple sockets, unix sockets#14320
simolus3 wants to merge 3 commits into
bytecodealliance:mainfrom
simolus3:serve-unix-sockets

Conversation

@simolus3

Copy link
Copy Markdown
Contributor

This changes wasmtime serve to add support for

  1. Listening on multiple sockets: wasmtime serve currently serves http requests from a single TCP server. This adds support for multiple server sockets, which is useful to e.g. listen for both ipv4 and ipv6 connections, e.g. with wasmtime serve app.wasm --addr 127.0.0.1:8080 --addr [::1]:8080. Multiple sockets can also be inherited via --systemd-listenfd.
  2. Unix domain sockets. In setups where wasmtime serve runs behind a reverse proxy, using unix sockets instead of TCP is simpler and likely faster. With this PR, unix sockets can be inherited via --systemd-listenfd. This avoids having to parse both file paths and ip addresses from parameters, but maybe it makes sense to do that as well.

Support for multiple sockets is implemented by spawning one task per socket that otherwise runs the existing request loop. To avoid concurrency for debugging setup, that still runs outside of a concurrent task (and thus only supports a single socket).

@simolus3
simolus3 requested a review from a team as a code owner September 11, 2026 19:40
@simolus3
simolus3 requested review from dicej and removed request for a team September 11, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant