A complete Lua interpreter written in C# for .NET, Mono, Xamarin, and Unity3D platforms with remote debugger support.
MoonSharp is a Lua interpreter written entirely in C#, enabling Lua scripting within .NET, Mono, Xamarin, and Unity3D applications. It solves the need for embedding a lightweight, cross-platform scripting language into C#-based projects, providing features like remote debugging and seamless CLR interop.
Developers working with .NET, Unity3D, Xamarin, or Mono who need to integrate Lua scripting for game logic, modding, configuration, or extensibility in their applications.
Developers choose MoonSharp for its high Lua 5.2 compatibility, no external dependencies, excellent performance through runtime code generation, and built-in debugger support, making it a robust and easy-to-integrate scripting solution for the .NET ecosystem.
An interpreter for the Lua language, written entirely in C# for the .NET, Mono, Xamarin and Unity3D platforms, including handy remote debugger facilities.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
MoonSharp is 99% compatible with Lua 5.2, supporting most standard library features and syntax, making it reliable for integrating existing Lua codebases.
Provides seamless interaction with C# objects, methods, properties, and async methods through runtime code generation, as highlighted in the README for performant scripting.
Supports remote debugging via the Debug Adapter Protocol, compatible with Visual Studio Code, enabling efficient script debugging across .NET environments.
Includes a dependency-free JSON parser for converting between JSON and Lua tables, adding utility without extra dependencies for data handling.
Does not support weak tables, a Lua 5.2 feature, which can limit memory management capabilities in scripts that rely on this for garbage collection.
Based on Lua 5.2, so it lacks newer language features from Lua 5.3 and 5.4, such as integers or bitwise operators, potentially hindering modern Lua development.
As a C#-based interpreter, it may introduce performance overhead compared to native Lua implementations, especially in high-frequency scripting scenarios or on resource-constrained platforms.