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.
Main documentation link: https://github.com/leaningtech/cheerp-meta/wiki
Main project link: https://leaningtech.com/pages/cheerp.html
This repository is the main reference for documentation, issue tracking, and release notes.
Cheerp is a C/C++ compiler for the Web, based and integrated into the LLVM/clang infrastructure, and featuring numerous custom optimisation steps to maximise performance and minimise size of the compiled JavaScript/WebAssembly output. As such, Cheerp is the best performing, most optimised C++ to WebAssembly compiler available on the market
Cheerp is used mainly to port existing C/C++ libraries and applications to HTML5, but can also be used to write high-performance Web applications and components from scratch. C/C++ gets optimised and compiled into JavaScript/WebAssembly, and can easily be deployed as part of a web page.
Cheerp enables C/C++ code to be compiled to WebAssembly, JavaScript, asm.js or a combination thereof. Compared to alternative C/C++ compilers for web applications such as Emscripten, Cheerp:
- Generates 6% faster (on average) WebAssembly code, but can also compile to a JavaScript output with dynamic memory (garbage-collectible output), zero-overhead DOM manipulation and access to WebApis and superior C++-JavaScript interoperability.
- Allows to compile a single code base into a combination of WebAssembly and JavaScript by (optionally) tagging portions of the code with
[[cheerp::genericjs]]
and[[cheerp::wasm]]
. - Can generate code on average 11% smaller than Emscripten (8% post compression).
Cheerp is open-source software and is free to use for GPLv2 projects. Non-copyleft commercial licenses, commercial support and consulting packages are available from Leaning Technologies.
First time user? We recommend following the Getting started page, that will guide though this steps:
Or look at the sidebar to find lots of useful materials
You can get in touch with us using our Gitter chat, or by filing a bug on our Issue tracker.
Documentation is available at https://github.com/leaningtech/cheerp-meta/wiki.