This talk will outline how and why we created Chicory: a JVM native Wasm runtime. You should walk away with an understanding of what it takes to create a language-native runtime and why you might want to create one for your own language.
There are a number of mature Wasm runtimes to choose from to execute a Wasm module. To name a few v8, wasmtime, wasmer, wasmedge, etc.
Although these can be great choices for running a Wasm application, embedding them into your existing application has some downsides. Because these runtimes are written in C/C++/Rust/etc, they must be distributed and run as native code. This can cause a lot of additional friction and restrictions in a JVM application. And similar problems exists in other ecosystems as well (see Golang and Wazero).
In this talk we will outline what these problems are and how building a language-native runtime can solve them. We’ll also discuss what work is involved in creating a new runtime and what we have learned from the Wazero project.