天天看點

Duktape:在C/C++項目中嵌入JavaScript

Duktape較小的代碼庫、簡單的建構系統,使其非常适合嵌入在其他系統中使用。從技術角度看,它本質上和Lua項目很像,但是它運作的JavaScript卻有着更大的生态系統和更多的開發者。——Tim Caswell

使用Duktape非常簡單,隻需要把duktape.c和duktape.h添加到項目中。JavaScript和C之間的綁定是雙向的,是以可以互相調用。“Hello World!”示例如下:

#include "duktape.h"

int main(int argc, char *argv[]) {

  duk_context *ctx = duk_create_heap_default();

  duk_eval_string(ctx, "print('Hello world!');");

  duk_destroy_heap(ctx);

  return 0;

}

使得Duktape可以通路作業系統,進而成為一個支援非阻塞I/O、定時器(timer)、子程序,并支援加載libuv所提供的有用的工具函數的完整通用程式設計環境。
Lua很小,可移植,而且是用ANSI C實作的,易于修改;容易嵌入到其他項目中,好擴充,而且對于遊戲開發者最重要的是,運作時占用的記憶體非常少。

繼續閱讀