Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
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.
In this article
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 daW3C 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 comoEmscripten. 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 APIJavaScript WebAssemblycomoObter ou APIsXHR.
- 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 usandoIndexedDB.
- 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
WebAssemblyEste objeto atua como o espaço para todas as funcionalidade relacionada à WebAssembly.
WebAssembly.ModuleA
WebAssembly.Moduleo objeto contém o código da WebAssembly sem estado que já foi compilado pelo navegador e pode ser eficientementecompartilhado com os trabalhos,armazenados em cache no IndexedDB, e instanciados várias vezes.WebAssembly.InstanceA
WebAssembly.Instanceo objeto é uma instância executável e estável de umMódulo. Os objetosInstanciadoscontêm todas asfunçõ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 nossowebassembly-examples para outros exemplos.