Duktape

Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint.

Duktape is easy to integrate into a C/C++ project: add duktape.c , duktape.h , and duk_config.h to your build, and use the Duktape API to call ECMAScript functions from C code and vice versa.

Main features

Code and RAM footprint

For a "Hello world" example:

Config Code footprint (kB) Startup RAM (kB) thumb default 148 78 thumb lowmem 96 27 thumb full lowmem 119 1.5 x86 default 187 78 x86 lowmem 124 27 x86 full lowmem 148 1.5

See GCC options for minimizing code footprint. Full lowmem uses "pointer compression" and ROM-based strings/objects. ROM-based strings/objects can also be used without other low memory options.

Current status

Stable

Support

Duktape Wiki: wiki.duktape.org

User community Q&A: Stack Overflow duktape tag

Bugs and feature requests: GitHub issues

General discussion: IRC #duktape on chat.freenode.net (webchat)

Some projects using Duktape

See: Projects using Duktape.

If you're using Duktape in your project, send an e-mail or open a GitHub issue to be added to the list.

Similar engines

There are multiple Javascript engines targeting similar use cases as Duktape, at least:

Also see List of ECMAScript engines.