Sobre o projeto

Wasmer é um runtime baseado em WebAssembly e uma ferramenta de linha de comando para executar aplicações dentro de sandboxes rápidos, seguros e leves. Os sandboxes podem ser executados localmente, na nuvem ou no navegador, e o acesso a arquivos, rede e ambiente é controlado pelo usuário. Características principais descritas no README: - Seguro por padrão: o acesso a arquivos, rede e ambiente é controlado explicitamente. - Leve: inicialização rápida e baixo consumo de memória. - Pronto para executar: pacotes como Python, JavaScript, Bash, PHP, PostgreSQL, SQLite e FFmpeg estão disponíveis no registro do Wasmer. - Integrável: sandboxes podem ser adicionados a aplicações por meio do SDK do Wasmer. Primeiros passos com a CLI: Instale no macOS ou Linux com `curl https://get.wasmer.io -sSfL | sh`; no Windows usa-se PowerShell, e o Homebrew também é suportado. Uma primeira execução se parece com `wasmer run python/python -- -c "print('Hello from Wasmer')"`. Os pacotes são baixados e armazenados em cache para execuções posteriores. O separador `--` distingue as opções do Wasmer dos argumentos do programa; `--volume` concede acesso a um diretório local e `--net` habilita a rede do host. Uma versão de teste no navegador está disponível em wasmer.sh sem instalação. O SDK do Wasmer permite que desenvolvedores criem sandboxes, selecionem ferramentas e executem código dentro de suas próprias aplicações. Ele está disponível para JavaScript/TypeScript (Node.js 20+), Python (macOS e Linux, Intel e ARM64), Rust (dependência de código-fonte, publicação no crates.io atualmente desabilitada) e Swift (Swift 6+, macOS 12+, iOS 27+). A execução no navegador usa a mesma API JavaScript com cabeçalhos de isolamento de origem cruzada. O SDK está atualmente em alfa. As capacidades do SDK incluem executar comandos e capturar saída, gerenciar processos com saída transmitida, ler e escrever arquivos no sandbox, combinar linguagens e pacotes em um único sandbox e executar serviços com acesso explícito à rede. Pacotes de exemplo incluem Python, Edge.js, Bash, PHP, PGlite, SQLite e FFmpeg. Este repositório contém o runtime e a CLI do Wasmer; os SDKs de sandbox ficam em um repositório separado. A integração de nível mais baixo é possível por meio das APIs Rust e C. O projeto é licenciado sob MIT, aceita contribuições e fornece documentação para compilação a partir do código-fonte, testes, relatórios de segurança e acompanhamento de issues. Os canais da comunidade incluem Discord, X, LinkedIn e um blog, com traduções comunitárias do README em vários idiomas.