Stefano De Rossi edited this page Nov 14, 2017 · 39 revisions

Cheerp - a C/C++ compiler for Web applications

Gitter chat GitHub Issues Latest version Latest version changelog

Cheerp is an open-source, commercial C/C++ compiler for Web applications. It allows to compile virtually any C/C++ code (up to C++14) to WebAssembly, JavaScript, asm.js or a combination thereof.

Download latest version: Latest version Latest version changelog

Main documentation link:

Main project link:

This repository is the main reference for documentation, issue tracking, and release notes. Please contribute to Cheerp!

What is Cheerp?

Cheerp is a C++ compiler for the Web, based and integrated into the LLVM/clang infrastructure.

With Cheerp you can write Web applications in C/C++, or port existing C/C++ code to the Web. Your C++ code is fully optimized by the LLVM system and it's compiled into either WebAssembly, JavaScript, or a combination of them, and will run on any browser.

Getting Started

If you don't know where to start take a look at the build/installation instructions first, then visit the Getting Started page, or follow this basic WebAssembly tutorial.

For a more in-depth tutorial, please visit My first WebAssembly game (Tutorial).

Interfacing with the browser

Cheerp provide fully transparent and complete access to all HTML/DOM APIs and browser capabilities. See Browser side programming guide for more information.

Details on how Cheerp allows your C/C++ to interoperate with JavaScript transparently, visit the JavaScript interoperability page.

Other relevant pages:

Advanced topics

Using WebWorkers with Cheerp

GLES support (webGLES)

64-bit integer support


Windows and Mac OS X installation

Ubuntu/Debian installation using PPA

Linux build instructions

Windows build instructions

Cheerp internals

Cheerp memory model

Cheerp intrinsics

Cheerp PreExecuter

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.