The Curious Engineer

All blogs / Compilers

Leaning Technologies Developer Hub

labs.leaningtech.com/blog

Read the latest updates from the Leaning Technologies development team about WebAssembly, compilers, and more.

CompilersJava / JVMC++Web development

Posts
50 from 11 Apr 2019 to 26 Oct 2026
Posting
monthly (11 in the last year)
Kind
company blog

2026 9

  1. BrowserCode: a browser-based coding playground, powered by WebAssembly BrowserCode is a free, open source, fully client-side coding playground. Open a tab, pick a template, clone a repo or pick an agent and start building. No account, no installs, no servers, no setup. Ana Gaby October 26, 2026
  2. Inside our internship program, Summer 2026 Edition Our interns reflect on their 6 month internships at Leaning Technologies Jules Saarikoski, Sarah McLacken, Bell Wong, Niko Sarmadakis October 8, 2026
  3. Beyond WASI: Running any Rust application in the browser with BrowserPod 3.0 BrowserPod can now run real Rust programs in the browser, compiled from unmodified source with stock rustc and cargo. Yuri Iozzelli August 13, 2026
  4. AI in the Box: Hackathon Recap A recap of the AI-in-the-Box Hackathon challenges, entries, and winners. Jaden Tellis June 22, 2026
  5. A Linux-like kernel in a browser tab - deep dive in the BrowserPod architecture How the BrowserPod kernel supports running many Linux applications concurrently in the browser using WebAssembly. Alessandro Pignotti May 18, 2026
  6. CheerpJ 4.3 - Run unmodified Java applications in the browser The latest release of our state-of-the-art Java runtime that runs completely in the browser via WebAssembly, is now available! Elisabeth Panholzer April 21, 2026
  7. BrowserPod 2.0: in-browser WebAssembly sandboxes. Run git, bash, node, python... BrowserPod 2.0 ships with a real bash shell, git, and core Linux utilities. Yuri Iozzelli April 16, 2026
  8. Inside our internship program, Winter 2025 Edition Our interns reflect on their 6 month internships at Leaning Technologies Jules Saarikoski, Alex von Benckendorff, Merlin de Cloe, Andres Madrid Ucha April 13, 2026
  9. BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) BrowserPod 1.0 is live: universal in-browser code sandboxes powered by WebAssembly. Node.js available today. Alessandro Pignotti February 18, 2026

2025 8

  1. BrowserPod: WebAssembly in-browser code sandboxes for Node, Python, and Rails BrowserPod Beta is live: zero latency in-browser code sandboxes in WebAssembly for Node, Python and Rails. Alessandro Pignotti, Stefano De Rossi December 11, 2025
  2. Inside our internship program: Our interns reflect on their experiences Our interns describe their 6 month internships at Leaning Technologies Jules Saarikoski, Oscar Mathot, Francesco Aru November 6, 2025
  3. Announcing CheerpJ: The Hackathon! The Java in the browser challenge is coming this autumn. Ana Gaby October 3, 2025
  4. BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm BrowserPod is a WebAssembly-based, client-side container technology that brings full-stack development environments to the browser. Pods run multiple processes with real concurrency, have a persistent block filesystem, and p
  5. CheerpJ 4.1: Java in the browser, now supporting Java 17 (preview) The latest release of our state-of-the-art Java runtime that runs completely in the browser via WebAssembly, is now available. Supports up to Java 17. Alessandro Pignotti, Stefano De Rossi May 28, 2025
  6. CheerpJ 4.0: WebAssembly JVM for the browser, now with Java 11 and JNI support The latest release of our state-of-the-art Java runtime that runs completely in the browser via WebAssembly, is now available! Alessandro Pignotti, Stefano De Rossi April 23, 2025
  7. Putting the Ghost in the Shell: integrating Claude Computer Use in WebVM You can now use AI to control WebVM, both in terminal and graphical mode Alessandro Pignotti March 17, 2025
  8. CheerpJ 3.1: JVM in WebAssembly and our roadmap for modern Java in the browser Our state-of-the-art JVM/JDK that runs completely in the browser thanks to WebAssembly, is now available! Alessandro Pignotti, Stefano De Rossi February 5, 2025

