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 (otherwise dotnet 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 for https endpoints).
- Enable minimal APIs (for handling Web requests).
More detailed work breakdown #65895
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
runtimeconfig.templatefile.PublishAot.Running
dotnet run(otherwisedotnet runisn't generally useful).dotnet run"helpful" output.Programmability
HttpClientas-is (particularly forhttpsendpoints).More detailed work breakdown #65895