sol2
A high-level C++ binding library for Lua 5.1 and newer plus LuaJIT, exposing functions, user types, properties, containers, error handling, and optional single-header integration.
Why use it
Custom engines can replace fragile Lua C API stack manipulation with type mapping, lifetime helpers, and call wrappers while retaining access to the underlying Lua state when necessary.
Where it fits
Find engines, frameworks, code libraries, version control, and production automation.
What to check
Heavy templates can increase compile time and binary size, while host-object ownership and exception policy must be explicit; pin Lua, LuaJIT, and sol2 versions and stress-test script boundaries.