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

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dop251 avatar

dop251/goja

0
View on GitHub↗
6,914 estrellas·453 forks·Go·MIT·16 vistas

Goja

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 types.

The runtime covers a broad range of language primitives, including asynchronous promise execution, proxy object implementation, and the Reflect API. It also includes support for arbitrary precision integers, typed arrays, and standard data structures like maps, sets, and weak maps.

Additional capabilities include script execution profiling for performance analysis, source code mapping for debugging, and utilities for JSON serialization and parsing.

Features

  • ECMAScript Compliant Engines - Functions as a specification-compliant engine for parsing and executing JavaScript code according to ECMAScript standards.
  • Go-Based Language Runtimes - Provides a JavaScript runtime implemented entirely in Go without relying on C bindings or external libraries.
  • Custom Scripting Engines - Provides a complete ECMAScript runtime for executing custom logic within Go applications.
  • Native Type Mappings - Exposes internal Go structs and arrays as JavaScript objects via reflection.
  • JavaScript Engine Embedding - Integrates a full JavaScript execution engine as an embedded component within Go applications.
  • Cross-Language Data Exchange - Passes native values into the script runtime and exports script objects back into native types.
  • Cross-Language Data Mapping - Transforms complex data structures between Go types and JavaScript objects for bidirectional communication.
  • Cross-Language Value Mappings - Translates data types between the Go host and JavaScript runtime while handling circular references.
  • Embedded Scripting Engines - Provides a programmable scripting layer integrated directly into Go binaries for dynamic logic.
  • Foreign Function Bindings - Exposes functions from Go to JavaScript and converts foreign function types into callable local types.
  • Function Execution Models - Executes standard, async, and generator functions while supporting functional patterns like binding, calling, and applying.
  • Host Function Exposure - Converts JavaScript functions into callable Go functions to facilitate bidirectional communication.
  • JavaScript Engines - A full JavaScript runtime implemented entirely in Go.
  • JavaScript Interop - Facilitates the exchange of data and function calls between Go and JavaScript using shared objects and maps.
  • Language Runtime Bridges - Provides a mechanism for bidirectional data exchange and function invocation between Go and JavaScript.
  • Native-to-Script Function Invocations - Allows native Go code to invoke functions defined within the JavaScript environment.
  • Prototype-Based Inheritance - Implements object inheritance and property lookup through a chain of prototype objects.
  • Pure Go Portings - Implements a JavaScript runtime entirely in Go, eliminating the need for Cgo or native dependencies.
  • JavaScript Runtimes - Provides a high-performance embedded environment to execute JavaScript and TypeScript code within a Go host.
  • Abstract Syntax Tree Parsing - Converts JavaScript source code into a structured tree of nodes for program analysis and execution.
  • Asynchronous Execution - Manages asynchronous execution flows using a promise-based model to resolve and reject deferred values.
  • Script Value Exports - Converts JavaScript objects and arrays, including circular references, into native Go types.
  • Host Object Binding - Maps native Go structs and slices to JavaScript objects using reflection to translate field names and methods.
  • Language Map Collections - Implements the native JavaScript Map object for flexible key-value storage and iteration.
  • Property Name Mappings - Translates Go field and method names into JavaScript property names while managing visibility.
  • Struct Field Mappings - Maps native Go struct fields and methods to JavaScript naming conventions.
  • Typed Arrays - Handles fixed-length binary data buffers and views using standardized integer array types.
  • Host Object Binding - Connects custom host-language objects and arrays to the script environment to manage properties.
  • Script-to-Native Type Mappings - Converts native Go map structures into JavaScript objects for standard property access and iteration.
  • CPU Profilers - Collects CPU usage and call stack samples to identify performance bottlenecks in script execution.
  • Dynamic Configuration - Enables the use of JavaScript as a flexible configuration language that can be updated at runtime.
  • Boolean Logic Types - Implements native boolean primitive types and prototype methods to evaluate truthy and falsy values.
  • Date and Time Runtimes - Manipulates date and time by parsing ISO strings and managing timestamps within the execution environment.
  • Object Property Descriptors - Manages object property descriptors to control value visibility and prototype retrieval.
  • Native Array Transformations - Converts native Go slices into JavaScript arrays, maintaining synchronization for reading and modification.
  • Numeric Operation Runtimes - Performs number manipulations including type conversion, precision formatting, and finiteness checks.
  • Custom Array Interfacing - Connects arrays with external data handlers to manage indexed element access and length modifications.
  • Proxy Objects - Implements proxy objects that wrap target objects to intercept and redefine operations like property access.
  • Reflection APIs - Provides a standardized Reflect API for performing runtime meta-operations on objects.
  • Regular Expression Engines - Implements a regular expression engine that transforms and validates patterns according to ECMAScript standards.
  • Set Operations - Implements standard JavaScript Set objects for managing unique value collections.
  • Lexical Analyzers - Transforms raw JavaScript character streams into structured tokens based on ECMAScript rules.
  • Unique Symbol Management - Manages unique symbol values and a global registry to ensure distinct identity for object properties.
  • Runtime Integer Implementations - Processes arbitrary precision integers to support numeric operations exceeding standard double-precision limits.
  • Async Flow Patterns - Implements asynchronous flow patterns by managing promise resolution and rejection to trigger deferred reactions.
  • String Manipulation - Provides native JavaScript string operations including concatenation, substringing, and case conversion.
  • UTF-16 String Implementations - Supports native string construction that handles complex character encodings and invalid UTF-16 surrogate pairs.
  • Compilers and Interpreters - ECMAScript 5.1+ implementation.
  • Language Runtimes - ECMAScript 5.1 implementation written in Go.
  • Scripting Languages - ECMAScript 5.1+ implementation in Go.

Historial de estrellas

Gráfico del historial de estrellas de dop251/gojaGráfico del historial de estrellas de dop251/goja

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace dop251/goja?

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.

¿Cuáles son las características principales de dop251/goja?

Las características principales de dop251/goja son: ECMAScript Compliant Engines, Go-Based Language Runtimes, Custom Scripting Engines, Native Type Mappings, JavaScript Engine Embedding, Cross-Language Data Exchange, Cross-Language Data Mapping, Cross-Language Value Mappings.

¿Qué alternativas de código abierto existen para dop251/goja?

Las alternativas de código abierto para dop251/goja incluyen: robertkrimen/otto — Otto is a Go implementation of a JavaScript interpreter and embedded scripting engine. It provides a runtime… jerryscript-project/jerryscript — JerryScript is a lightweight, ECMAScript-compliant JavaScript engine and bytecode compiler designed for… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… drksephy/es6-cheatsheet — This project is a JavaScript ES6 reference guide and syntax cheatsheet. It serves as an ECMAScript language guide… microsoft/chakracore — ChakraCore is an embedded JavaScript engine designed to be integrated as a library within a host application. Its… lua/lua — Lua is an embeddable scripting language written in ISO C, designed to be integrated into host applications for runtime…

Alternativas open-source a Goja

Proyectos open-source similares, clasificados según cuántas características comparten con Goja.
  • robertkrimen/ottoAvatar de robertkrimen

    robertkrimen/otto

    8,439Ver en GitHub↗

    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

    Go
    Ver en GitHub↗8,439
  • jerryscript-project/jerryscriptAvatar de jerryscript-project

    jerryscript-project/jerryscript

    7,399Ver en 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
    Ver en GitHub↗7,399
  • rhaiscript/rhaiAvatar de rhaiscript

    rhaiscript/rhai

    5,453Ver en GitHub↗

    Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications. It functions as an abstract syntax tree compiler and native interop layer, allowing developers to map Rust types and functions into a scripting environment for bidirectional communication. The project serves as a framework for creating customizable domain-specific languages. It allows for the definition of custom operators, syntax, and restricted execution environments, enabling the creation of specialized languages with tailored functional sets. The engine covers a broad rang

    Rustembeddedembedded-scripting-languageno-std
    Ver en GitHub↗5,453
  • drksephy/es6-cheatsheetAvatar de DrkSephy

    DrkSephy/es6-cheatsheet

    13,327Ver en GitHub↗

    This project is a JavaScript ES6 reference guide and syntax cheatsheet. It serves as an ECMAScript language guide providing technical examples and a curated list of tips for implementing modern JavaScript patterns. The guide covers a wide range of language features, including the use of classes for object blueprints, module systems for code organization, and arrow functions to preserve execution context. It provides instructions on utilizing block-scoped variables, template literals for string interpolation, and destructuring for nested data extraction. The reference also addresses asynchron

    JavaScript
    Ver en GitHub↗13,327
  • Ver las 30 alternativas a Goja→