Skip to content
HN On Hacker News ↗

GitHub - bytecodealliance/endive: A JVM native WebAssembly runtime

▲ 110 points 40 comments by theanonymousone 3mo ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 3 of 3
SEGMENTS · AI 0 of 3
WORD COUNT 637
PEAK AI % 0% · §2
Analyzed
May 28
backend: pangram/v3.3
Segments scanned
3 windows
avg 212 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 637 words · 3 segments analyzed

Human AI-generated
§1 Human · 0%

Endive is a JVM native WebAssembly runtime. It allows you to run WebAssembly programs with zero native dependencies or JNI. Endive can run Wasm anywhere that the JVM can go. It is designed with simplicity and safety in mind. Endive is a fork of Chicory by Dylibso, Inc. We thank Dylibso for the incubation period and their foundational work on this project.

Reach out to us: let us know what you are building with Endive. Join our Zulip chat.

Get started now with the official documentation Why? There are a number of mature Wasm runtimes to choose from to execute a Wasm module. To name a few v8, wasmtime, wasmer, wasmedge, wazero etc. Although these can be great choices for running a Wasm application, embedding them into your existing Java application has some downsides. Because these runtimes are written in C/C++/Rust/etc, they must be distributed and run as native code. This causes two main friction points: 1. Distribution If you're distributing a Java library (jar, war, etc), you must now distribute along with it a native object targeting the correct architecture and operating system. This matrix can become quite large. This eliminates a lot of the simplicity and original benefit of shipping Java code. 2. Runtime At runtime, you must use FFI to execute the module. When you do, you're effectively escaping the safety and observability of the JVM. Having a pure JVM runtime means all your security and memory guarantees, and your tools, can stay in place. Goals

Be the default runtime for Wasm on the JVM Be as safe as possible Make it easy to run Wasm in any JVM environment without native code, including very restrictive environments Fully support the core Wasm spec Make integration with Java (and other host languages) easy and idiomatic

Roadmap Endive development builds on years of work started in September 2023 as Chicory. If you have an interest in working on any of these please reach out in Zulip!

§2 Human · 0%

Completed

Wasm binary parser Simple bytecode interpreter Generate JUnit tests from wasm test suite All tests green with the interpreter (correctness) Validation logic (safety) v1.0 API (stability and dx) Decoupled interpreter and compiler "engines" Build-time compiler passes all the same specs as interpreter WASIp1 Support (including test gen) SIMD Support Tail Call (interpreter and compiler) Compiler out of experimental Exception Handling Threads Support Extended Constant Expressions GC support Multi-Memory Support

Ongoing

Performance WASIp2 Support

On the press

Chicory: A Zero Dependency Wasm Runtime for the JVM on Java Advent 2023 Chicory - a WebAssembly Interpreter Written Purely in Java with Zero Native Dependencies on InfoQ Chicory: Write to WebAssembly, Overcome JVM Shortcomings on The New Stack Meet Chicory, exploit the power of WebAssembly on the server side! by Andrea Peruffo (Devoxx BE 2024) WebAssembly, the Safer Alternative to Integrating Native Code in Java on InfoQ Chicory: Creating a Language-Native Wasm Runtime by Benjamin Eckel / Andrea Peruffo (Wasm I/O 2024) Chicory, a JVM Native WebAssembly Runtime by Benjamin Eckel (Dylibso Insiders) WebAssembly the ace up the sleeve of your Java and Quarkus apps (Quarkus Insights 206) The Chicory Photo Album: Celebrating 1.0.0 and a Year of Wasm on Java Advent 2024 Wazero vs Chicory: An In-Depth Comparison Between Two Language-Native Wasm Runtimes by Edoardo Vacchi (FOSDEM 2025) WASM in the Enterprise: Secure, Portable, and Ready for Business by Andrea Peruffo (QCon London 2025) A Go CEL Policy Engine in Java, with Quarkus Chicory on Quarkus Blog Introduction to the Chicory Native JVM WebAssembly Runtime on Baeldung Bring WebAssembly to the JVM.

§3 Human · 0%

How Chicory Is Powering a New Generation of Java Libraries on Java Advent 2025 The State of Zero-Dependency Wasm: A 2026 Update from Wazero and Chicory (Wasm I/O 2026)

Prior Art

asmble kwasm wazero

Who uses Endive? See ADOPTERS.md for the full list of organizations and projects using Endive.