TL;DR
Endive is a new WebAssembly runtime built for the JVM, offering native-like performance without native dependencies. It is designed to improve safety and ease of use for Java developers integrating WebAssembly.
Endive, a JVM-native WebAssembly runtime, has been announced as an open-source project designed to run WebAssembly programs without native dependencies or JNI, making it easier for Java developers to embed Wasm in their applications.
Endive is a fork of Chicory by Dylibso, Inc., and is developed to address the limitations of existing WebAssembly runtimes that rely on native code, such as V8 or Wasmtime. Unlike these, Endive runs entirely within the JVM, eliminating distribution and runtime friction associated with native libraries. It supports core WebAssembly specifications and aims to provide a safe, simple, and idiomatic way to execute Wasm modules in Java environments.
The project emphasizes safety, simplicity, and compatibility, targeting Java developers who need to embed WebAssembly without sacrificing JVM security guarantees. Endive is built with a modular architecture, supporting features like SIMD, tail calls, exception handling, and multithreading, with ongoing development to support performance enhancements and advanced features.
Why It Matters
This development matters because it could significantly streamline the integration of WebAssembly into Java applications, reducing complexity and increasing portability. By avoiding native dependencies, Endive offers a more secure and consistent environment, especially for enterprise and cloud-native Java applications that require strict security and deployment controls. It also aims to become the default runtime for WebAssembly on the JVM, potentially influencing future standards and adoption.
Java WebAssembly runtime
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Background
WebAssembly has gained popularity as a portable, secure binary format for web and server applications. Existing runtimes like V8, Wasmtime, and Wasmer are widely used but depend on native code, complicating deployment in Java environments. Chicory, introduced in September 2023, was an early effort to create a pure JVM runtime, and Endive builds on this foundation, aiming for broader adoption and feature completeness. The project is part of a larger trend toward zero-dependency runtimes that prioritize safety and simplicity in enterprise settings.
“Endive is designed to run WebAssembly modules natively on the JVM, with no native dependencies, making it easier and safer for Java developers to embed Wasm.”
— Benjamin Eckel, Dylibso Inc.
“Endive aims to be the default runtime for WebAssembly on the JVM, supporting core specs and advanced features while maintaining safety and ease of use.”
— Andrea Peruffo, Devoxx BE 2024
WebAssembly development tools for Java
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What Remains Unclear
Details about the current stability, performance benchmarks, and full feature set of Endive are still emerging. It is not yet clear how it compares in performance to native runtimes or how quickly it will achieve widespread adoption.
Java JVM WebAssembly modules
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What’s Next
Next steps include further development toward version 1.0, expanding feature support like SIMD and tail calls, and community testing. The project is open for contributions, and users are encouraged to follow the official documentation and join the Zulip chat for updates.
WebAssembly runtime without native dependencies
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What is Endive?
Endive is a JVM-native WebAssembly runtime designed to run Wasm modules without native dependencies, making WebAssembly integration in Java applications easier and safer.
How does Endive differ from existing WebAssembly runtimes?
Unlike runtimes like V8 or Wasmtime, Endive runs entirely within the JVM, avoiding native code and FFI, which simplifies deployment and enhances security.
Is Endive ready for production use?
Endive is currently in development with ongoing feature additions and stability improvements. It is not yet confirmed as production-ready but aims to reach that stage soon.
What features are planned for future releases?
Planned features include SIMD support, tail call optimization, exception handling, and performance enhancements like support for WASIp2.
How can I get involved or learn more?
Developers can follow the project on GitHub, join the Zulip chat, and contribute to ongoing development efforts. Official documentation is available for starting with Endive.
Source: Hacker News