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
lua avatar

lua/lua

0
View on GitHub↗
9,768 stars·1,899 forks·C·23 viewslua.org↗

Lua

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

The project covers a broad set of capabilities including object-oriented programming patterns, module and package management, and runtime exception handling. It also provides tools for program state inspection, pattern-based text processing, and Unicode text handling.

The engine is embedded into host applications through a minimal and portable ISO C host API.

Features

  • Associative Array Data Models - Implements a flexible single table structure that represents lists, dictionaries, and objects by combining arrays with hash maps.
  • Embedded Scripting Engines - Provides a lightweight scripting engine designed to be integrated into host applications for runtime customization.
  • Native Module Development - Allows the creation of high-performance modules in C to extend the functional capabilities of the scripting environment.
  • C Extension Interfaces - Provides APIs for integrating C and C++ code to create high-performance extensions for the runtime.
  • Host Function Interfacing - Provides a portable interface for calling native functions and embedding the engine from a host application.
  • Associative Table Management - Stores and organizes information using flexible tables that support lists, dictionaries, sets, and matrices.
  • Automatic Memory Management - Reclaims unused memory incrementally through garbage collection to maintain steady performance.
  • C-Based Embedding APIs - Provides a minimal and portable ISO C interface for embedding the scripting engine into host applications.
  • C-Based Scripting Engines - Ships an efficient execution environment written in ISO C with a thin API for native module extensions.
  • Dynamic Data Modeling - Provides a flexible data system using tables and metatables to implement associative arrays and prototype-based inheritance.
  • Host Function Exposure - Enables host programs to register C functions that are accessible and callable from within Lua scripts.
  • Incremental Garbage Collection - Reclaims memory in small steps during program execution to prevent long pauses and maintain a consistent frame rate.
  • Language Bindings - Provides interfaces and bindings that allow the language to interoperate with other programming languages and frameworks.
  • Prototype-Based Inheritance - Implements a prototype-based inheritance system where objects inherit properties directly from other objects.
  • Scripting Languages - Provides a lightweight, portable interpreted language designed for automation and integration into host environments.
  • Garbage Collectors - Implements an automatic memory management system that reclaims unreachable objects incrementally.
  • Dispatch Tables - Uses metatables as dispatch tables to implement prototype-based inheritance and operator overloading.
  • Cooperative Schedulers - Implements a cooperative scheduler where coroutines voluntarily yield control to manage concurrent execution flows.
  • Text Pattern Matching - Searches and manipulates strings using a dedicated system of patterns and captures.
  • Code Execution Sandboxes - Creates protected environments by isolating global state to execute untrusted code safely.
  • Simulation Patterns - Simulates classes and methods by storing functions in tables and utilizing self-referencing receiver syntax.
  • Module and Package Management - Organizes code into reusable components and loads external libraries into the execution environment.
  • Register-Based Bytecode - Utilizes a set of virtual registers instead of a stack to reduce instruction count and improve execution speed.
  • Runtime Exception Handling - Defines custom fallback handlers to respond to abnormal events such as absent table fields or type mismatches.
  • Stack-Based Virtual Machines - Implements a virtual machine that uses a stack structure for pushing and popping values during computation.
  • Data Structure Implementations - Enables the implementation of complex data structures and specialized containers using tables and metatables.
  • Code Sandboxing Environments - Creates isolated environments by restricting global state to execute untrusted scripts safely.
  • Isolated Execution Sandboxes - Creates isolated execution environments to run untrusted scripts safely without compromising the host.
  • Protected Calls - Wraps function execution in a recovery mechanism that catches runtime errors to prevent the host application from crashing.
  • Register-Pressure Optimizations - Executes bytecode using a register-based virtual machine to reduce memory access and improve processing speed.
  • Coroutine Frameworks - Supports pausing and resuming execution threads using coroutines for cooperative concurrency.
  • Language Implementations - Official ANSI C interpreter for the language.
  • Programming Languages - Lightweight scripting language engine.
  • Programming Utilities - Efficient and lightweight scripting language for embedding.

Star history

Star history chart for lua/luaStar history chart for lua/lua

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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

Open-source alternatives to Lua

Similar open-source projects, ranked by how many features they share with Lua.
  • yuin/gopher-luayuin avatar

    yuin/gopher-lua

    6,933View on GitHub↗

    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 c

    Gogogopher-lualua
    View on GitHub↗6,933
  • janet-lang/janetjanet-lang avatar

    janet-lang/janet

    4,308View on GitHub↗

    Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an embeddable scripting engine. It functions as a fiber-based concurrency runtime and includes a parsing engine based on Parsing Expression Grammars. The project is distinguished by its ability to be integrated into C or C++ applications via a minimal header interface. It utilizes a Lisp-style macro system for compile-time code transformation and employs prototype-based table inheritance for object-oriented behavior. The runtime covers a broad set of capabilities, including asynchronous

    Ccfunctional-languageimperative-language
    View on GitHub↗4,308
  • mruby/mrubymruby avatar

    mruby/mruby

    5,584View on GitHub↗

    mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into a compact, platform-independent bytecode that executes on a register-based virtual machine, and exposes a stable C API for host programs to initialize the interpreter, load bytecode, and invoke Ruby methods at runtime. The interpreter distinguishes itself through a tightly coupled parser and compiler that performs lexical analysis, syntax parsing, and bytecode generation in a single pass without constructing an intermediate AST, minimizing memory overhead. It also includes a

    C
    View on GitHub↗5,584
  • svaarala/duktapesvaarala avatar

    svaarala/duktape

    6,208View on 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
    View on GitHub↗6,208
See all 30 alternatives to Lua→

Frequently asked questions

What does lua/lua do?

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.

What are the main features of lua/lua?

The main features of lua/lua are: Associative Array Data Models, Embedded Scripting Engines, Native Module Development, C Extension Interfaces, Host Function Interfacing, Associative Table Management, Automatic Memory Management, C-Based Embedding APIs.

What are some open-source alternatives to lua/lua?

Open-source alternatives to lua/lua include: yuin/gopher-lua — Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an… svaarala/duktape — Duktape is an embeddable JavaScript engine and portable scripting runtime designed for integration into C and C++… mruby/mruby — mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into… microsoft/chakracore — ChakraCore is an embedded JavaScript engine designed to be integrated as a library within a host application. Its… dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded…