Since the announcement of Endive, several people have reached out expressing interest in contributing Component Model support.
I’ve opened this repo to help facilitate the conversation and give the community a place to quickly iterate on a prototype: https://github.com/roastedroot/endive-cm
Anyone interested is very welcome to join and contribute!
@andreaTP Congratulations on Endive! I have a project that I'm working on that will have a interesting use for Endive especially if it supports components.
I noticed you gave a shutout on the endive-cm page. Thanks
I've been testing chicory/endive recently to create a plugin system for a player similar to Kodi, only based on security, and so far it looks really promising. Component Model looks really promising, i could harden the SDK on WIT bindings.
CM support is barely started, all the help is welcome!
@andreaTP Thanks for setting up this initial repo, it's a great jumpstart for getting things moving. The development phases you've outlined are really helpful.
If nobody else already has it in progress, I'd like to go ahead and get started on the type model, parser, and some supporting parts of the wasm-tools component commands (I think validation in particular). I've already got a version of all of these in progress in a private experimental repo that takes a slightly different approach, and it should be a fairly straightforward task to port the code over to fulfill the patterns that you've outlined and transform it to a more "endive native" approach. I would try to do this in somewhat of an incremental manner in order to keep PR sizes reasonable.
To facilitate this development, I think it would also be useful to go ahead and set up some spec testing infrastructure, incorporating wast tests from https://github.com/WebAssembly/component-model/tree/main/test - I'll take a deeper look at the spec testing infrastructure in the main endive project and see what can be re-used and what patterns can be replicated.
Hi @Jeremy Grelle sorry for the delay, great to see you around!
The development phases
Feel free to iterate on the document, it's just an initial plan.
If nobody else already has it in progress
Please go ahead, and thanks a lot!
incorporating wast tests
That's a great idea! Feel free to add it very very early to the plan.
In endive we are generating unit tests and assertions out of the wast files, feel free to replicate/re-use as much as possible the infrastructure.
Very much still a work-in-progress, but I've gone ahead and pushed the beginnings of this work to a branch in my personal endive-cm fork:
https://github.com/jeremyg484/endive-cm/tree/types-and-parser
I've basically set up just enough plumbing and infrastructure to make progress on the type model and parser, and have thus far implemented component validation (via wasm-tools) and the parsing for a decent chunk of the <core:type> section.
@andreaTP I see two different ways of proceeding and wonder if you have a preference?
Hey @Jeremy Grelle ! Thanks for the help, I skimmed through and I like it!
I think the size is great for a first PR
andreaTP napisał:
CM support is barely started, all the help is welcome!
I'm currently processing the entire runtime, as you can see. Unfortunately, I needed cross-platform support, so Maven and Java were no longer an option.
https://github.com/Shusek/kotlin-runtime-web-assembly
Chasm is an interpreter focusing on kotlin multi-platform support: https://github.com/CharlieTap/chasm
Were you planning on adding CM support directly to Endive or layering it on top? I might be able to spare some cycles for that effort.
I'm still not quite ready to release it yet but I successfully got my JDK running under webassembly with wasmtime4j and Endive. It's a Java running in Wasm running in Java using Endive. I was able to sandbox log4j with facade jar and demonstrate that it successfully protects against the log4shell cve. In addition it's able to log any attempt to access denied capabilities that provide a signal of attempted compromise. Initial testing shows a modest 16% overhead.
It runs with a full JIT but doing it is a little rough without the CM.
CM support started here:
https://github.com/roastedroot/endive-cm
It will eventually move to the main repo, so the plan is to add direct support in endive.
Looking forward for a blog about this exploration!
Last updated: Jul 29 2026 at 05:03 UTC