QEMU と FFmpeg の創設者が QuickJS JavaScript エンジンを公開

QEMU プロジェクトと FFmpeg プロジェクトを設立したフランスの数学者ファブリス ベラールも、円周率を計算するための最速の式を作成し、画像フォーマットを開発しました。 BPG、新しい JavaScript エンジンの最初のリリースを公開 クイックJS。 エンジンはコンパクトで、他のシステムに統合できるように設計されています。 プロジェクト コードは C で書かれており、MIT ライセンスに基づいて配布されます。 Emscripten を使用して WebAssembly にコンパイルされ、ブラウザでの実行に適したエンジンのビルドも入手できます。

JavaScriptの実装 サポートする ES2019 仕様 (モジュール、非同期ジェネレーター、プロキシを含む)。 オプションで非標準の数学もサポートされます エクステンション BigInt 型や BigFloat 型などの JavaScript の場合、 演算子のオーバーロード。 QuickJS のパフォーマンスは重要です 超過 たとえば、テストで利用可能な類似体
Bench-V8 はエンジンよりも優れています XS 35% ダックテープ XNUMX倍以上になった ジェリースクリプト XNUMX回と MuJS 7回

エンジンをアプリケーションに埋め込むためのライブラリに加えて、このプロジェクトは、コマンド ラインから JavaScript コードを実行するために使用できる qjs インタープリターも提供します。 さらに、外部依存関係を必要としないスタンドアロン実行に適した出力実行可能ファイルを生成できる qjsc コンパイラーが利用可能です。

主な特長:

  • コンパクトで他のプロジェクトに簡単に統合できます。 コードには、アセンブリに外部依存関係を必要としない C ファイルがいくつか含まれているだけです。 最も単純なコンパイル済みアプリケーションは約 190 KB 必要です。
  • 非常に高いパフォーマンスと短い起動時間。 56 件の ECMAScript 互換性テストに合格するには、通常のデスクトップ PC の単一コアで実行すると約 100 秒かかります。 実行時の初期化にかかる時間は 300 マイクロ秒未満です。
  • ES2019 仕様をほぼ完全にサポートし、レガシー Web アプリケーションとの互換性のためのコンポーネントを定義する付録 B を完全にサポートします。
  • ECMAScript テスト スイートのすべてのテストに完全に合格する。
  • 外部依存関係を持たない Javascript コードを実行可能ファイルにコンパイルするためのサポート。
  • 周期的なクリーニングを行わない参照カウントに基づくガベージ コレクター。これにより、予測可能な動作を実現し、メモリ消費を削減できます。
  • JavaScript での数学的計算のための拡張機能のセット。
  • コマンドラインモードでコードを実行するためのシェル。コンテキストに応じたコードの強調表示をサポートします。
  • C ライブラリのラッパーを備えたコンパクトな標準ライブラリ。

このプロジェクトは、QuickJS に関連し、個人での使用に適した XNUMX つの付随 C ライブラリも開発しています。

  • libregexp - 正規表現の高速実装。JavaScript ES 2019 仕様と完全に互換性があります。
  • libunicode - Unicode を操作するためのコンパクトなライブラリ。
  • libbf - 正確な丸めを使用した任意精度浮動小数点演算と超越関数の実装。

出所: オープンネット.ru

コメントを追加します