Conheça o Cheerp, uma alternativa ao Emscripten

Cheerp é um compilador C/C++ para aplicações Web - Compila para WebAssembly e JavaScript.


Conheça o Cheerp, uma alternativa ao Emscripten


Cheerp é um compilador C/C++ de código aberto, com licença permissiva e de nível empresarial para aplicativos da Web. Permite compilar praticamente qualquer código C/C++ para WebAssembly e JavaScript.

Ele é baseado e integrado à infraestrutura LLVM/Clang, e apresentando várias etapas de otimização personalizadas para maximizar o desempenho e minimizar o tamanho da saída de JavaScript/WebAssembly compilada.

O Cheerp é usado principalmente para portar bibliotecas e aplicativos C/C++ existentes para HTML5, mas também pode ser usado para escrever aplicativos Web de alto desempenho e componentes WebAssembly do zero.

Cheerp


Instalação

Existem binários prontos para Windows, Ubuntu/Debian e macOS.

  • Para Windows você pode fazer o download da versão mais recente na página de releases e executar o arquivo https://github.com/leaningtech/cheerp-meta/releases/download/cheerp-3.0/Cheerp-3.0-Windows.exe;

  • Para Debian e Ubuntu basta adicionar o repositório e instalar via APT:

# Adicione a seguinte linha a /etc/apt/sources.list
deb http://ppa.launchpad.net/leaningtech-dev/cheerp-ppa/ubuntu focal main

# E importe a chave para apt com o comando
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 84540D4B9BF457D5
sudo apt update

# Depois é só instalar
sudo apt install cheerp-core
  • Para macos você também pode fazer o download da versão mais recente na página de releases e executar o arquivo https://github.com/leaningtech/cheerp-meta/releases/download/cheerp-3.0/cheerp-macosx-3.0.dmg;

Para construir do zero basta seguir as instruções nesse link.


Utilização

Um Hello, World! básico seria:

Criar um arquivo básico em C++, por exemplo, com ao seguinte código:

#include <cheerp/clientlib.h>

void webMain(){
  client::console.log("Hello, World Wide Web!");
}

Compilar com o comando:

/opt/cheerp/bin/clang++ -target cheerp hello.cpp -o hello.js

E rodar com Node.js:

nodejs hello.js

Você também pode utilizar seu próprio arquivo index.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Cheerp example 0: hello</title>
    <script defer src="hello.js"></script>
  </head>
  <body>
  <h1 id="pagetitle">Open the console log
	(Ctrl + Shift + J or Ctrl + Option + J)
	to read the output</h1>
  </body>
</html>

Lembrando que alguns navegador não rodarão em ~file:///~, mas você pode usar o python3 -m http.server e em seguida abrir o arquivo.


Para mais informações consulte os links:


cpp linguagemc web webassembly


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!