awesome-repositories.com
المدونة
awesome-repositories.com

اكتشف أفضل مستودعات المصادر المفتوحة باستخدام بحث مدعوم بالذكاء الاصطناعي.

استكشفعمليات بحث منسقةبدائل مفتوحة المصدربرمجيات ذاتية الاستضافةالمدونةخريطة الموقع
المشروعحولكيفية ترتيب النتائجالصحافةخادم MCP
قانونيالخصوصيةالشروط
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jerryscript-project avatar

jerryscript-project/jerryscript

0
View on GitHub↗
7,399 نجوم·694 تفرعات·C·Apache-2.0·4 مشاهداتjerryscript.net↗

Jerryscript

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, alongside customizable memory allocators and external buffer context isolation to support multiple independent execution environments.

The engine provides a comprehensive suite of capabilities including asynchronous task processing, module-based code organization, and a remote debugger client-server architecture for constrained device debugging. It further supports native data exchange, heap statistics collection, and various memory reclamation strategies such as reference counting and manual garbage collection.

The system supports source file amalgamation to simplify the integration of the engine into larger C projects.

Features

  • JavaScript Engine Embedding - Provides a lightweight JavaScript engine designed for embedding into native C applications on resource-constrained devices.
  • Runtime State Snapshots - Executes saved engine states to bypass repetitive parsing and initialization.
  • Bytecode Snapshot Merging - Generates and merges pre-compiled script snapshots to accelerate the initial loading process.
  • Code Organization - Implements a module system using import and export statements to organize application logic into reusable files.
  • Embedded Scripting Runtimes - Enables the execution of JavaScript on memory-constrained hardware to manage device logic and interactions.
  • Isolated Heap Regions - Allocates the engine state and heap within isolated memory regions to support independent execution environments.
  • Custom Memory Allocators - Supports switching between internal and system memory allocators to optimize for hardware constraints or detect leaks.
  • Pluggable Memory Allocators - Allows replacing internal memory management with system-specific allocators to optimize for hardware constraints.
  • Memory Optimization Techniques - Adjusts internal heap sizes and garbage collection limits to fit strict hardware memory constraints.
  • External State Buffers - Allows the engine to use an externally allocated memory region for internal state instead of static allocation.
  • Reference Counting - Implements reference counting to track internal object references and reclaim memory when objects are no longer reachable.
  • Automatic Scope Release - Automatically releases value references when variables leave scope through the use of compiler attributes.
  • C-Based Scripting Engines - Compiles scripts, modules, or functions from string values into executable bytecode.
  • Precompilation - Converts source code into bytecode snapshots to reduce startup time and memory overhead on constrained devices.
  • Native C Interoperability - Facilitates converting JavaScript values to C types and assigning C-defined values as object properties.
  • C Function Bindings - Maps native C functions to JavaScript methods to enable bidirectional communication between native code and scripts.
  • Memory-Efficient Runtimes - Optimizes memory consumption through configurable heap sizes and efficient garbage collection strategies for constrained devices.
  • Native-to-Script Function Invocations - Invokes JavaScript function objects using specific context bindings and provided argument lists from C.
  • JavaScript Runtimes - Implements a lightweight JavaScript runtime designed specifically for resource-constrained embedded environments.
  • Runtime Initializations - Sets up the execution environment and configuration flags required to run JavaScript code.
  • Scripting Runtimes - Provides a small-footprint execution environment tailored for IoT device logic and hardware interaction.
  • Bytecode Generation - Compiles JavaScript source code into intermediate bytecode for efficient virtual machine execution on constrained devices.
  • Runtime - Saves the initialized engine state to binary files to bypass parsing and execution during application startup.
  • Runtime Context Isolation - Allocates external buffers for contexts to manage heap size and run multiple applications simultaneously.
  • Native Module Definitions - Supports the creation of native modules with defined export lists and custom evaluation callbacks.
  • Remote Debugging - Implements a remote client-server architecture to control execution and manage breakpoints in running scripts.
  • Asynchronous Task Processing - Provides an asynchronous task queue to process non-blocking operations within the engine.
  • Debugger Transport Layers - Allows the definition of custom transport layers to encode and transmit messages between the remote debugger client and server.
  • Remote Debugger Connectivity - Transmits engine state and execution control messages over a configurable transport layer to an external debugger.
  • Embedded Debugging Clients - Provides a dedicated client to inspect the internal state of JavaScript code running on constrained IoT devices.
  • ArrayBuffer Management - Implements memory buffer management allowing JavaScript ArrayBuffers to use external backing stores or custom C allocators.
  • Runtime Memory Overhead Tracking - Measures engine overhead by recording memory usage during runtime or termination.
  • Build-Time Bytecode Compilation - Provides a compiler that transforms JavaScript source into bytecode before deployment to reduce resource overhead.
  • Native Module Registration - Registers C-based modules during startup so the engine can resolve them during execution.
  • Script-Controllable Garbage Collection - The C Engine initiates low or high pressure memory reclamation directly from within executing scripts.
  • Dynamic Module Resolvers - Resolves module dependencies via user callbacks and executes the resulting linked modules.
  • External Buffer Strings - Creates string values from external buffers to prevent duplicating large strings in memory.
  • ECMAScript Compliant Engines - Ensures JavaScript code is parsed and executed according to official language specifications.
  • Host Code Evaluation - Executes JavaScript evaluation calls on UTF-8 strings to run code dynamically at runtime.
  • Module Resolvers - Resolves module names to values using custom resolvers and caches results to optimize performance.
  • Object Property Descriptors - Implements property descriptors, including getters and setters, to configure JavaScript object behavior.
  • Runtime Feature Toggles - Toggles specific language capabilities using pre-defined or custom profile files.
  • Native Pointer Attachments - Links C pointers and type information to JavaScript objects for direct access to native data.
  • Manual Memory Reclamation - Initiates manual memory reclamation to free unused values based on a specified operational mode.
  • Property Lookup Optimization - Accelerates object property lookups using cached maps to reduce execution time.
  • Code Execution Engines - Executes previously parsed scripts or modules within the global scope and returns the result.
  • Property Access Caches - Accelerates object property access by caching resolved property locations to avoid repeated linear searches.
  • Object Management - Retrieves or replaces the active global object to isolate environments or configure properties.
  • Property Extraction & Validation - Extracts and validates specific properties from JavaScript objects to assign them to native C variables.
  • Live Process Backtrace Inspection - Provides the ability to retrieve the current execution stack as a list of strings or via frame callbacks for live inspection.
  • Heap Memory Monitoring - Provides utilities to retrieve memory usage data from the heap when statistics features are active.
  • Scripting and Bindings - Ultra-lightweight JavaScript engine optimized for IoT devices.

