QuickJS,一個小型並且可嵌入的 Javascript 引擎

←手機掃碼閱讀     admin @ 2019-07-13 , reply:0

QuickJS 是一個小型並且可嵌入的 Javascript 引擎,它支持 ES2019 規範,包括模塊,非同步生成器和代理器。

它可選支持數學擴展,例如大整數 (BigInt),大浮點數 (BigFloat) 以及運算符重載。

主要功能

  • 輕量而且易於嵌入:只需幾個C文件,沒有外部依賴,一個 x86 下的簡單的「hello world」程序只要 180 KiB。
  • 具有極低啟動時間的快速解釋器: 在一台單核的台式 PC 上,大約在 100 秒內運行 ECMAScript 測試套件 56000 次。運行時實例的完整生命周期在不到 300 微秒的時間內完成。
  • 幾乎完整實現 ES2019 支持,包括: 模塊,非同步生成器和和完整 Annex B 支持 (傳統的 Web 兼容性)。
  • 通過 100% 的 ECMAScript Test Suite 測試。
  • 可以將 Javascript 源編譯為沒有外部依賴的可執行文件。
  • 使用引用計數(以減少內存使用並具有確定性行為)的垃圾收集與循環刪除。
  • 數學擴展:BigInt, BigFloat, 運算符重載, bigint 模式, math 模式.
  • 在 Javascript 中實現的具有上下文著色和完成的命令行解釋器。
  • 採用 C 包裝庫構建的內置標準庫。

用法

安裝

提供 Makefile 可以在 Linux 或者 MacOS/X 上編譯。通過使用 MingGW 工具在 Linux 主機上進行交叉編譯,可以獲得初步的 Windows 支持。

如果要選擇特定選項,請編輯Makefile頂部,然後運行make

使用 root 身份執行 make install 可以將編譯的二進位文件和支持文件安裝到 /usr/local (這不是使用 QuickJS 所必需的).

快速入門

qjs 是命令行解析器 (Read-Eval-Print Loop). 您可以將 Javascript 文件和/或表達式作為參數傳遞以執行它們:


./qjs examples/hello.js

qjsc 是命令行編譯器:


./qjsc -o hello examples/hello.js
./hello

生成一個沒有外部依賴的 hello 可執行文件。

qjsbn 和 qjscbn 是具有數學擴展的相應解釋器和編譯器:


./qjsbn examples/pi.js 1000

顯示PI的1000位數字


./qjsbnc -o pi examples/pi.js
./pi 1000

編譯並執行PI程序。

下載

Windows 32位

MacOS 64位

Linux 32位

源代碼

項目網址

官網:https://bellard.org/quickjs/

中文:https://github.com/quickjs-zh/QuickJS





[admin ]

來源:OsChina
連結:https://www.oschina.net/news/108193/quickjs-released
QuickJS,一個小型並且可嵌入的 Javascript 引擎已經有47次圍觀

http://coctec.com/news/all/show-post-209786.html