Skip to content
0:00 / 0:00

#cheerpx#webassembly#jitcompiler

CheerpX: a WebAssembly-based x86 virtual machine in the browser, Yuri Iozzelli

WebAssembly NA

1.2K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • A classic. People kept recommending it from 2020 to 2025.
  • Presented by Yuri Iozzelli, engineer at Leaning Technologies
  • May be out of date. Uploaded 6 years ago, in an area where tools change fast.

Advanced. Deep dive for people who know the field.

7K views6 years ago2 recommendations

Web developmentSystems programmingWebAssemblyCompilers and interpretersOperating systems

Yuri Iozzelli explains the architecture of CheerpX, a WebAssembly-based x86 virtual machine with a runtime JIT compiler.

Original event: meetup.com/wasmsf/events/268096535/ WebAssembly is a new web technology that promises to revolutionize the web ecosystem. In this talk, I will explore the very limits of what is possible to do with it, by describing CheerpX: A WebAssembly-based x86 virtual machine in the browser. Similarly to modern native virtual machines, CheerpX features a Just-In-Time compiler capable of producing optimized WebAssembly code at runtime. This has the potential of speeding up the execution considerably and unlocking the possibility of running real-world native applications in the browser. One such application that we are currently working on at Leaning Technologies to showcase the CheerpX potential is the Adobe Flash Player for Linux: This allows running unmodified Flash content on modern browsers without plugins.

Why it's here

2 people recommend this

What people say. Recommended for its mindblowing demonstration of running native x86 applications and games directly in the browser.

gavinrayon Hacker News • Recommends

On “PartialExecuter: Reducing WebAssembly size by exploring all executions in LLVM”

This company has an x86-to-WASM compiler that lets you execute arbitrary binaries in the browser. Also a JVM to WASM transpiler. There's a fantastic Meetup presentation given by one of them where they show running a C++ multiplayer game with both client AND server running in a browser, using WebRTC as a networking polyfill. Really mindblowing: link to this video

btownon Hacker News • Recommends

On “Adobe to remove Flash Player from web site after December 2020”

Here's a talk by the team as well: link to this video And their website: link This is honestly one of the coolest things I've seen, and given the amount of Flex/Spark software for enterprise out there, it could drastically change the legacy software landscape.

gavinrayon Hacker News • Recommends

On “Browsercraft: Java Minecraft in the browser”

5 years ago, I watched a YouTube recording of a meetup talk given by one of the CheerpX engineers: link to this video In it, they showed a functional demo of porting an OSS multiplayer C++ game entirely to the browser with WASM. Afterwards, I read some of their engineering content and was blown away. It's been fascinating to watch the CheerpX/CheerpJ progress from afar over the years.

apignottion Hacker News • Mentions

On “Flash Game History”

At Leaning Technologies, we are working on preserving _all_ flash content by running the original x86 Flash plugin via WebAssembly virtualization (CheerpX). If you want to read more: link link A presentation about the architecture of the system: link to this video Feel free to drop me any question: link

saagarjhaon Hacker News • Mentions

On “iSH Shell”

It's been on our minds for a while, the major issues with this is that IPC between the app process and WebKit is like 100µs, so having the interpreter run isolated from the app process is hard. Plus loading WASM is not "free" (that is, essentially an instruction cache flush) because you need to generate a bundle that WebKit will then load, which is slow (although there has been work done in this area: link to this video ). So even if we did some sort of WASI thing where everything is going on in the browser, there are hurdles to overcome to make this viable. Plus the current interpreter almost certainly leaves performance on the table ;)

nanaianon Hacker News • Mentions

On “Ruffle: Flash Player Emulator”

Developer here. CheerpX for Flash runs the Pepper API version of Flash, and you're correct about the license. However, we don't do full Linux emulation just to run Flash - we emulate PPAPI and run the Flash player in an x86 JIT (CheerpX). Yuri talks about CXFF's architecture here: link to this video ...but if you wanted full Linux system emulation, we got it! link