- Ion は、Rustアプリケーション内に JavaScriptエンジンを埋め込める よう設計されたオープンソースのランタイム
- プラグインシステム、サーバーサイドレンダリング(SSR)、サーバーレス関数実行(FaaS)環境を構築可能
- Tokioベースのイベントループ、マルチスレッド対応、書きやすい高水準API(napi-rsのような) を提供
- 拡張可能な構造により、標準ライブラリ・拡張モジュール・プリプロセッサ を簡単に追加可能
- 既存ランタイム(Node.js、Deno、Bun)との違い
- Node.js: 外部動的ライブラリ(libnode)に依存し、静的ライブラリとしてビルドできず、C FFIも非対応
- Deno: Rustベースではあるが、標準ライブラリへのアクセスがCLIと強く結び付いており、再利用しづらい
- Bun: そもそも埋め込み自体ができない
- Ion.jsは、これらのランタイムにおける埋め込み制約を避けつつ、軽量で組み合わせ可能な構造 を採用し、デプロイのシンプルさ と 使いやすいAPI を提供
- Rustプロジェクトに 軽量で柔軟なJS実行環境 を追加でき、マルチスレッドベースのサーバーやビルドツールで 安全にJSを呼び出す ことが可能
2件のコメント
AIのおかげで、うまく使う機会があるのかなとも思いますね。
JSをRustに変換して使うほうが、むしろ有益なのではないかという気もします。
RustでJSライブラリを持ってきて使うときに便利なのでしょうか?
filebeat のような processor 的な機能を実装しようとするときに便利そうでもありますね..
https://www.elastic.co/docs/reference/beats/filebeat/processor-script