awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
svaarala avatar

svaarala/duktape

0
View on GitHub↗
6,208 stars·545 forks·JavaScript·MIT·14 views

Duktape

Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++ applications. It functions as a lightweight ECMAScript runtime that provides a C-JavaScript bridge for exchanging data and invoking functions between native code and a script execution environment.

The engine includes an ECMAScript bytecode compiler that allows for the serialization and caching of compiled functions to disk to reduce application startup time. It organizes script dependencies using a CommonJS-compliant module loader.

The runtime covers a variety of capabilities including cooperative coroutine scheduling for asynchronous execution and a hybrid garbage collection system that combines reference counting with mark-and-sweep collection. It also provides a debugging protocol via a JSON proxy and supports custom debug transports for restricted hardware.

Build configurations are managed through YAML-driven settings to generate platform-specific C headers.

Features

  • C-Based Embedding APIs - Provides a minimal, portable C API for integrating the ECMAScript engine into native host applications.
  • Scripting Engines - Provides a lightweight ECMAScript engine designed to be embedded into native C and C++ applications.
  • Embedded Scripting Runtimes - Provides a portable execution environment that brings JavaScript logic to memory-constrained embedded systems.
  • Lightweight Scripting Engines - Provides a portable ECMAScript engine optimized for minimal memory overhead in resource-constrained software.
  • Hybrid Garbage Collectors - Utilizes a hybrid garbage collection system combining reference counting and periodic mark-and-sweep collection.
  • Garbage Collection - Implements a hybrid garbage collection system combining reference counting and mark-and-sweep to automatically reclaim memory.
  • Native API Bridges - Provides a dedicated communication interface to exchange data and invoke functions between native C code and JavaScript.
  • C-Based Scripting Engines - Implements a lightweight ECMAScript runtime designed for integration into C and C++ applications.
  • JavaScript Engine Embedding - Provides a lightweight ECMAScript runtime designed for seamless integration as a component within C and C++ applications.
  • Embedded JavaScript Scripting - Adds JavaScript logic to C or C++ applications to enable flexible scripting and automation.
  • Embedded Script Execution - Executes JavaScript logic within native applications to provide flexible behavior with a small memory footprint.
  • Native C-JavaScript Bridges - Implements a dedicated interface for exchanging data and invoking functions between native C code and the JavaScript environment.
  • CommonJS Module Loaders - Implements a CommonJS-compliant module loader to organize script dependencies and namespaces.
  • Native C Interoperability - Provides a bridge for exchanging data and invoking functions between native C code and the JavaScript runtime.
  • Native Application Scripting - Integrates a lightweight script engine into native programs for task automation and behavioral customization.
  • CommonJS Module Loaders - Organizes and loads script modules by following the CommonJS specification.
  • Bytecode Caches - Provides the ability to save and load compiled function bytecode to disk to reduce application startup time.
  • Script Debugging Tools - Provides utilities for inspecting and controlling script execution state via a web-based interface.
  • Runtime Debug Protocols - Ships a debugging protocol via a JSON proxy and supports custom debug transports for restricted hardware.
  • Source-to-Bytecode Compilers - Includes an ECMAScript bytecode compiler that transforms source code into a compact binary format.
  • Bytecode Serialization - Enables the serialization of compiled function bytecode to disk to improve execution speed and startup time.
  • External Script Execution - Evaluates JavaScript code from external files or an interactive console to extend application behavior.
  • CommonJS Module Loaders - Includes a CommonJS-compliant module loader to organize script dependencies and namespaces.
  • Runtime Debugging Protocols - Provides a debugging protocol via a JSON proxy to route engine state to a web-based interface.
  • Stack Frame Optimizations - Implements tail-call optimization to efficiently handle recursive calls within asynchronous flows.
  • Bytecode Caching - Provides mechanisms to serialize and store compiled bytecode on disk to minimize application startup time.
  • Cooperative Schedulers - Implements cooperative scheduling and tail-call optimization to manage asynchronous execution flows.
  • Language Interop - Embeddable JavaScript engine.
  • Language Runtimes - Embeddable JavaScript engine with WebAssembly portability.
  • Programming Utilities - Embeddable JavaScript engine for portable applications.
  • Scripting and Bindings - Compact, embeddable JavaScript engine for resource-constrained applications.

