Andromeda - runtime de JavaScript/TypeScript implementado em Rust
(tryandromeda.dev)- Baseado no Nova, um motor JavaScript/WebAssembly em Rust, e no Oxc, compilador de JS, oferecendo alta velocidade de execução e segurança
- Suporte a TypeScript sem configuração, API Canvas 2D com aceleração por GPU, Web Crypto, SQLite, Web Storage e APIs Web abrangentes
- Toolchain integrada para desenvolvedores (REPL, formatador, bundler, compilador para executável único) e LSP embutido, utilizável em vários editores
- Em comparação com Node.js e Deno, tem menor uso de memória e leva vantagem em TypeScript, processamento gráfico e compilação em arquivo único
- Runtime de uso geral que atende desde aplicações web de próxima geração, visualização de dados e jogos até scripts de alto desempenho, serviços web e computação científica
Especificações técnicas
- Arquitetura: runtime baseado em Rust, motor Nova, modelo multithread, estruturas de dados zero-copy
- Padrões web: conformidade com WHATWG Fetch API, W3C Canvas 2D, Web Crypto, TextEncoder/Decoder e WinterTC
- Desempenho: tempo de inicialização abaixo de 10 ms, aceleração por hardware, gerenciamento de memória otimizado e resolução de módulos otimizada
- Segurança: execução em sandbox, APIs baseadas em permissões, segurança do Rust e criptografia segura
- Suporte a plataformas: Linux, macOS (Intel/Apple Silicon), Windows, Docker, cross-compilation
Comparação com Node.js e Deno
- Uso de memória: Andromeda ~12MB, Node.js ~40MB, Deno ~25MB
- TypeScript: Andromeda já vem embutido, Node.js exige configuração adicional, Deno oferece suporte nativo
- Gráficos: Andromeda oferece suporte a Canvas com aceleração por GPU, Node.js não oferece suporte, Deno oferece suporte parcial
- Compilação em arquivo único: Andromeda é nativo, Node.js depende de terceiros, Deno já vem embutido
- Modelo de segurança: Andromeda oferece segurança de memória + sistema baseado em permissões, Node.js é centrado principalmente em verificações em tempo de execução
8 comentários
Coisas como o Node.js acabam sendo bem incômodas de vincular a outras aplicações, então seria bom se isso fosse um pouco mais fácil.
Ultimamente tem aparecido muita coisa relacionada a Rust..
Até o Bun ainda está longe de ser 100% compatível com a API do Node.js; quanto tempo será que isso vai levar?
Parece que o ponto-chave para o sucesso desse tipo de projeto é como ele se integra ao vasto ecossistema de bibliotecas npm... desenvolver com a mesma especificação de API do nodejs, de modo que só seja preciso trocar o runtime... se conseguir manter compatibilidade e minimizar o custo de mudanças na base de código já existente, em desenvolvimento/operação... mas, para começo de conversa, o próprio nodejs também não usa tanta memória assim rs
Então é um runtime de JavaScript que não usa o V8? Uau.
https://pt.news.hada.io/topic?id=17845
O texto acima explica esse engine!
Por que não tem nada sobre o Bun...
Pois é, eu também comecei a ler pensando exatamente isso.