Open
Description
WASI Developer Experience Goals
WebAssembly System Interface is an exciting technology. Lots of work has already gone into enabling C# with WASI.
dotnet/runtime #65895 defines a set of low-level requirements for providing a working implementation. We can up-level that into a set of developer experience goals.
The following are proposed changes in various categories. Please propose your own.
Related (interview about WASI and C#): https://www.youtube.com/watch?v=fnAjxzMPPqk
Building
- Remove requirement for
runtimeconfig.template
file. - Enable building single file wasm files by default (which may require installing the WASI SDK with the workload).
- Enable publishing AOT with a gesture similar to
PublishAot
.
Running
- Enable using Wasm runtime args with
dotnet run
(otherwisedotnet run
isn't generally useful). - Remove the existing
dotnet run
"helpful" output.
Programmability
- Enable importing popular WASI functionality (possibly worlds) as NuGet packages.
- Import other WASI functionality with a reference to a WIT file.
- Import Preview 2 components.
- Enable async with WASI interfaces.
- Enable
HttpClient
as-is (particularly forhttps
endpoints). - Enable minimal APIs (for handling Web requests).
More detailed work breakdown #65895