A lightweight, dependency-free C++17 library for binding Lua to C++ with support for multiple Lua implementations.
LuaBridge3 is a lightweight, dependency-free library for binding the Lua scripting language to C++. It allows C++ applications to expose functions, classes, and data structures to Lua, enabling scripting and runtime extensibility. The library solves the problem of creating a high-performance, type-safe bridge between C++ and Lua without requiring complex build systems or external dependencies.
C++ developers who need to embed Lua as a scripting language in their applications, particularly in game development, tools, or software requiring runtime customization. It's also suitable for projects targeting multiple Lua implementations like LuaJIT or Luau.
Developers choose LuaBridge3 for its headers-only simplicity, competitive performance comparable to sol2, and broad compatibility with Lua versions including LuaJIT and Luau. Its modern C++17 design, support for exceptions-free builds, and advanced features like coroutine integration offer a robust and future-proof binding solution.
A lightweight, dependency-free library for binding Lua to C++
Works with PUC-Lua 5.1–5.5, LuaJIT, Luau, and Ravi, ensuring compatibility across game development and embedded scripting environments.
No compilation needed—just include a single header file, simplifying build processes and eliminating external dependencies.
Benchmarks show it matches the speed of sol2, one of the fastest binding libraries, for common workloads like function calls and object mapping.
Leverages contemporary C++ while supporting exceptions-free builds (-fno-exceptions), making it suitable for performance-critical or embedded systems.
Automatically handles C++ classes, smart pointers, containers, and supports custom allocators, destructor hooks, and coroutine integration for complex scripting needs.
Compared to older libraries like sol2, LuaBridge3 has fewer community-contributed bindings and examples, requiring more manual work for integrating with popular frameworks.
Building unit tests requires CMake and configuring multiple Lua versions (14 flavors), which can be cumbersome for quick validation or CI pipelines without prior setup.
While a manual exists, detailed examples for edge cases—like coroutine integration or custom allocators—are limited, potentially increasing the learning curve for complex use cases.
ChakraCore is an open source Javascript engine with a C API.
Ultra-lightweight JavaScript engine for the Internet of Things.
Duktape - embeddable Javascript engine with a focus on portability and compact footprint
Public repository of the Micro QuickJS Javascript Engine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.