Star history

Star history chart for svaarala/duktapeStar history chart for svaarala/duktape

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Duktape

These projects share indexed features with Duktape. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • jerryscript-project/jerryscriptjerryscript-project avatar

    jerryscript-project/jerryscript

    7,399View on GitHub↗

    JerryScript is a lightweight, ECMAScript-compliant JavaScript engine and bytecode compiler designed for resource-constrained devices. It serves as an embedded interpreter and IoT scripting runtime, enabling the execution of JavaScript code within native C applications on hardware with limited memory. The project differentiates itself through a focus on low-memory runtime management, utilizing bytecode precompilation and pre-compiled state snapshots to reduce startup time and memory overhead. It features a C-binding native bridge for bidirectional communication between native code and scripts,

    C
    View on GitHub↗7,399
  • quickjs-ng/quickjsquickjs-ng avatar

    quickjs-ng/quickjs

    2,703View on GitHub↗

    QuickJS is a lightweight, embeddable ECMAScript runtime that executes JavaScript programs conforming to the latest specification. It is designed as a compact, standards-compliant JavaScript engine suitable for resource-constrained environments and embedded systems, available both as prebuilt binaries and as source code that can be compiled for custom integration. The engine distinguishes itself through a minimal runtime footprint achieved by a single-pass compiler that produces compact bytecode, executed on a stack-based virtual machine. Memory management uses reference-counting garbage colle

    C
    View on GitHub↗2,703
  • lua/lualua avatar

    lua/lua

    9,768View on GitHub↗

    Lua is an embeddable scripting language written in ISO C, designed to be integrated into host applications for runtime customization. It provides a C-based scripting engine and a prototype-based object model that utilizes associative arrays and metatables to implement inheritance and complex data structures. The language features a cooperative multitasking system that manages concurrent execution threads via coroutines and an incremental garbage collector for automatic memory management. It includes a safe code sandbox to isolate global state and run untrusted scripts within a protected envir

    C
    View on GitHub↗9,768
  • bellard/mquickjsbellard avatar

    bellard/mquickjs

    5,539View on GitHub↗

    mQuickjs is a compact JavaScript engine designed for memory-constrained devices, such as microcontrollers, requiring as little as 10 KB of RAM and 100 KB of ROM. It achieves this through a fixed-buffer memory allocation scheme that avoids system heap usage, a compacting tracing garbage collector that eliminates fragmentation, and a ROM-embedded standard library that reduces both memory footprint and startup time. The engine compiles JavaScript source into portable bytecode that can be stored in persistent memory and executed without reparsing, and it emulates IEEE 754 floating-point arithmetic

    C
    View on GitHub↗5,539
Compare all 30 related projects→

Frequently asked questions

What does svaarala/duktape do?

Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++ applications. It functions as a lightweight ECMAScript runtime that provides a C-JavaScript bridge for exchanging data and invoking functions between native code and a script execution environment.

What are the main features of svaarala/duktape?

The main features of svaarala/duktape are: C-Based Embedding APIs, Scripting Engines, Embedded Scripting Runtimes, Lightweight Scripting Engines, Hybrid Garbage Collectors, Garbage Collection, Native API Bridges, C-Based Scripting Engines.

Which projects share features with svaarala/duktape?

Projects with overlapping indexed features include: jerryscript-project/jerryscript — JerryScript is a lightweight, ECMAScript-compliant JavaScript engine and bytecode compiler designed for… quickjs-ng/quickjs — QuickJS is a lightweight, embeddable ECMAScript runtime that executes JavaScript programs conforming to the latest… lua/lua — Lua is an embeddable scripting language written in ISO C, designed to be integrated into host applications for runtime… bellard/mquickjs — mQuickjs is a compact JavaScript engine designed for memory-constrained devices, such as microcontrollers, requiring… mruby/mruby — mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an…