天天看点

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实现的,易于修改;容易嵌入到其他项目中,好扩展,而且对于游戏开发者最重要的是,运行时占用的内存非常少。

继续阅读