awesome-repositories.com
Blog
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
·
yuin avatar

yuin/gopher-lua

0
View on GitHub↗
6,933 estrellas·700 forks·Go·MIT·7 vistas

Gopher Lua

Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment.

The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go.

The engine covers a wide range of capabilities including cooperative multitasking through coroutines, memory limit management for sandboxed execution, and the ability to extend the environment with custom types via metatables. It also supports asynchronous communication by integrating script execution with Go channels and providing context-driven execution termination for timeout or lifecycle management.

Features

  • Embedded Script Execution - Provides a complete Lua virtual machine and compiler to execute scripts within a Go application.
  • Embedded Scripting Engines - Provides a complete engine for integrating the Lua scripting language into Go applications for dynamic logic.
  • Function Calling Interfaces - Provides an interface for Lua scripts to trigger and execute native Go functions.
  • Script-to-Native Type Mappings - Translates Lua data types such as strings and numbers into their native Go equivalents.
  • VM Runtime Environments - Manages the execution environment lifecycle by configuring memory limits and initializing core system libraries.
  • Host-Language Channel Integration - Enables asynchronous communication and selection operations between Lua scripts and Go routines using shared channels.
  • Associative Arrays - Implements Lua tables for manipulating data using both indexed arrays and keyed dictionaries.
  • Bytecode Compilation - Includes a compiler that transforms Lua source code into binary bytecode for faster virtual machine execution.
  • Bytecode Virtual Machines - Implements a custom virtual machine that executes Lua bytecode for high-performance script evaluation.
  • Host Function Exposure - Allows registering native Go functions as callable global variables within the Lua environment.
  • Module and Package Management - Supports packaging functions and variables into modules that can be dynamically loaded using the require statement.
  • Native-to-Script Invocations - Allows the host Go application to call functions defined inside a Lua script with specific parameters.
  • Lua - Provides a complete native implementation of the Lua language and its standard libraries in Go.
  • Virtual Machines - Implements a virtual machine and compiler for executing Lua scripts and exchanging data with Go.
  • Source Code Compilers - Includes a compiler that transforms Lua source code into bytecode for faster virtual machine execution.
  • Modular Plugin Systems - Enables building modular architectures where external Lua scripts extend the core functionality of a Go program.
  • Virtual Machine - Uses a virtual stack to push, replace, or remove values for data exchange between Go and Lua.
  • VM Stack Value Passing - Implements a shared stack for pushing and popping values to exchange data between Go and the Lua VM.
  • Game Logic Scripting - Enables the execution of custom interactive behaviors and logic via an embedded Lua engine.
  • Command-Line Interpreters - Includes a standalone interpreter that allows executing Lua scripts directly from the command line.
  • Runtime Memory Limits - Restricts the maximum amount of memory the virtual machine can use to prevent system resource exhaustion.
  • Configuration Scripting - Allows replacing static configuration files with Lua scripts for complex runtime calculations and conditional logic.
  • Script-Channel Integration - Links Lua script execution with Go channels to enable asynchronous data exchange between different execution states.
  • Multi-threaded Execution - Implements cooperative multitasking via coroutines to pause and resume execution threads.
  • Channel-Based Concurrency - Implements channel-based concurrency to facilitate safe data exchange and synchronization between concurrent processes.
  • Coroutines - Supports lightweight cooperative multitasking through coroutines that can be paused and resumed.
  • Built-ins - Provides control over which standard libraries are loaded into the state to restrict system access.
  • Metatable-Based Type Extensions - Enables the definition of custom data types and behaviors by attaching metatables to base objects.
  • Script Module Resolution - Imports Lua scripts from the filesystem using configurable search paths to extend script functionality.
  • Sandboxed Code Execution Environments - Supports running untrusted scripts in a controlled environment with restricted memory and limited system access.
  • Standard Library Implementations - Provides a complete set of standard Lua libraries for common tasks like math and string manipulation.
  • User-Defined Types - Enables the definition of custom data types and behaviors using user-defined data and metatables.
  • Message Passing Channels - Implements synchronized communication primitives for exchanging data between concurrent script states.
  • Bytecode Caching - Caches compiled Lua scripts in binary bytecode format to reduce initialization time and memory overhead.
  • Context-Aware Cancellation - Provides mechanisms to terminate running Lua scripts using Go context signals for timeout and lifecycle management.
  • VM Interrupt Terminations - Allows stopping a running VM state using contexts to manage timeouts or manual cancellation.
  • Compilers and Interpreters - Lua virtual machine and compiler.
  • Embedded Scripting - Lua 5.1 virtual machine and compiler.
  • Language Implementations - Virtual machine and compiler implemented in Go.
  • Language Runtimes - Lua 5.1 virtual machine and compiler for Go.
  • Scripting Languages - Lua 5.1 VM and compiler written in Go.

Historial de estrellas

Gráfico del historial de estrellas de yuin/gopher-luaGráfico del historial de estrellas de yuin/gopher-lua

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 yuin/gopher-lua?

Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment.

¿Cuáles son las características principales de yuin/gopher-lua?

Las características principales de yuin/gopher-lua son: Embedded Script Execution, Embedded Scripting Engines, Function Calling Interfaces, Script-to-Native Type Mappings, VM Runtime Environments, Host-Language Channel Integration, Associative Arrays, Bytecode Compilation.

¿Qué alternativas de código abierto existen para yuin/gopher-lua?

Las alternativas de código abierto para yuin/gopher-lua incluyen: dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded… d5/tengo — Tengo is a dynamic, embeddable scripting language for Go applications that allows for the execution of custom scripts… robertkrimen/otto — Otto is a Go implementation of a JavaScript interpreter and embedded scripting engine. It provides a runtime… luau-lang/luau — Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.…

Alternativas open-source a Gopher Lua

Proyectos open-source similares, clasificados según cuántas características comparten con Gopher Lua.
  • dop251/gojaAvatar de dop251

    dop251/goja

    6,914Ver en 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
    Ver en GitHub↗6,914
  • d5/tengoAvatar de d5

    d5/tengo

    3,821Ver en GitHub↗

    Tengo is a dynamic, embeddable scripting language for Go applications that allows for the execution of custom scripts without requiring the host binary to be recompiled. It operates as a bytecode-compiled virtual machine, transforming source code into a compact intermediate representation for execution on a stack-based engine. The system is designed as a secure scripting sandbox, enforcing strict limits on memory allocation and execution time to safely run untrusted code. It supports concurrent script execution by cloning compiled bytecode and using recursive immutability conversion to share

    Go
    Ver en GitHub↗3,821
  • 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
  • luau-lang/luauAvatar de luau-lang

    luau-lang/luau

    5,635Ver en GitHub↗

    Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an embeddable scripting engine, and a static code analyzer designed to provide a secure, sandboxed execution environment for host applications. The project is distinguished by its gradual typing system, which combines automatic type inference with optional manual annotations to detect bugs without requiring full static typing. It also features native vector mathematics for high-performance operations and a specialized debugging system that uses bytecode patching to minimize executi

    C++luaprogramming-languagescripting-language
    Ver en GitHub↗5,635
Ver las 30 alternativas a Gopher Lua→