- Ion é um runtime open source projetado para permitir embutir um motor JavaScript dentro de aplicações Rust
- Permite construir ambientes de sistema de plugins, renderização no lado do servidor (SSR) e execução de funções serverless (FaaS)
- Fornece loop de eventos baseado em Tokio, suporte a multithreading e API de alto nível fácil de usar (como napi-rs)
- Com uma arquitetura extensível, é possível adicionar facilmente biblioteca padrão, módulos de extensão e pré-processadores
- Diferenças em relação aos runtimes existentes (Node.js, Deno, Bun)
- Node.js: depende de biblioteca dinâmica externa (
libnode), não permite build de biblioteca estática e não oferece suporte a C FFI
- Deno: embora seja baseado em Rust, o acesso à biblioteca padrão é fortemente acoplado ao CLI, o que dificulta a reutilização
- Bun: não permite embedding
- O Ion.js evita as limitações de embedding desses runtimes e adota uma estrutura leve e combinável, oferecendo simplicidade na implantação e API amigável ao usuário
- Ele permite adicionar um ambiente de execução JS leve e flexível a projetos Rust, além de possibilitar chamadas seguras de JS em servidores baseados em múltiplas threads ou ferramentas de build
2 comentários
Graças à IA, até fico pensando se realmente vai haver muita ocasião para usar isso.
Também penso se não seria mais vantajoso converter JS para Rust e usar dessa forma.
Talvez seja útil quando se quiser aproveitar bibliotecas JS no Rust?
Parece que pode ser útil quando se tenta implementar uma funcionalidade tipo
processor, como no filebeat.. https://www.elastic.co/docs/reference/beats/filebeat/processor-script