2024 8

  1. CheerpX 1.0: High performance x86 virtualization in the browser via WebAssembly CheerpX is a WebAssembly-based virtualization engine for x86 binaries. It is built on top of standard Web technologies, and runs fully in the browser, with no need for server side execution of any sort. This article will
  2. WebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssembly WebVM is a full Linux environment running in the browser, client-side. It is a complete virtual machine, with support for persistent data storage, networking and, as of today’s release, Xorg and complete desktop environme
  3. Join the WebVM: The Hackathon! - A Global Hybrid Event for Developers! WebVM: The Hackathon is a global hybrid event open to all developers. Dive into terminal-based solutions using CheerpX and showcase your coding skills for a chance to win amazing prizes. Ana Gaby, Jules Saarikoski October 2, 2024
  4. WebAssembly Branch Hinting: From an idea to W3C standard Around a month ago, the WebAssembly Community Group voted to advance the [Branch Hinting proposal](https://github.com/WebAssembly/branch-hinting) to phase 4, effectively recommending its addition to the standard, and the Working Group formally
  5. Modernising Legacy C++ MFC Applications with Cheerp Modernising C++/MFC applications into modern web applications can offer significant practical advantages and enable improved efficiency, productivity and flexibility. WebAssembly, and the Cheerp C++ to Wasm compiler offer a uniquely efficient path
  6. C++ meets TypeScript: bidirectional type interoperability in the Cheerp compiler A tour of the TypeScript integration features that are a part of Cheerp. Cheerp is a powerful C++ to JavaScript and WebAssembly compiler. Chen Steenvoorden March 12, 2024
  7. Adding AddressSanitizer support to the Cheerp WebAssembly compiler Cheerp is a powerful C/C++ to JavaScript/WASM compiler. Daan Meijer February 13, 2024
  8. CheerpJ 3.0 (old version) now available CheerpJ 3.0, a state-of-the-art WebAssembly JVM that runs real-world Java applications in the browser, is now available. Alessandro Pignotti February 1, 2024

2023 10

  1. Reviving the Dragon Court browser RPG with CheerpJ Dragon Court was a free, old-school fantasy, multiplayer browser RPG that came in a Java Applet format but sadly became abandonware. Clarky Lee talks about how he used CheerpJ to bring it back to life. Clarky Lee Guest December 14, 2023
  2. Deep dive into CheerpJ 3.0 CheerpJ is a WebAssembly-based JVM that runs fully client side in the browser. It supports Java applications, legacy applets and libraries, with no need for compilation, server backends, plugins, or post-processing steps. CheerpJ 3.0 introduces a completely new JIT-based a
  3. CheerpJ 3.0rc2 now available The CheerpJ 3.0 second release candidate is now available! This release includes many improvements to library mode, Web Worker support, and more. Alex Bates November 29, 2023
  4. CheerpJ 3.0rc1 now available The first release candidate for CheerpJ 3.0 is now available for testing and feedback. This version features a completely new architecture for CheerpJ, with a full OpenJDK runtime and a new scalable JNI architecture. Alex Bates, Alessandro Pignotti October 18, 2023
  5. Watch the CheerpJ 3.0 AMA We hosted a live Ask-Me-Anything (AMA) with CTO and lead dev Alessandro. The main topic was CheerpJ 3.0, but we welcomed any questions across all our products, about WebAssembly, and compilers, or the company in general. We talked about CheerpJ 3.0’s development, its releas
  6. Beyond the DevTools: Profiling WebApps at the Assembly Level Thanks to groundbreaking technologies like CheerpX and CheerpJ, we have successfully redefined what was previously considered achievable within the browser’s environment. While working on such advanced projects, we soon encountered the lim
  7. Mini.WebVM: Your own Linux box from Dockerfile, virtualized in the browser via WebAssembly WebVM is a Linux-like virtual machine running fully client-side in the browser. It is based on CheerpX: a x86 execution engine in WebAssembly by Leaning Technologies. With today’s update, you can deploy your o
  8. Announcing CheerpJ 3.0 For the past year, we have been working on a new architecture for CheerpJ: our implementation of the JVM in HTML5/WebAssembly, designed to run Java applications on the browser. CheerpJ 3.0 will be released in the late summer of 2023, and will be easier to use, faster, and more
  9. Unexpectedly Useful: A Real World Use Case For WebAssembly System Interface (WASI) At Leaning Technologies we are heavily invested in WebAssembly, and we are actively contributing to push the standard forward. Just a few months ago WebAssembly tail-calls were standardized, and we are currently bring
  10. Cheerp 3.0: The most advanced C++ compiler for the Web, now permissively licensed We are proud to announce Cheerp 3.0, the latest major release of our C++ compiler for the Web. This new version is packed with new features and optimizations that, once more, move the state of the art of using C++ as a

2022 6

  1. How we added full networking to WebVM via Tailscale WebVM, our virtual Linux environment running fully client-side in the browser, now supports networking via Tailscale. Yuri Iozzelli October 5, 2022
  2. PythonFiddle: Fully private client-side sample code execution and sharing A recurrent need for anybody practising programming is running (and sharing) small snippets of code to quickly test an idea or ask for feedback. These kinds of Web applications are generally called ‘fiddles’, and there are ple
  3. Fantastic tail calls, and how to implement them This article aims at demystifying WebAssembly tail calls while giving the reader an idea of how we have implemented the feature in WebKit. Tom Olivier Tartarin July 11, 2022
  4. CheerpJ 2.3 Released CheerpJ 2.3 is the only solution on the market to migrate real-world large-scale Java applications to modern HTML5 with pixel-perfect accuracy. Lorenzo Marsicano May 3, 2022
  5. PartialExecuter: Reducing WebAssembly size by exploring all executions in LLVM Discover the "Partial Executer," an LLVM pass that optimizes WebAssembly by removing unreachable code. This article explains the technology, challenges, and benefits, ideal for those versed in LLVM basics. Carlo Piovesan
  6. WebVM: server-less x86 virtual machines in the browser We made a server-less virtual Linux environment that runs unmodified Debian binaries in the browser. This is powered by CheerpX, a WebAssembly virtualization platform. Feel free to play with it and report bugs: https://webvm.io Alessandro Pignot

2021 2

  1. The Bottomless Pit of Disappointment: A Chrome Extension Tale How Manifest V3 broke our Chrome extension, and how we are trying to fix it. Alessandro Pignotti August 10, 2021
  2. A JavaScript Optimising Compiler Carlo, a Leaning Technologies compiler engineer, has tried something bold. Coming up with a JavaScript to JavaScript optimizing compiler. Optimize for what metric? Performance of code execution (eg. how long does it take to calculate the n-th prime number). Carlo Pio

2020 6

  1. Announcing CheerpX for Flash, a solution to extend the life of Flash applications post-2020 Today we are proud to announce CheerpX for Flash, a solution to run existing Flash applications on any browser after December 2020. Stefano De Rossi September 21, 2020
  2. Extreme WebAssembly 2: the sad state of WebAssembly tail calls Here at Leaning Technologies, we use WebAssembly daily to create unique and seemingly impossible technologies, like CheerpX (a WebAssembly virtual machine designed to safely run arbitrary x86 libraries and applications in browser) and Ch
  3. How Cheerp supports 64-bit integers in both JavaScript and WebAssembly Improving support for 64-bit integers in Cheerp, a C/C++ to WebAssembly/JavaScript compiler. Yuri Iozzelli July 13, 2020
  4. JSExport: C++ in the browser made easy Here at Leaning Technologies we build compilers for the Web (which output a combination of JavaScript and WebAssembly). Carlo Piovesan June 30, 2020
  5. Extreme WebAssembly 1: pushing browsers to their absolute limits This is the first of a series of posts about the problems we have found on our way when using WebAssembly, and how we have solved them. Alessandro Pignotti June 16, 2020
  6. Adding anyref support in a C++ to WebAssembly compiler WebAssembly in its current MVP form is shipped by all major browsers and is already capable of amazing things. This does not mean that its development has concluded: on the contrary, there are many post-MVP feature proposals at different stages

2019 1

  1. Solving the structured control flow problem once and for all One of the challenges of compiling LLVM IR code to JavaScript and WebAssembly is the structured control flow problem: We have some code represented as a control flow graph (CFG), and we want to convert it into structured control flow. In t