QuickJS-由QEMU和FFmpeg的创始人开发的轻量级JavaScript引擎

JavaScript的

法国数学家贝勒德(Fabrice Bellard),他创建了QEMU和FFmpeg项目,还创建了用于计算Pi数的最快公式,并开发了BPG图像格式。

Fabrice Bellard是 最著名的QEMU首席开发人员 (可模拟各种硬件体系结构的仿真器)和Tiny C编译器(tcc),这是一种很小但功能全面的C编译器,其最初旨在赢得“国际混淆C代码竞赛”的冠军。

现在最近 向公众分享了他的新作品的第一版 在JavaScript中,这是 一个名为JavaScript QuickJS的新引擎。

关于JavaScript QuickJS

QuickJS JavaScript引擎 它结构紧凑,可以与其他系统结合使用。 项目代码 它是用C编写的,并根据MIT许可进行分发。 还提供了使用Emscripten编译成WebAssembly的引擎版本,并且适合在浏览器中运行。

JavaScript实现 支持ES2019规范,包括模块,异步生成器和代理。

在QuickJS JavaScript引擎中 支持JavaScript的可选非标准数学扩展,例如BigInt和BigFloat类型,以及运算符重载。

就性能而言,QuickJS的性能明显优于现有的同类产品例如,在Bench-v8测试中,XS引擎领先35%,DukTape增长了一倍以上,JerryScript是三倍,MuJS是七倍。

除了将引擎嵌入到应用程序中的库之外, 该项目还提供了qjs解释器, 可用于从命令行运行JavaScript代码。

另外, qjsc编译器可用,并且能够输出可以单独运行的可执行文件 并且这些不需要外部依赖。

QuickJS JavaScript引擎的主要功能 以下几点突出:

  • 紧凑且易于集成到其他项目中。 该代码仅包含一些不需要外部依赖关系即可构建的C文件。 一个简单的编译应用程序大约需要190 Kb
  • 极高的性能和快速的启动时间。 在内核上运行普通桌面时,通过56种ECMAScript兼容性测试大约需要100秒。 运行时初始化花费不到300微秒的时间
  • 几乎完全支持ES2019规范,并且完全支持“ B”应用程序,该应用程序定义了与旧版Web应用程序兼容的组件
  • 完成所有ECMAScript测试套件测试的通过
  • 支持将Javascript代码编译为可执行文件,而无需外部依赖
  • 垃圾收集器依靠引用计数而不进行周期性清理,从而实现可预测的行为并减少了内存消耗
  • 一组JavaScript语言的数学计算扩展
  • 一个用于在命令行模式下执行代码的外壳,它支持上下文代码突出显示
  • 紧凑的标准库,超过C库

除此之外, 另一方面,该项目还在开发三个C库 与QuickJS有关并适合个人使用的相关各方:

  1. freegexp: 一个小型且快速的正则表达式库,符合JavaScript ES2019规范
  2. libunicode: 一个小的Unicode库,支持大小写转换,Unicode规范化,Unicode脚本请求,Unicode常规类别查询以及所有Unicode二进制属性
  3. libbf: 这也是一个小型库,可通过精确舍入实现IEEE 754浮点运算和先验功能。 它作为一个单独的项目保存。

如何获取SavaScript QuickJS?

可以从以下位置下载要编译的源代码 以下链接。 安装后,将提供一个Makefile来编译Linux或Mac OS / X上的引擎。

在同一链接中,您可以查阅QuickJS文档。 想要查询更多的信息。 它还提供了基准信息,显示了Google的V8引擎在QuickJS上的性能,以及它与同一类别中其他工具之间的比较。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。