20 个仓库
Integrating a JavaScript execution engine as a component within a larger host application.
Distinct from WebAssembly Engine Embedding: Specializes the general concept of engine embedding specifically for JavaScript, distinct from WebAssembly.
Explore 20 awesome GitHub repositories matching programming languages & runtimes · JavaScript Engine Embedding. Refine with filters or upvote what's useful.
V8 is a high-performance JavaScript and WebAssembly engine designed to compile and execute code within host applications. It functions as an embeddable scripting engine and just-in-time compiler, providing a portable library for integrating dynamic script execution into native software environments. The engine incorporates a WebAssembly runtime to execute compiled binary code for a stack-based virtual machine at near-native speeds. It enables native application scripting by allowing a JavaScript execution environment to be embedded directly into a native program to handle dynamic logic. The
Designed as an embeddable engine that can be integrated into native applications to handle dynamic logic.
Hermes is a mobile-optimized JavaScript runtime and engine designed for React Native. It functions as an ahead-of-time bytecode compiler that converts JavaScript source code into a dense binary format during the build process to eliminate the need for parsing and compilation at runtime. The engine features a baseline JIT compiler that generates native machine code for frequently called functions to improve performance after the initial launch. It also includes a mobile-optimized garbage collector that precisely identifies reachable objects to minimize memory overhead and pause times on resour
Designed to be embedded as the primary JavaScript execution engine within React Native host applications.
WasmEdge is an extensible WebAssembly runtime that executes WebAssembly bytecode in a secure sandbox for cloud, edge, and embedded applications. It functions as a multi-language compiler, compiling applications written in Rust, JavaScript, Go, and Python into WebAssembly bytecode for sandboxed execution, and as a server-side JavaScript runtime that runs JavaScript programs with ES6 modules, NPM packages, and Node.js-compatible APIs. The runtime also serves as an AI inference runtime, executing AI models from JavaScript using WASI-NN plug-ins for inference tasks on personal devices and edge har
Builds custom runtime capabilities by adding native functions written in C, Go, or Rust to the WebAssembly environment.
Napajs is an embeddable JavaScript engine and multi-threaded runtime designed to be integrated directly into other software applications as a component. It serves as a parallel computation framework that allows JavaScript code to execute across multiple threads, bypassing the standard single-threaded event loop limitation to handle CPU-intensive tasks. The runtime is distinguished by its ability to load and execute modules from the NPM ecosystem and its pluggable execution environment. This architecture allows for custom implementations of memory allocation, system logging, and performance me
Provides the core capability of integrating a JavaScript runtime directly into other software applications as a component.
Otto is a Go implementation of a JavaScript interpreter and embedded scripting engine. It provides a runtime environment for executing JavaScript code within native applications and includes a parser that converts source code into an abstract syntax tree for analysis and processing. The project enables the creation of custom scripting interfaces by binding native Go functions into the JavaScript global scope. It also includes a utility to translate JavaScript regular expression patterns into compatible formats for other programming languages. The engine supports safe script sandboxing throug
Integrates a full JavaScript execution engine as a component within a Go host application.
pysheeet 是一个技术参考库,提供了一系列精选的代码片段和实现模式,用于高级 Python 开发、系统集成和高性能计算。它充当实现底层网络编程、原生 C 扩展以及异步和并发编程的综合指南。 该项目为大语言模型的开发和部署提供了专门的框架,包括用于分布式 GPU 推理和高性能服务的工具。它还包括用于高性能计算集群编排的详细模式,涵盖 GPU 资源分配和多节点工作负载管理。 该库涵盖了广泛的功能,包括安全网络通信和加密、对象关系映射和数据库管理,以及复杂数据结构和算法的实现。它还提供用于内存管理、通过外部函数接口(FFI)进行原生互操作以及系统级 OS 集成的实用程序。
Provides documentation and implementation patterns for integrating C and C++ code into Python applications.
miniblink49 is a stripped-down Blink browser kernel and embedded web UI framework used to integrate HTML user interfaces into native C++ applications. It functions as a C++ JavaScript interop bridge that maps high-level script calls to low-level native logic and provides a resource-optimized headless browser engine for processing web content without a graphical interface. The project enables custom browser environment control by bypassing cross-origin security policies to allow requests across different domains. It further allows for the interception of network resources to replace remote ass
Embeds a high-performance JavaScript engine within a C++ application to process script logic.
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,
Provides a lightweight JavaScript engine designed for embedding into native C applications on resource-constrained devices.
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
Integrates a full JavaScript execution engine as an embedded component within Go applications.
Duktape 是一个可嵌入的 JavaScript 引擎和便携式脚本运行时,专为集成到 C 和 C++ 应用程序中而设计。它作为一个轻量级的 ECMAScript 运行时,提供了一个 C-JavaScript 桥接器,用于在原生代码和脚本执行环境之间交换数据和调用函数。 该引擎包含一个 ECMAScript 字节码编译器,允许将编译后的函数序列化并缓存到磁盘,以减少应用程序启动时间。它使用符合 CommonJS 标准的模块加载器来组织脚本依赖项。 该运行时涵盖了多种功能,包括用于异步执行的协作式协程调度,以及结合了引用计数与标记清除收集的混合垃圾回收系统。它还通过 JSON 代理提供调试协议,并支持针对受限硬件的自定义调试传输。 构建配置通过 YAML 驱动的设置进行管理,以生成特定于平台的 C 头文件。
Provides a lightweight ECMAScript runtime designed for seamless integration as a component within C and C++ applications.
Defold is a cross-platform game engine and integrated development environment used to create 2D and 3D games for desktop, mobile, and web targets. It combines a game development IDE for asset and scene management with a multi-platform build system and a scripting environment based on Lua. The engine includes a specialized headless runtime for hosting game servers and performing automated testing without a graphical interface. It supports native engine extensions, allowing custom low-level code to be integrated into the core to expand functionality beyond the standard scripting interface. The
Enables the integration of low-level C++ code to provide specialized functionality beyond the Lua scripting interface.
Puerts is a TypeScript runtime embedder and game engine scripting framework designed to integrate dynamic languages into low-level host applications. It functions as a high-performance cross-language API bridge, allowing developers to execute gameplay logic and editor scripts using TypeScript and JavaScript within a compiled host environment. The project distinguishes itself through a unified bridging API that supports pluggable scripting backends, enabling the selection or hot-swapping of different language engines to balance execution speed against binary size. It provides automated type de
Integrates a JavaScript and TypeScript execution engine directly into low-level host applications.
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
Embeds a JavaScript runtime as a component within a host application, requiring as little as 10 KB of RAM and 100 KB of ROM.
CPython-Internals 是一个针对 CPython 解释器的技术实现指南和参考资料。它提供了对内部 C 源代码和架构的详细分析,重点关注控制解释器行为的逻辑。 该项目记录了 Python 对象模型和编译流水线,追踪从原始语法和抽象语法树(AST)到可执行字节码的过程。它还作为 C 扩展开发的参考,解释了如何与内部数据结构交互以及使用 C API。 该材料涵盖了内存管理,包括引用计数和分代垃圾回收,以及全局解释器锁(GIL)的功能。
Documents the native C API used to create high-performance Python extensions.
gdext 为 Godot 4 引擎提供了一组用于编写高性能原生 Rust 游戏逻辑的语言绑定。它作为一个框架,通过 GDExtension 库创建原生引擎扩展和自定义类,允许开发者在不重新编译引擎源代码的情况下扩展核心引擎功能。 该项目包含一个专门的 Rust WebAssembly 工具链,用于将原生逻辑编译为模块以便在 Web 浏览器中执行。该系统支持 WebAssembly 兼容编译,并针对 Web 线程和模块调试进行了特定配置。 该工具包涵盖了广泛的引擎集成能力,包括自定义类定义、场景树节点管理和类型安全信号处理。它为物理模拟、程序化内容生成和自定义编辑器插件的开发提供了实用程序。 开发过程由用于项目设置、原生扩展测试和逻辑单元测试的自动化工具支持。
Provides a framework for creating native engine extensions and custom classes without recompiling the core engine source.
Templater is an Obsidian template engine and JavaScript automation plugin that functions as a dynamic content generator and workflow orchestrator. It enables the automation of document creation and note-taking tasks through the use of dynamic placeholders and embedded logic. The project distinguishes itself by executing custom JavaScript and shell commands to manipulate files and insert data. It allows for interactive note generation via modal prompts for user input and the import of external JavaScript modules to provide reusable logic outside of template files. Its capabilities include pro
Executes custom JavaScript code within templates to manipulate data and access global application variables.
rusty_v8 is a Rust wrapper for the V8 JavaScript engine that allows for the embedding of a JavaScript runtime into native applications. It provides core components for managing engine bindings, memory allocation, sandboxed isolates, and the execution of WebAssembly modules. The project features a native host function bridge to map Rust functions to JavaScript objects and a dedicated memory allocator to manage thread-safe allocation and heap pressure. It includes a system for compiling and executing binary WebAssembly modules within the hosted native environment. The runtime covers capabiliti
Integrates the V8 JavaScript engine into native Rust applications to execute scripts and manage the runtime.
Cinder is a high-performance Python runtime implementation based on CPython. It is designed as an execution environment optimized for large-scale distributed systems and cloud environments. The project integrates a distributed memory cache and an asynchronous memory layer to manage data across multiple network nodes. It also provides a native C extension framework for developing high-performance compiled modules that link directly into the interpreter memory space. The system covers capabilities for asynchronous data retrieval, large-scale execution, and the integration of embedded scripting
Provides a stable C-language interface for linking high-performance compiled modules directly into the interpreter memory space.
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
Provides a minimal C API for embedding a standards-compliant JavaScript runtime into host applications.
该项目为 Node-API 提供了一个仅包含头文件的 C++ 包装器,作为构建 Node.js 高性能原生插件的框架。它充当 C++ 与 JavaScript 之间的桥梁,提供了一个面向对象的接口,简化了编译扩展的创建,同时管理了语言边界的复杂性。 该库通过为数据编组和内存管理提供类型安全抽象而脱颖而出,确保原生和脚本端对象被正确追踪和回收。它包括用于协调后台线程与主事件循环之间异步任务的机制,在卸载密集型计算的同时防止数据损坏。此外,它将原生异常映射到标准脚本错误类型,确保一致的诊断报告和故障处理。 除了其核心桥接功能外,该项目还支持原生开发的整个生命周期,包括将 C++ 类和方法暴露给 JavaScript 运行时。它提供了用于管理环境生命周期、自动化代码迁移以及执行性能基准测试以评估原生组件行为的工具。
Provides a framework for building high-performance native addons for Node.js by wrapping native interfaces into object-oriented structures.