TL;DR

Endive is a newly released JVM-native WebAssembly runtime that runs WebAssembly modules without native code or JNI dependencies. It aims to improve safety, simplicity, and integration for Java developers working with WebAssembly.

Endive, a JVM-native WebAssembly runtime, has been officially announced, enabling WebAssembly execution within Java environments without native dependencies or JNI, aiming to improve safety and simplicity for developers.

Endive is a fork of Chicory, developed by Dylibso, Inc., and provides a pure JVM implementation for running WebAssembly modules. Unlike existing runtimes such as v8, wasmtime, or wasmer, Endive does not require native code or platform-specific binaries, reducing distribution complexity and enhancing security.

Designed with simplicity and safety as core principles, Endive allows WebAssembly programs to run anywhere the JVM can operate, including restrictive environments. It supports the core WebAssembly specification and aims to facilitate easier integration with Java and other JVM languages.

The development of Endive builds on years of work from Chicory, which started in September 2023, and includes features such as a binary parser, bytecode interpreter, and support for WebAssembly test suites. Future plans involve supporting SIMD, tail calls, exception handling, garbage collection, multi-memory, and performance enhancements through ongoing development efforts.

Why It Matters

This development matters because it addresses key challenges in embedding WebAssembly into Java applications. By eliminating native dependencies, Endive simplifies distribution and deployment, especially in environments with restrictions on native code execution. It also preserves JVM security guarantees, making WebAssembly more accessible for enterprise and server-side use cases.

As WebAssembly gains adoption for secure, portable, and high-performance applications, having a JVM-native runtime like Endive broadens its applicability within the Java ecosystem, potentially influencing future standards and tooling for WebAssembly integration.

Amazon

WebAssembly runtime for Java

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Prior to Endive, most WebAssembly runtimes relied on native code, such as v8 or wasmtime, which complicates distribution and introduces security considerations when embedded in Java applications. Chicory, the predecessor to Endive, demonstrated the feasibility of a pure Java WebAssembly interpreter, laying groundwork for this new runtime.

The release of Endive represents a step toward making WebAssembly more native to the JVM, aligning with ongoing industry efforts to improve WebAssembly portability and safety, especially in enterprise settings. The project is part of a broader trend of developing language-native WebAssembly runtimes that avoid native dependencies.

“Endive is designed to be the default runtime for WebAssembly on the JVM, emphasizing safety, simplicity, and ease of integration.”

— Benjamin Eckel, Dylibso

“By removing native dependencies, Endive reduces distribution complexity and enhances security for Java applications embedding WebAssembly.”

— Dylibso development team

Amazon

Java WebAssembly interpreter

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It is not yet clear how widely Endive will be adopted or how it will perform in production environments compared to established runtimes. Details about future milestones, such as full feature support or performance benchmarks, remain to be seen as development continues.

Amazon

WebAssembly development tools for Java

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Next steps include further development of Endive’s features, integration testing within Java projects, and gathering user feedback. Developers and organizations interested in WebAssembly on the JVM are encouraged to follow updates and participate in the project’s community channels.

Amazon

Java JVM WebAssembly runtime

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

What are the main advantages of Endive over existing WebAssembly runtimes?

Endive offers a native JVM implementation that eliminates native dependencies, simplifying distribution, enhancing security, and enabling WebAssembly execution in restrictive or embedded Java environments.

Is Endive fully compliant with the WebAssembly specification?

Endive aims to fully support the core WebAssembly specification, with ongoing development plans to include advanced features like SIMD, tail calls, and exception handling.

Can Endive be used in production applications now?

While Endive is actively developed with stability goals, it is recommended to evaluate its readiness in controlled environments before deploying in production, as some features are still under development.

How does Endive compare performance-wise to native runtimes?

Performance benchmarks are still being established. Early indications suggest competitive performance, but comprehensive testing will determine its suitability for high-performance use cases.

Where can I learn more or contribute to Endive?

Developers and interested organizations can visit the official GitHub repository and join the project’s Zulip chat for community engagement and updates.

Source: Hacker News

You May Also Like

How Scanner Sensor Type Changes Reproduction Quality

Discover how scanner sensor types influence image quality and why choosing the right one is crucial for optimal reproduction results.

Building a web server in aarch64 assembly to give my life (a lack of) meaning

A developer has created a static HTTP web server entirely in Aarch64 assembly on MacOS, exploring low-level system calls and server mechanics.

Zeroserve: A zero-config web server you can script with eBPF

Zeroserve is a fast, zero-config HTTPS server that uses eBPF for request scripting, serving sites directly from a tarball with hot reload and modern TLS.

Jank now has its own custom IR

Jank introduces its own high-level IR to enhance performance and compete with JVM, marking a significant step in its compiler development.