<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Andrea Peruffo on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/andrea-peruffo/</link><description>Articles written by Andrea Peruffo on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 29 Jun 2026 00:11:00 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/andrea-peruffo/index.xml" rel="self" type="application/rss+xml"/><item><title>Endive 1.0 Is Here: Wasm on the JVM Ships Under the Bytecode Alliance</title><link>https://foojayio.github.io/website/today/endive-1-0-wasm/</link><pubDate>Mon, 29 Jun 2026 00:11:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/endive-1-0-wasm/</guid><description>&lt;p&gt;A few weeks ago, we wrote about &lt;a href="https://foojayio.github.io/website/today/a-new-generation-of-java-libraries-is-born-wasm-becomes-the-implementation-detail/"&gt;a new generation of Java libraries&lt;/a&gt;
 powered by WebAssembly. SQLite, QuickJS, Protocol Buffers, the Ruby Prism parser, all compiled to Wasm and shipped as regular JARs. No JNI, no platform-specific binaries. Wasm as an implementation detail.&lt;/p&gt;
&lt;p&gt;Today, the runtime that makes it all work has its first official release under the &lt;a href="https://bytecodealliance.org/" target="_blank" rel="noopener noreferrer"&gt;Bytecode Alliance&lt;/a&gt;
. &lt;strong&gt;&lt;a href="https://endive.run/blog/endive-1.0" target="_blank" rel="noopener noreferrer"&gt;Endive 1.0&lt;/a&gt;
&lt;/strong&gt; is available on Maven Central.&lt;/p&gt;
&lt;h2 id="h2-0-what-shipped"&gt;What Shipped&lt;/h2&gt;
&lt;p&gt;Endive continues the work started as &lt;a href="https://github.com/dylibso/chicory" target="_blank" rel="noopener noreferrer"&gt;Chicory&lt;/a&gt;
, the pure-Java WebAssembly runtime that has been powering this ecosystem since 2023. Same API, same community, same codebase. The move to the Bytecode Alliance is organizational, not technical. For details on the fork and governance, see the &lt;a href="https://bytecodealliance.org/articles/endive-and-the-next-chapter-of-webassembly-on-the-jvm" target="_blank" rel="noopener noreferrer"&gt;announcement article&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Foojay Podcast #98: The End of JNI Pain: How WebAssembly Is Quietly Replacing Native Libraries in Java</title><link>https://foojayio.github.io/website/today/foojay-podcast-98/</link><pubDate>Mon, 15 Jun 2026 08:13:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-98/</guid><description>&lt;p&gt;WebAssembly is already running inside Java applications, most developers just don&amp;rsquo;t know it yet. In this episode, Andrea Peruffo walks us through how WebAssembly is becoming the modern, safe alternative to JNI: letting you run Rust, C, and other native libraries directly on the JVM, without the crash risks, the per-platform distribution headaches, or the observability blackhole that JNI creates. From JRuby&amp;rsquo;s Prism parser to SQLite and Postgres running as pure Java bytecode, the use cases are real and the project Endive, under the Bytecode Alliance, is ready to explore.&lt;/p&gt;</description></item><item><title>A New Generation of Java Libraries Is Born: Wasm Becomes the Implementation Detail</title><link>https://foojayio.github.io/website/today/a-new-generation-of-java-libraries-is-born-wasm-becomes-the-implementation-detail/</link><pubDate>Tue, 26 May 2026 13:00:47 +0000</pubDate><guid>https://foojayio.github.io/website/today/a-new-generation-of-java-libraries-is-born-wasm-becomes-the-implementation-detail/</guid><description>&lt;p&gt;If you&amp;rsquo;re running JRuby in production, you&amp;rsquo;re running WebAssembly. If TrinoDB is evaluating your Python UDFs, that&amp;rsquo;s WebAssembly too. If Microcks is running JavaScript dispatchers to route your mock API responses, WebAssembly is doing the work.&lt;/p&gt;
&lt;p&gt;You didn&amp;rsquo;t install a native binary. You didn&amp;rsquo;t configure JNI. You didn&amp;rsquo;t cross-compile anything for your target platform. It just works, because the Wasm module is hiding inside a regular JAR on your classpath.&lt;/p&gt;</description></item></channel></rss>