フランスの数学者ファブリス・ベラール、QEMUおよびFFmpegプロジェクトを設立し、円周率を計算するための最速の式を作成し、BPG画像形式を開発しました。
ファブリスベラードは QEMUのリード開発者として最もよく知られています (さまざまなハードウェアアーキテクチャをエミュレートするエミュレータ)およびTiny Cコンパイラ(tcc)は、元々「国際難読化Cコードコンテスト」に勝つために作成された、非常に小さいが包括的なCコンパイラです。
今最近 彼の新作の最初のバージョンを公開しました これはJavaScriptであり、これは JavaScriptQuickJSと呼ばれる新しいエンジン。
JavaScriptQuickJSについて
QuickJSJavaScriptエンジン コンパクトで、他のシステムに組み込むように設計されています。 プロジェクトコード それはCで書かれ、MITライセンスの下で配布されます。 また、Emscriptenを使用してWebAssemblyにコンパイルされ、ブラウザーでの実行に適したエンジンビルドも利用できます。
JavaScriptの実装 モジュール、非同期ジェネレーター、プロキシーなど、ES2019仕様をサポートします。
QuickJSJavaScriptエンジンで JavaScriptのオプションの非標準数学拡張機能がサポートされています、BigIntタイプやBigFloatタイプ、演算子のオーバーロードなど。
パフォーマンスでは、QuickJSは利用可能なアナログを大幅に上回っていますたとえば、bench-v8テストでは、XSエンジンが35%進んでおり、DukTapeがXNUMX倍以上、JerryScriptがXNUMX回、MuJSがXNUMX回進んでいます。
アプリケーションにエンジンを埋め込むためのライブラリに加えて、 プロジェクトはqjsインタプリタも提供します。 これは、コマンドラインからJavaScriptコードを実行するために使用できます。
さらに、 qjscコンパイラが利用可能であり、個別に実行できる実行可能ファイルを出力できます。 そして、これらは外部の依存関係を必要としないこと。
QuickJSJavaScriptエンジンの主な機能のうち 次の点が際立っています。
- コンパクトで他のプロジェクトに簡単に統合できます。 このコードには、ビルドに外部依存関係を必要としないCファイルがいくつか含まれています。 単純なコンパイル済みアプリケーションは約190Kbかかります
- 非常に高いパフォーマンスと高速な起動時間。 カーネルで通常のデスクトップを実行する場合、56のECMAScript互換性テストに合格するには約100秒かかります。 ランタイムの初期化には300マイクロ秒未満かかります
- ES2019仕様のほぼ完全なサポートと、古いWebアプリケーションとの互換性のためにコンポーネントを定義する「B」アプリケーションの完全なサポート
- ECMAScript TestSuiteのすべてのテストの合格を完了します
- 外部依存関係のない実行可能ファイルへのJavascriptコードのコンパイルのサポート
- ガベージコレクターは、周期的なクリーンアップなしで参照カウントに依存しているため、予測可能な動作が可能になり、メモリ消費量が削減されます。
- JavaScript言語での数学的計算のための拡張機能のセット
- コマンドラインモードでコードを実行するためのシェル。コンテキストコードの強調表示をサポートします。
- Cライブラリよりもコンパクトな標準ライブラリ
これに加えて、 一方、プロジェクトはXNUMXつのCライブラリも開発しています QuickJSに関与し、個人使用に適した関連当事者:
- freegexp: JavaScriptES2019仕様に準拠する小さくて高速な正規表現ライブラリ
- libunicode: 大文字と小文字の変換、Unicode正規化、Unicodeスクリプト要求、Unicode一般カテゴリクエリ、およびすべてのUnicodeバイナリプロパティをサポートする小さなUnicodeライブラリ
- libbf: これは、IEEE754浮動小数点演算と超越関数を正確に丸めて実装する小さなライブラリでもあります。 別のプロジェクトとして保管されています。
SavaScript QuickJSを入手するにはどうすればよいですか?
コンパイル用のソースコードのダウンロードは、 次のリンク。 インストール後、LinuxまたはMac OS / XでエンジンをコンパイルするためのMakefileが提供されます。
同じリンクで、QuickJSのドキュメントを参照できます 詳細については。 また、GoogleのV8エンジンでのQuickJSのパフォーマンスと、同じカテゴリの他のツールとの比較を示すベンチマーク情報も提供します。