-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Description
WASI 0.2.0 introduces two new networking APIs: wasi-sockets (for TCP/UDP networking and hostname lookup) and wasi-http (a high-level API for handling inbound HTTP requests and sending outbound ones). Ideally, the WASI port of the .NET should support both.
Dave Bakker and I have implemented wasi-sockets
in a temporary fork of wasi-libc
, and I'm currently in the process of incrementally merging that work upstream, with the aim of making it available as part of the forthcoming WASI-SDK 22 release. I've also created temporary forks of Rust and CPython based on the wasi-libc
work and plan to upstream those changes as well. Similarly, I'm hoping it will be straightforward to add wasi-sockets
support to .NET as well by way of the POSIX APIs provided by wasi-libc
.
Given that there's no C standard library or POSIX interface for HTTP, it won't be supported as part of wasi-libc
, so porting e.g. System.Net.Http
to use wasi-http
will presumably involve wrapping wit-bindgen
-generated C or C# code, depending on how solid the C# binding generator is.
I should note that I have close to zero experience with .NET, so I'm happy to defer to the experts here about the details of how all this should proceed. I'm also happy to learn and contribute as appropriate.