Nova funcionalidade para desenvolvedores oferecida pelo WebAssembly

Uma vitrine de ferramentas agora disponíveis na Web graças ao WebAssembly.

Thomas Nattestad
Thomas Nattestad

Com o WebAssembly, os desenvolvedores podem trazer novas funcionalidades de outras linguagens para a Web. Nos últimos anos, os desenvolvedores realmente tiraram proveito das possibilidades. Esta postagem mostra apenas algumas das excelentes ferramentas que você pode usar, em parte, graças ao WebAssembly.

Ferramentas e bibliotecas que você pode usar agora

Então, sem mais delongas, vamos começar para o que é bom :D

SQLite

Essa porta completa do SQLite traz um sistema de gerenciamento de banco de dados relacional leve e integrado para suas mãos. Para saber mais, leia esta postagem do blog que mostra essa porta incrível e como usá-la (link em inglês).

FFmpeg.wasm

O FFmpeg é um projeto de software sem custo financeiro e de código aberto que consiste em um pacote de bibliotecas e programas para lidar com vídeo, áudio e outros arquivos e streams de multimídia. Você encontra uma versão compilada do Wasm aqui (repositório do GitHub) que permite executar todas essas funcionalidades diretamente no navegador.

Descrição de cena universal (USD)

A Universal Scene Description (USD) é uma estrutura para dados gráficos de computador 3D que se concentra na colaboração, na edição não destrutiva e na habilitação de várias visualizações e opiniões sobre dados gráficos. É um padrão do setor apoiado por empresas como Pixar, Autodesk, Nvidia e muitas outras. O suporte na Web ainda está em desenvolvimento, mas a Autodesk já abriu o código de um visualizador de USD baseado na Web, que você pode acessar aqui.

CanvasKit

O CanvasKit é o Skia, o mecanismo de renderização do Chrome e do Android, compilado diretamente no WebAssembly. Com ela, você obtém acesso simples à API JavaScript a praticamente toda a capacidade do mecanismo de renderização Skia. A funcionalidade inclui renderização complexa, modelagem de texto, animação, desenho e muito mais. Confira o pacote npm e o guia de início rápido.

TensorFlow.js

O TensorFlow.js leva o poder do TensorFlow diretamente para o navegador com uma API JavaScript simples. Em segundo plano, ela otimiza modelos na GPU e na CPU (incluindo otimizações de SIMD) para maximizar o desempenho. Consulte o guia para iniciantes ou confira algumas demonstrações diretamente.

OpenCV

O OpenCV é um padrão do setor de funções de programação, principalmente para visão computacional em tempo real. Há um pacote npm fácil de usar aqui. Além disso, para usuários do Emscripten, há também instruções detalhadas para criar um build completo (links em inglês). Para saber como o SIMD e as linhas de execução estão melhorando o desempenho dessas cargas de trabalho, assista esta seção da palestra da Modern WebAssembly no Chrome Dev Summit.

Cocos

O Cocos é um mecanismo de jogo potente e conhecido que permite aos desenvolvedores criar jogos compatíveis com várias plataformas, e agora isso inclui a Web. Ela faz parte da longa lista de mecanismos de jogo que permitem a exportação da Web pelo Wasm. Para começar, acesse o editor do Cocos e siga estas instruções.

Conclusão

Além desses exemplos específicos, há muitos motivos para se empolgar em termos do potencial do WebAssembly de mudar o ritmo das novas funcionalidades da Web. O Chrome até estabeleceu o Advanced Web Apps Fund, que pode ajudar os desenvolvedores a financiar seus trabalhos para melhorar a funcionalidade da Web disponível para todos os desenvolvedores.

Imagem principal de Pexels, de Ann Marie Kennon.