Sobre o projeto

Wasmtime é um runtime autônomo para WebAssembly, desenvolvido como um projeto da Bytecode Alliance. Ele é projetado para ser rápido, seguro, configurável e em conformidade com padrões, e pode ser usado tanto como ferramenta de linha de comando quanto como runtime incorporado em outras aplicações. Instalação A CLI pode ser instalada no Linux e no macOS com um script de shell que instala em $WASMTIME_HOME (padrão $HOME/.wasmtime), colocando o executável em $WASMTIME_HOME/bin. Usuários do Windows e outros podem baixar instaladores e binários da página de Releases do GitHub. Opções adicionais de instalação estão documentadas no livro online. Exemplo de uso Com o compilador Rust instalado, um programa Rust pode ser compilado para um componente WebAssembly usando o alvo wasm32-wasip2 e, em seguida, executado com o comando wasmtime. O README mostra um exemplo hello-world que imprime "Hello, world!" quando executado. Principais recursos - Rápido: construído sobre o gerador de código otimizador Cranelift, que pode produzir código de máquina em tempo de execução ou antecipadamente. É otimizado para instanciação eficiente, chamadas de baixa sobrecarga entre o incorporador e wasm, e escalabilidade de instâncias concorrentes. - Seguro: o desenvolvimento enfatiza correção e segurança, baseando-se nas garantias de segurança em tempo de execução do Rust. Os recursos passam por um processo de RFC, fuzzing contínuo via OSS Fuzz do Google, uma política de lançamento e uma política de segurança definida. O projeto também integra defesas contra problemas como Spectre e colabora com pesquisadores acadêmicos na verificação formal de partes críticas do Wasmtime e do Cranelift. - Configurável: padrões sensatos são fornecidos, mas a configuração permite controle refinado sobre o consumo de CPU e memória, desde ambientes minúsculos até grandes servidores com muitas instâncias concorrentes. - WASI: suporta um rico conjunto de APIs para interagir com o ambiente host por meio do padrão WASI. - Conformidade com padrões: passa no conjunto de testes oficial do WebAssembly, implementa a API C oficial do wasm e implementa propostas futuras do WebAssembly. Os desenvolvedores estão engajados no processo de padrões do WebAssembly. Suporte a linguagens Wasmtime pode ser incorporado a partir de várias linguagens. Linguagens suportadas pela Bytecode Alliance incluem Rust (a crate wasmtime), C (cabeçalhos wasm.h, wasi.h e wasmtime.h, com CMake), C++ (cabeçalho wasmtime.hh), Python (pacote wasmtime no PyPI), .NET (pacote NuGet Wasmtime), Go (repositório wasmtime-go) e Ruby (gem wasmtime). Linguagens suportadas pela comunidade incluem Elixir (pacote hex wasmex) e Perl (módulo Wasm::Wasmtime no pacote Perl Wasm). Documentação O guia do Wasmtime é o ponto de partida recomendado para aprender o que o Wasmtime pode fazer, responder perguntas e contribuir com o projeto.