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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.