QuickJS基于 C 实现的 JavaScript 引擎
QuickJS 是一个轻量且可嵌入的 JavaScript 引擎,它支持 ES2019 规范,包括 ES module、异步生成器以及 proxies。除此之外,还支持可选的数学扩展,例如大整数(BigInt)、大浮点数(BigFloat)和运算符重载。
主要特性如下
- 轻量且方便嵌入:QuickJS 只包含一些 C 语言文件,没有额外的依赖,运行一个简单的 hello world 只需要 190 KiB 的 x86 代码
- 拥有启动时间极短的快速解释器:在单核的台式 PC 上,运行 ECMAScript 测试套件的 56000 个测试大约在 100 秒内完成。一个 runtime 实例的完整生命周期在不到 300ms 内完成
- 几乎完整的 ES2019 支持,包括 ES module、异步生成器和完整的 Annex B 支持(传统的 Web 兼容性)
- 完全通过了 ECMAScript 测试套件的测试
- 可将 JavaScript 源码编译为没有外部依赖的可执行文件
- 基于引用计数的 GC(以减少内存使用并具有确定性行为)
- 数学扩展:BigInt、BigFloat、运算符重载、bigint mode 和 math mode
- 使用 Javascript 实现的具有上下文着色功能(contextual colorization)的命令行解释器
- 包含使用 C 语言库封装的轻量级内置标准库
BTW,QuickJS 的作者是 Fabrice Bellard,知名开源项目 FFMPEG 和 QEMU 都出自他手。
评论