QuickJS基于 C 實現(xiàn)的 JavaScript 引擎
QuickJS 是一個輕量且可嵌入的 JavaScript 引擎,它支持 ES2019 規(guī)范,包括 ES module、異步生成器以及 proxies。除此之外,還支持可選的數(shù)學(xué)擴展,例如大整數(shù)(BigInt)、大浮點數(shù)(BigFloat)和運算符重載。
主要特性如下
- 輕量且方便嵌入:QuickJS 只包含一些 C 語言文件,沒有額外的依賴,運行一個簡單的 hello world 只需要 190 KiB 的 x86 代碼
- 擁有啟動時間極短的快速解釋器:在單核的臺式 PC 上,運行 ECMAScript 測試套件的 56000 個測試大約在 100 秒內(nèi)完成。一個 runtime 實例的完整生命周期在不到 300ms 內(nèi)完成
- 幾乎完整的 ES2019 支持,包括 ES module、異步生成器和完整的 Annex B 支持(傳統(tǒng)的 Web 兼容性)
- 完全通過了 ECMAScript 測試套件的測試
- 可將 JavaScript 源碼編譯為沒有外部依賴的可執(zhí)行文件
- 基于引用計數(shù)的 GC(以減少內(nèi)存使用并具有確定性行為)
- 數(shù)學(xué)擴展:BigInt、BigFloat、運算符重載、bigint mode 和 math mode
- 使用 Javascript 實現(xiàn)的具有上下文著色功能(contextual colorization)的命令行解釋器
- 包含使用 C 語言庫封裝的輕量級內(nèi)置標(biāo)準(zhǔn)庫
BTW,QuickJS 的作者是 Fabrice Bellard,知名開源項目 FFMPEG 和 QEMU 都出自他手。
評論
圖片
表情
