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.Module
o 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.Instance
o objeto é uma instância executável e estável de umMódulo
. Os objetosInstanciados
contê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 umModule
e sua primeirainstância
. WebAssembly.Memory()
-
Em
WebAssembly
. O objetoMemory
é redimensionávelArrayBuffer
que detém os bytes de memória invocados por umainstância
de código. WebAssembly.Table()
-
Em
WebAssembly
. O objetoTable
é uma matriz redimensionável de valores opacos, como referências de funções, acessadas por umainstância
de 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.