Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 978 Bytes

File metadata and controls

43 lines (33 loc) · 978 Bytes

Laylua

Laylua allows you to easily embed Lua 5.4 in your .NET application.

Highlights:

  • plug and play
  • Roslyn source generators and analyzers
  • automatic type marshaling
  • proper handling of exceptions and Lua errors
  • built with sandboxing in mind; limit memory, instructions, and what scripts can access
  • optimized and type-safe, with no value type boxing

Example

using Laylua;
using Laylua.Marshaling;

using var lua = new Lua();

lua.OpenLibrary(LuaLibraries.Standard.Base);

lua["player"] = new Player("Steve");

lua.Execute("""
    player:TakeDamage(25)
    print(player.Name, player.Health)
    """);

[LuaType]
public partial class Player(string name)
{
    public string Name { get; } = name;

    public int Health { get; private set; } = 100;

    public void TakeDamage(int amount)
    {
        Health -= amount;
    }
}

Documentation

Check out the wiki.