WebAssembly
O WebAssembly é um novo tipo de código que pode ser executado em browsers modernos — se trata de uma linguagem de baixo nível como assembly, com um formato binário compacto que executa com performance quase nativa e que fornece um novo alvo de compilação para linguagens como C/C++, para que possam ser executadas na web. Também foi projetado para executar em conjunto com o JavaScript, permitindo que ambos trabalhem juntos.
Em poucas palavras
O WebAssembly tem enormes aplicações para a plataforma web — ele irá fornecer uma maneira de executar na web código escrito em diversas linguagens em velocidade quase nativa, com apps que não conseguiriam fazer isso antes.
O WebAssembly foi projetado para complementar e executar lado a lado com JavaScript — usando as APIs JavaScript do WebAssembly, você pode carregar módulos WebAssembly em um aplicativo JavaScript e compartilhar funcionalidade entre ambos. Isso permite que você aproveite o desempenho e poder da WebAssembly e a expressividade e flexibilidade do JavaScript nos mesmos aplicativos, mesmo que você não saiba como escrever código de WebAssembly.
E o que é ainda melhor é que ele está sendo desenvolvido como um padrão web através da W3C WebAssembly Community Group com participantes ativos de todos os principais fornecedores de browsers.
Guias
- Conceitos WebAssembly
- 
Comece lendo os conceitos de alto nível por trás do WebAssembly - o que é, por que é tão útil, como ele se encaixa na plataforma web e como usá-lo. 
- Compilando C/C++ para WebAssembly
- 
Quando você escreve o código em C/C++, você pode então compilá-lo em .wasm usando uma ferramenta como Emscripten. Veja como isso funciona. 
- Carregando e executando código WebAssembly
- 
Depois de ter um .wasm, este artigo aborda como buscá-lo, compilá-lo e instanciá-lo, combinando a API JavaScript WebAssemblycomo Obter ou APIs XHR. 
- Compilando módulos de WebAssembly no cache
- 
O cache de grandes módulos WebAssembly no cliente é útil para melhorar o desempenho da inicialização do aplicativo. Este artigo explica como usar isso usando IndexedDB. 
- Usando a API JavaScript do WebAssembly
- 
Depois de carregar um módulo .wasm, você vai querer usá-lo. Neste artigo, mostramos como usar a WebAssembly através da API JavaScript da WebAssembly. 
- Exportando funções de WebAssembly
- 
Funções WebAssembly exportadas são as reflexões de JavaScript das funções da WebAssembly e permitem chamar o código WebAssembly do JavaScript. Este artigo descreve o que são. 
- Compreendendo o formato de texto do WebAssembly
- 
Este artigo explica o formato de texto wasm. Esta é a representação textual de baixo nível de um módulo .wasm mostrado nas ferramentas de desenvolvedor do navegador ao depurar. 
- Convertendo o formato de texto do WebAssembly para o wasm
- 
Este artigo fornece um guia sobre como converter um módulo WebAssembly escrito no formato de texto em um binário .wasm. 
Referência da API
- WebAssembly
- 
Este objeto atua como o espaço para todas as funcionalidade relacionada à WebAssembly. 
- WebAssembly.Module
- 
A WebAssembly.Moduleo objeto contém o código da WebAssembly sem estado que já foi compilado pelo navegador e pode ser eficientemente compartilhado com os trabalhos, armazenados em cache no IndexedDB, e instanciados várias vezes.
- WebAssembly.Instance
- 
A WebAssembly.Instanceo objeto é uma instância executável e estável de umMódulo. Os objetosInstanciadoscontêm todas as funções de WebAssembly exportadasque permitem chamar o código WebAssembly do JavaScript.
- WebAssembly.instantiate()
- 
The WebAssembly.instantiate()a função é a API primária para compilar e instanciar o código WebAssembly, retornando umModulee sua primeirainstância.
- WebAssembly.Memory()
- 
Em WebAssembly. O objetoMemoryé redimensionávelArrayBufferque detém os bytes de memória invocados por umainstânciade código.
- WebAssembly.Table()
- 
Em WebAssembly. O objetoTableé uma matriz redimensionável de valores opacos, como referências de funções, acessadas por umainstânciade código.
- WebAssembly.CompileError()
- 
Cria um novo objeto WebAssembly CompileError.
- WebAssembly.LinkError()
- 
Cria um novo objeto WebAssembly LinkError.
- WebAssembly.RuntimeError()
- 
Cria um novo objeto WebAssembly RuntimeError.
Exemplos
- WASMSobel
- Consulte nosso webassembly-examples para outros exemplos.