Hi everyone!
We’ve been experimenting with the WebAssembly Component Model in Kotlin/Wasm and ported the wasi-http sample using our early version:
https://github.com/Kotlin/sample-wasi-http-kotlin/
Still early, but we would be happy to hear feedback, especially around component model integration, WIT usage, and anything that looks off.
Some techincal details about the demo:
wasm-tools.[1]: https://github.com/Kotlin/wit-bindgen
The resulting component size is ~62 KB.
For comparison, a similar app built in Rust is 200+ KB.
Performance-wise, it’s not that impressive yet -- the Kotlin version is about 10x slower.
I guess the main reason is that we need to do more copying on the boundaries due to the lack of GC ABI.
Details to be investigated.
@Zalim Bashorov (Kotlin_, JetBrains) is this with gc? if so i would be interested in hearing about component model and gc :)
ah i see your last message mentions copies. yes that makes sense
very impressive size result!!
Just in case, the issue (#525) about Wasm GC in CM ABI with a Pre-Proposal
This is awesome! A quick skim of the wit-bindgen bits and it all looks quite reasonable to me, and if y'all are interested I think it'd definitely make sense to live upstream too. No pressure either way, and it's great to see the progress here!
Last updated: Mar 23 2026 at 16:19 UTC