Sobre el proyecto

Wasmtime es un runtime independiente para WebAssembly, desarrollado como un proyecto de Bytecode Alliance. Está diseñado para ser rápido, seguro, configurable y compatible con los estándares, y puede usarse tanto como herramienta de línea de comandos como runtime integrado en otras aplicaciones. Instalación La CLI se puede instalar en Linux y macOS con un script de shell que instala en $WASMTIME_HOME (por defecto $HOME/.wasmtime), colocando el ejecutable en $WASMTIME_HOME/bin. Los usuarios de Windows y otros pueden descargar instaladores y binarios desde la página de GitHub Releases. Opciones de instalación adicionales están documentadas en el libro en línea. Ejemplo de uso Con el compilador de Rust instalado, un programa Rust se puede compilar a un componente WebAssembly usando el destino wasm32-wasip2, y luego ejecutarse con el comando wasmtime. El README muestra un ejemplo de hola mundo que imprime "Hello, world!" al ejecutarse. Características principales - Rápido: construido sobre el generador de código optimizador Cranelift, que puede producir código máquina en tiempo de ejecución o por adelantado. Está optimizado para instanciación eficiente, llamadas de baja sobrecarga entre el integrador y wasm, y escalabilidad de instancias concurrentes. - Seguro: el desarrollo enfatiza la corrección y la seguridad, basándose en las garantías de seguridad en tiempo de ejecución de Rust. Las características pasan por un proceso de RFC, fuzzing continuo a través de OSS Fuzz de Google, una política de versiones y una política de seguridad definida. El proyecto también integra defensas contra problemas como Spectre y colabora con investigadores académicos en la verificación formal de partes críticas de Wasmtime y Cranelift. - Configurable: se proporcionan valores predeterminados sensatos, pero la configuración permite un control fino sobre el consumo de CPU y memoria, desde entornos pequeños hasta servidores grandes con muchas instancias concurrentes. - WASI: soporta un rico conjunto de APIs para interactuar con el entorno anfitrión a través del estándar WASI. - Cumplimiento de estándares: pasa el conjunto de pruebas oficial de WebAssembly, implementa la API C oficial de wasm e implementa propuestas futuras de WebAssembly. Los desarrolladores participan en el proceso de estándares de WebAssembly. Soporte de lenguajes Wasmtime se puede integrar desde múltiples lenguajes. Los lenguajes soportados por Bytecode Alliance incluyen Rust (el crate wasmtime), C (cabeceras wasm.h, wasi.h y wasmtime.h, con CMake), C++ (cabecera wasmtime.hh), Python (el paquete wasmtime de PyPI), .NET (el paquete Wasmtime de NuGet), Go (el repositorio wasmtime-go) y Ruby (la gema wasmtime). Los lenguajes soportados por la comunidad incluyen Elixir (el paquete hex wasmex) y Perl (el módulo Wasm::Wasmtime en el paquete Wasm Perl). Documentación La guía de Wasmtime es el punto de partida recomendado para aprender qué puede hacer Wasmtime, responder preguntas y contribuir al proyecto.