LmCast :: Stay tuned in

Endive: A JVM native WebAssembly runtime

Recorded: May 28, 2026, 8:03 p.m.

Original Summarized

GitHub - bytecodealliance/endive: A JVM native WebAssembly runtime · GitHub

Skip to content

Navigation Menu

Toggle navigation

Sign in

Appearance settings

PlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub SparkBuild and deploy intelligent appsGitHub ModelsManage and compare promptsMCP RegistryNewIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityAcceleratorGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback


We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

bytecodealliance

/

endive

Public

Notifications
You must be signed in to change notification settings

Fork
2

Star
30

Code

Issues
9

Pull requests
0

Actions

Projects

Security and quality
0

Insights

Additional navigation options

Code

Issues

Pull requests

Actions

Projects

Security and quality

Insights


bytecodealliance/endive

 mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History1,422 Commits1,422 Commits.github.github  .mvn.mvn  android-testsandroid-tests  annotationsannotations  bombom  build-time-compiler-clibuild-time-compiler-cli  build-time-compilerbuild-time-compiler  clicli  codegencodegen  compiler-maven-plugincompiler-maven-plugin  compiler-testscompiler-tests  compilercompiler  dircachedircache  docs-libdocs-lib  docsdocs  fuzzfuzz  jmhjmh  loglog  logoslogos  machine-testsmachine-tests  nightly-testsuitenightly-testsuite  runtime-testsruntime-tests  runtimeruntime  scriptsscripts  simdsimd  test-gen-libtest-gen-lib  test-gen-plugintest-gen-plugin  wabtwabt  wasi-test-gen-pluginwasi-test-gen-plugin  wasi-testswasi-tests  wasiwasi  wasm-corpuswasm-corpus  wasm-toolswasm-tools  wasmwasm  .gitignore.gitignore  .gitmodules.gitmodules  ADOPTERS.mdADOPTERS.md  AGENT.mdAGENT.md  CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md  CONTRIBUTING.mdCONTRIBUTING.md  LICENSELICENSE  NOTICENOTICE  README.mdREADME.md  SECURITY.mdSECURITY.md  endive.pngendive.png  jitpack.ymljitpack.yml  mvnwmvnw  mvnw.cmdmvnw.cmd  pom.xmlpom.xml  View all filesRepository files navigationREADMECode of conductContributingApache-2.0 licenseSecurityEndive

A Bytecode Alliance hosted project

Website |
Getting started |
Blog |
Contributing

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!
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. 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.

About

A JVM native WebAssembly runtime

endive.run/

Topics

java

webassembly

wasm

Resources

Readme

License

Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy

Uh oh!

There was an error while loading. Please reload this page.


Activity

Custom properties
Stars

30
stars
Watchers

1
watching
Forks

2
forks

Report repository

Releases
No releases published

Uh oh!

There was an error while loading. Please reload this page.


Contributors

Uh oh!

There was an error while loading. Please reload this page.


Languages

Java
93.7%

WebAssembly
4.9%

Shell
0.5%

Rust
0.3%

Dockerfile
0.2%

JavaScript
0.1%

Other
0.3%

Generated from bytecodealliance/ba-template

Footer

© 2026 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Community

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

Endive is presented as a JVM native WebAssembly runtime designed to execute WebAssembly programs without relying on any native dependencies or the use of JNI. The project aims to run WebAssembly code within any environment compatible with the Java Virtual Machine, prioritizing simplicity and safety in its design. It is explicitly positioned as a fork of Chicory by Dylibso, Inc., acknowledging their foundational contributions to the development of this technology.

The motivation behind creating Endive stems from the friction points encountered when integrating established WebAssembly runtimes, such as v8, wasmtime, wasmer, and wasmedge, into existing Java applications. These existing runtimes, being implemented in languages like C/C++/Rust, introduce significant challenges regarding distribution and runtime safety. Specifically, distributing a Java library necessitates distributing associated native objects, complicating distribution matrices. Furthermore, utilizing these native runtimes at runtime requires Foreign Function Interfaces (FFI), which compromises the security and observability guarantees inherent in the JVM. Endive seeks to resolve these issues by establishing a pure JVM runtime, ensuring that all security and memory guarantees remain within the JVM context while enabling WebAssembly execution.

The overarching goals for Endive are centered on establishing a superior standard for WebAssembly execution on the JVM. These goals include becoming the default runtime for WebAssembly on the JVM, maximizing safety, enabling the execution of WebAssembly in any JVM environment without requiring native code, ensuring full support for the core WebAssembly specification, and making integration with Java and other host languages idiomatic and easy.

The development roadmap details the progress made in achieving these objectives, building upon work initiated in September 2023. Completed features include the development of a Wasm binary parser, a simple bytecode interpreter, the generation of JUnit tests from Wasm test suites, validation logic for safety, the establishment of a v1.0 API for stability and extensibility, and the creation of decoupled interpreter and compiler engines where build-time compiler passes adhere to the same specifications as the interpreter. Further completed achievements involve support for WASIp1, SIMD, tail calls within both the interpreter and compiler, exception handling, support for threads, extended constant expressions, garbage collection support, and multi-memory support. Ongoing development focuses on performance improvements and the support for WASIp2.

The project leverages a substantial contributor base, with the repository showing a strong focus on the Java language, which accounts for approximately ninety-three point seven percent of the contributors. Endive aims to provide a secure, portable, and integrated solution for leveraging WebAssembly capabilities within the established environment of the JVM ecosystem.