From fc95bc10ea4cd252fc5cf9e3d409613778d41688 Mon Sep 17 00:00:00 2001 From: andreatp Date: Tue, 23 Jun 2026 13:56:38 +0100 Subject: [PATCH] docs: add Endive 1.0 release blog post Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/blog/2026-06-25-endive-1.0.md | 63 ++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs/blog/2026-06-25-endive-1.0.md diff --git a/docs/blog/2026-06-25-endive-1.0.md b/docs/blog/2026-06-25-endive-1.0.md new file mode 100644 index 00000000..135ead3f --- /dev/null +++ b/docs/blog/2026-06-25-endive-1.0.md @@ -0,0 +1,63 @@ +--- +slug: endive-1.0 +title: 'Endive 1.0: WebAssembly on the JVM, Now a Bytecode Alliance Project' +authors: [andreaTP] +tags: [wasm, endive, release] +--- + +We're excited to announce **Endive 1.0**, the first release of the project under the [Bytecode Alliance](https://bytecodealliance.org/). Endive is a pure-Java WebAssembly runtime with zero native dependencies, continuing the work started as Chicory. For background on the move, see the [announcement article](https://bytecodealliance.org/articles/endive-and-the-next-chapter-of-webassembly-on-the-jvm). If you're migrating from Chicory, the [migration guide](/docs/migration/from-chicory) has you covered. + + + +## WasmGC Host Integration + +Endive 1.0 redesigns how WasmGC objects are handled when they cross the boundary between Wasm and Java. Structs, arrays, and `externref` values that flow across the host boundary are now managed by the JVM garbage collector directly, instead of living in a separate store with manual lifecycle management. This makes WasmGC on the JVM feel native: GC objects behave like any other Java object. + +The annotation processor now supports `externref` as plain `Object`, so host functions work naturally with GC types without extra wiring. + +**If you pass WasmGC types across the host boundary, your code may need a small update.** The runtime surfaces clear warnings to guide you through the change. See [#55](https://github.com/bytecodealliance/endive/pull/55) for details. + +## Tail Call Optimizations + +Community-contributed fixes have improved tail call correctness, and the compiler now optimizes tail-call dispatch by eliminating unnecessary stack frame allocation. CPython 3.14, which adopted tail calls in its interpreter loop, is the main beneficiary. + +## Migrating from Chicory + +For most users, migrating is a find-and-replace. Maven coordinates move from `com.dylibso.chicory` to `run.endive`, Java packages move from `com.dylibso.chicory.*` to `run.endive.*`, and two exception classes have been renamed (`ChicoryException` to `WasmEngineException`, `ChicoryInterruptedException` to `WasmInterruptedException`). The [migration guide](/docs/migration/from-chicory) covers the full list, including Maven plugin goals, system properties, and CLI binary names. + +If you use WasmGC types at the host boundary, see the section above. + +## What's Ahead + +Community members have already started prototyping Component Model support at [endive-cm](https://github.com/roastedroot/endive-cm). Anyone interested is welcome to contribute. Follow [#52](https://github.com/bytecodealliance/endive/issues/52) for updates. Cranelift-based native compilation is also in the works, bringing near-native execution speed while preserving the pure-Java packaging experience. + +## Acknowledgements + +We'd like to thank [Dylibso](https://dylibso.com/) for creating [Chicory](https://github.com/dylibso/chicory), incubating the project through its early years, and building the community that made this transition possible. + +Thank you to every contributor who has shipped code, reported bugs, tested pre-releases, and pushed WebAssembly forward on the JVM. The [adopters list](https://github.com/bytecodealliance/endive/blob/main/ADOPTERS.md), from JRuby to Trino, from Bazel to Apache Camel, is the best evidence that this runtime is solving real problems. + +## Getting Started + +```xml + + + + run.endive + bom + 1.0 + pom + import + + + + + + run.endive + runtime + +``` + +[Documentation](https://endive.run/docs/) | [GitHub](https://github.com/bytecodealliance/endive) + +We'd love to hear what you're building. [Join the conversation on Zulip](https://bytecodealliance.zulipchat.com/#narrow/stream/endive) and let us know how it goes.