سجل النجوم

مخطط تاريخ النجوم لـ jerryscript-project/jerryscriptمخطط تاريخ النجوم لـ jerryscript-project/jerryscript

بحث بالذكاء الاصطناعي

استكشف المزيد من المستودعات الرائعة

صف ما تحتاجه بلغة بسيطة — وسيقوم الذكاء الاصطناعي بترتيب آلاف المشاريع مفتوحة المصدر المنسقة حسب الصلة.

Start searching with AI

بدائل مفتوحة المصدر لـ Jerryscript

مشاريع مفتوحة المصدر مشابهة، مرتبة حسب عدد الميزات المشتركة مع Jerryscript.
  • dop251/gojaالصورة الرمزية لـ dop251

    dop251/goja

    6,914عرض على GitHub↗

    Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded scripting engine that allows Go applications to execute JavaScript code and integrate a programmable scripting layer without relying on Cgo or external native dependencies. The project functions as a bridge between Go and JavaScript, enabling bidirectional data exchange and function invocation. It allows Go hosts to expose native structs, slices, and maps as JavaScript objects and arrays, while providing mechanisms to export script values and functions back into native Go type

    Go
    عرض على GitHub↗6,914
  • bellard/mquickjsالصورة الرمزية لـ bellard

    bellard/mquickjs

    5,539عرض على 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
    عرض على GitHub↗5,539
  • svaarala/duktapeالصورة الرمزية لـ svaarala

    svaarala/duktape

    6,208عرض على GitHub↗

    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 in

    JavaScriptduktapejavascriptjavascript-engine
    عرض على GitHub↗6,208
  • c3lang/c3cالصورة الرمزية لـ c3lang

    c3lang/c3c

    5,147عرض على GitHub↗

    c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte

    C3c3compilerlanguage
    عرض على GitHub↗5,147
عرض جميع البدائل الـ 30 لـ Jerryscript→

الأسئلة الشائعة

ما هي وظيفة jerryscript-project/jerryscript؟

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.

ما هي الميزات الرئيسية لـ jerryscript-project/jerryscript؟

الميزات الرئيسية لـ jerryscript-project/jerryscript هي: JavaScript Engine Embedding, Runtime State Snapshots, Bytecode Snapshot Merging, Code Organization, Embedded Scripting Runtimes, Isolated Heap Regions, Custom Memory Allocators, Pluggable Memory Allocators.

ما هي البدائل مفتوحة المصدر لـ jerryscript-project/jerryscript؟

تشمل البدائل مفتوحة المصدر لـ jerryscript-project/jerryscript: dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded… bellard/mquickjs — mQuickjs is a compact JavaScript engine designed for memory-constrained devices, such as microcontrollers, requiring… svaarala/duktape — Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++… c3lang/c3c — c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static… denoland/rusty_v8 — rusty_v8 is a Rust wrapper for the V8 JavaScript engine that allows for the embedding of a JavaScript runtime into… bellard/quickjs — QuickJS is a lightweight, memory-efficient JavaScript engine and runtime designed for embedding within C applications.…