Duktape 介紹


譯文作者:Atypiape
原文來自:Duktape
寫作日期:2016-08-12

Duktape 是一個輕量級的嵌入式 JavaScript 引擎,專注於可移植性和低占用率。

Duktape 可以被輕松地集成進一個 C/C++ 項目中:只需要將 duktape.c、duktape.h 和 duk_config.h 三個文件加入你的構建項目中,並使用 Duktape API 來實現 C 代碼與 ECMAScript 函數的雙向調用。

主要特性

  • 可嵌入、可移植、低占用:能夠運行在 256kB 閃存(Flash)和 64kB 系統內存(RAM)的平台上;
  • 兼容 ECMAScript E5/E5.1 標准,並借鑒了 ECMAScript E6 的部分特性;
  • 支持 Khronos/ES6 的 TypedArray 對象和 Node.js 的 Buffer 對象;
  • 內置調試器;
  • 內置正則表達式引擎;
  • 內置 Unicode 支持;
  • 最小限度的平台依賴;
  • 整合了引用計數機制和 mark-and-sweep 垃圾回收機制;
  • 自定義特性,如協同程序(coroutines)、內置日志框架、內置基於 CommonJS 的模塊加載框架;
  • 屬性(property)虛擬化中使用了 ECMAScript E6 Proxy 對象的一個子集;
  • 以字節碼轉儲(dump)/加載的方式,來對已編譯函數進行緩存;
  • 采用 MIT 自由許可協議。

代碼和內存占用

_ x86 默認 x86 低端內存 x86 全低端內存
代碼 170kB 150kB 200kB
啟動內存 68kB 35kB 4kB

請參考 GCC 選項中的最小化代碼占用。全低端內存選項使用了“指針壓縮”和基於 ROM 的字符串/對象。基於 ROM 的字符串/對象也可以用於其他非低端內存選項。

當前狀態

  • 穩定

技術支持

使用 Duktape 的項目

參見:使用 Duktape 的項目

如果你在自己的項目中使用了 Duktape,可以發送一封郵件或者開一個 GitHub issue 來將項目加到列表中。

類似的引擎

有多個與 Duktape 定位類似的 JavaScript 引擎,至少有如下幾個:

也可以參考 ECMAScript 引擎列表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM