Analysis updated 2026-06-24
Read a compiled Lua 5.1 .luac file from a C# program by calling Parser.parser on the byte array.
Run dotnet run input.luac from the command line to parse a single bytecode file for quick inspection.
Embed the parser inside a larger reverse-engineering or game-modding tool that targets Lua 5.1 scripts.
Study the C# source to learn how the Lua 5.1 binary chunk format is laid out.
| jakeit3232/lua5.1-parser | codymullins/starling | hadashia/nojsonschema | |
|---|---|---|---|
| Stars | 16 | 16 | 16 |
| Language | C# | C# | C# |
| Setup difficulty | easy | moderate | easy |
| Complexity | 3/5 | 5/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
README is roughly 300 characters and omits the return type, so plan to read the C# source to understand what the parser exposes.
This project is a small piece of C# code that reads a Lua 5.1 bytecode file. Lua is a scripting language whose source code can be compiled into a binary .luac file, and this parser is built to read that binary form. The declared scope is the Lua 5.1 bytecode format specifically, which is an older release of the language. The README shows two ways to use it. From another C# program, you read the file's bytes with File.ReadAllBytes(path) and pass the resulting byte[] into a single call, Parser.parser(file). There is no return type or any other option mentioned in the README, so anyone who wants to know what the call produces or what fields of the bytecode it surfaces will have to read the source files directly. The project also ships a small command line front end. You run it with dotnet run input.luac, where the argument is the path to the bytecode file. If no argument is passed, the CLI falls back to a default path of input.luac. The README quotes the relevant line, args.Length > 0 ? args[0] : "input.luac", so anyone who wants a different default can edit it in place. The README is informal and very short, at around 300 characters total, written in lowercase. It does not describe what the parser does with the parsed data, whether it prints anything, whether it returns a structured object, or which sub-formats and edge cases it has been tested against. Anyone considering the project for real use should plan to read the C# source to confirm the actual behaviour, since the documentation as written covers only how to invoke the entry point.
A small C# parser for the Lua 5.1 bytecode format, callable as a library via Parser.parser(byte[]) or from a tiny dotnet CLI that reads a .luac file.
Mainly C#. The stack also includes C#, .NET, Lua.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.