Image for post
Image for post
No reference to Firefox intended.

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 CheerpJ (a solution to compile and run Java applications in the browser).

CheerpX, in particular, is certainly the most complex JIT engine written in WebAssembly, and quite possibly the single most advanced WebAssembly project running in the browser.

In order to efficiently run arbitrary x86 code in WebAssembly, we have overcome all sorts of limitations, caused either by the current state of the Wasm standard, or by the browser implementations. If you are interested in reading more about the magic behind CheerpX, we published some information in the previous article of this series, and in a presentation back in February at the Wasm SF meetup. …


Image for post
Image for post
Python3 running client side using CheerpX. File access and blocking primitives (i.e. sleep) are demonstrated.

WebAssembly is one of the hottest topics in software development right now, particularly in the web applications ecosystem.

While its internals are still mysterious to many, here at Leaning Technologies we have been working with it daily for the last several years. As a matter of fact, we have been involved in compile-to-JavaScript since 2012, way before WebAssembly was announced, let alone implemented in major browsers.

Our company makes several tools that target WebAssembly on the browser: Cheerp (C++ to JavaScript/WebAssembly compiler, an alternative to Emscripten), CheerpJ (Java to JavaScript/WebAssembly with full runtime) and CheerpX (virtualization technology to run X86 binaries in the browser). …


October 19 Update: CheerpX for Flash is now generally available. You can read the announcement here.

Note: We have recently announced CheerpX for Flash, a solution to extend the life of Flash applications post-2020. Find out more in this post

Extending the life of Flex, AS3 and AS2 Flash content with WebAssembly virtualization

Image for post
Image for post
The clouds are moving, is Flash Player installed though?

Back in August 2019, we published a blog post announcing CheerpX: a breakthrough technology that makes it possible to securely run unmodified binary code in the browser. This technology is based on a sophisticated JIT engine that generates WebAssembly code on the fly, and we plan to use this technology to execute Adobe’s Flash Player plugin. …


Or how we plan to run any Flash content in WebAssembly without re-implementing Flash

Image for post
Image for post

Note: We have recently announced CheerpX for Flash, a solution to extend the life of Flash applications post-2020. Find out more in this post

For quite a long time, and until recently, Adobe Flash has been the tool of choice to create interactive web applications, especially video games. Since Flash is a proprietary technology, people have always been wondering how this content was going to be preserved when, in due time, that technology was going to become obsolete. That time seems now to be around 2020.

The popularity of Flash and the doubts over its legacy were significant enough that the Gnash project, one of the first Free Software attempts at re-implementing Flash, was considered one of the Free Software Foundation high priority projects. …


Here at Leaning Technologies we specialise in compilers: tools that are useful for software developers and enterprises, but rarely end up in the hands of end-users. Interestingly though, we happen to have an exception to this rule: our CheerpJ Applet Runner.

CheerpJ Applet Runner is a (free) Chrome extension which makes it possible to run legacy Java Applets on modern browsers, without requiring plug-ins or a local installation of Java.This is achieved by on-the-fly converting and running the Applets all within the browser, and not via some ugly remote execution / terminalisation trick.

We released this extension around 2 years ago, mostly as demo of our CheerpJ Java-to-JavaScript compiler. We were definitely not expecting it to be used very much and to be found useful in and of itself. I think that myself, and many fellow developers, suffer from an heavy modernity bias and we often fail to realise how much real people actually depend on outdated technologies. …

Alessandro Pignotti

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store