Sobre el proyecto
Wasmer es un runtime basado en WebAssembly y una herramienta de línea de comandos para ejecutar aplicaciones dentro de sandboxes rápidos, seguros y ligeros. Los sandboxes pueden ejecutarse localmente, en la nube o en el navegador, y el acceso a archivos, red y entorno está controlado por el usuario.
Características clave descritas en el README:
- Seguro por defecto: el acceso a archivos, red y entorno se controla explícitamente.
- Ligero: inicio rápido y una huella de memoria pequeña.
- Listo para ejecutar: paquetes como Python, JavaScript, Bash, PHP, PostgreSQL, SQLite y FFmpeg están disponibles en el registro de Wasmer.
- Integrable: los sandboxes pueden añadirse a las aplicaciones mediante el SDK de Wasmer.
Primeros pasos con la CLI:
Instala en macOS o Linux con `curl https://get.wasmer.io -sSfL | sh`; Windows usa PowerShell, y Homebrew también es compatible. Una primera ejecución se ve así: `wasmer run python/python -- -c "print('Hello from Wasmer')"`. Los paquetes se descargan y se almacenan en caché para ejecuciones posteriores. El separador `--` distingue las opciones de Wasmer de los argumentos del programa; `--volume` otorga acceso a un directorio local y `--net` habilita la red del host. Hay una prueba basada en navegador disponible en wasmer.sh sin instalación.
El SDK de Wasmer permite a los desarrolladores crear sandboxes, seleccionar herramientas y ejecutar código dentro de sus propias aplicaciones. Está disponible para JavaScript/TypeScript (Node.js 20+), Python (macOS y Linux, Intel y ARM64), Rust (dependencia de código fuente, la publicación en crates.io está actualmente deshabilitada) y Swift (Swift 6+, macOS 12+, iOS 27+). La ejecución en el navegador usa la misma API de JavaScript con encabezados de aislamiento de origen cruzado. El SDK está actualmente en fase alfa.
Las capacidades del SDK incluyen ejecutar comandos y capturar la salida, gestionar procesos con salida en streaming, leer y escribir archivos del sandbox, combinar lenguajes y paquetes en un solo sandbox, y ejecutar servicios con acceso de red explícito. Entre los paquetes de ejemplo se incluyen Python, Edge.js, Bash, PHP, PGlite, SQLite y FFmpeg.
Este repositorio contiene el runtime y la CLI de Wasmer; los SDK de sandbox se encuentran en un repositorio separado. La integración de nivel inferior es posible a través de las API de Rust y C. El proyecto tiene licencia MIT, acepta contribuciones y proporciona documentación para compilar desde el código fuente, realizar pruebas, informar de problemas de seguridad y hacer seguimiento de incidencias. Los canales de la comunidad incluyen Discord, X, LinkedIn y un blog, con traducciones comunitarias del README en varios idiomas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.