Andromeda - runtime de JavaScript/TypeScript implementado en Rust
(tryandromeda.dev)- Basado en Nova, un motor de JavaScript/WebAssembly escrito en Rust, y en Oxc, un compilador de JS, ofrece alta velocidad de ejecución y seguridad
- Soporta TypeScript sin configuración, API de Canvas 2D con aceleración por GPU, Web Crypto, SQLite, Web Storage y una amplia gama de Web APIs
- Incluye una toolchain unificada para desarrolladores (REPL, formateador, bundler, compilador a ejecutable único) y LSP integrado, utilizable desde distintos editores
- En comparación con Node.js y Deno, usa menos memoria y ofrece ventajas en TypeScript, procesamiento gráfico y compilación de archivo único
- Un runtime de propósito general que soporta aplicaciones web de nueva generación, visualización de datos, juegos, scripting de alto rendimiento, servicios web y computación científica
Especificaciones técnicas
- Arquitectura: runtime basado en Rust, motor Nova, modelo multihilo, estructuras de datos de copia cero
- Estándares web: WHATWG Fetch API, W3C Canvas 2D, Web Crypto, TextEncoder/Decoder, cumplimiento con WinterTC
- Rendimiento: tiempo de arranque inferior a 10 ms, aceleración por hardware, gestión de memoria y resolución de módulos optimizadas
- Seguridad: ejecución en sandbox, API basada en permisos, seguridad de Rust y criptografía segura
- Soporte de plataforma: Linux, macOS (Intel/Apple Silicon), Windows, Docker, compilación cruzada
Comparación con Node.js y Deno
- Uso de memoria: Andromeda ~12MB, Node.js ~40MB, Deno ~25MB
- TypeScript: Andromeda lo trae integrado por defecto, Node.js requiere configuración adicional, Deno tiene soporte nativo
- Gráficos: Andromeda ofrece soporte de Canvas con aceleración por GPU, Node.js no lo soporta, Deno lo soporta parcialmente
- Compilación de archivo único: Andromeda es nativo, Node.js depende de terceros, Deno lo incluye
- Modelo de seguridad: Andromeda ofrece seguridad de memoria + permisos, Node.js se centra en verificaciones en tiempo de ejecución
8 comentarios
Con algo como Node.js, cuando quieres vincularlo a otra aplicación se vuelve bastante molesto, así que ojalá fuera un poco más fácil.
Parece que últimamente están saliendo muchas cosas relacionadas con Rust..
Bun todavía está lejos de ser 100% compatible con la API de nodejs, así que ¿cuánto tardará este?
Parece que la clave del éxito de este tipo de proyectos está en cómo se integran con el enorme ecosistema de bibliotecas de npm... desarrollar con la misma especificación de API que nodejs, pero de modo que solo haya que cambiar el runtime... si logran mantener compatibilidad minimizando el costo de modificar las bases de código existentes que ya están en desarrollo u operación... aunque, para empezar, nodejs tampoco es que use tanta memoria jaja
Entonces es un runtime de JavaScript que no usa V8, ¿no? Guau
https://es.news.hada.io/topic?id=17845
¡Parece que en el artículo de arriba explican ese motor!
¿Por qué no se menciona a Bun...?
,Sí, claro, yo también empecé a leerlo pensando eso mismo