Transpiling WebAssembly modules into .NET assemblies

EN / День 1 / 19:00 / Зал 4

Wasm2cil can convert a WebAssembly module into a .NET assembly on disk. The resulting DLL is not interpreted — it contains the same functions as the WebAssembly module, translated from Wasm instructions to CIL instructions. The dependency on the WASI "system calls" is provided with a C# implementation of those calls in a supporting assembly.

This talk would include:

  • an overview of WebAssembly and WASI;
  • deep dive into some contrasts between the Wasm instruction set and CIL;
  • discussion of implementing WASI with .NET;
  • wasm2cil architecture and how it works.

Technologies covered or mentioned will include WebAssembly (Wasm), WASI, Wasmtime, Mono.Cecil, CIL, .NET Core, Rust. In addition, wasm2cil itself is implemented with a mixture of F# and C#, but I do not plan to speak about F# issues.

The subject matter of this talk is rather advanced, so the target audience is experienced .NET developers, ideally with some previous understanding of CIL and the CLR.

Комментарий программного комитета

Эрик Синк — один из ветеранов программирования. Среди его разработок — Spyglass, предтеча браузера Microsoft Exporer, а также система контроля версий SourceVault, появившаяся еще до гегемонии Git. В то время как многие программисты работают над трансляцией кода в Web Assembly, Эрик взялся за противоположную задачу — перевод модулей Web Assembly на платформу .NET. Как этого достичь и как использовать результаты достигнутого? Обо всем этом вы узнаете на докладе.

Скачать презентацию