About this project

Luban is a game configuration solution designed to cover the configuration workflow needs of game projects ranging from small to very large. The project uses the MIT license and is aimed primarily at game designers and programmers, used to standardize the definition, validation, and code/data generation of configuration data. Core capabilities: - Source data formats: supports the Excel family (csv, tsv, xls, xlsx, xlsm), json, xml, yaml, lua, and more. - Export formats: can generate data formats such as binary, json, bson, xml, lua, and yaml. - Type system: supports common row-column table structures and also supports OOP type inheritance, used to express complex GamePlay data such as behavior trees, skills, storylines, and dungeons. - Code generation: built-in support for C#, Java, Go, C++, Lua, Python, JavaScript, TypeScript, Rust, PHP, Erlang, Godot, and other languages, and can also be extended to other languages through message schemes such as protobuf. - Message schemes: supports protobuf (schema + binary + json), flatbuffers (schema + json), and msgpack (binary). - Data validation: provides ref reference checks, path resource path checks, range checks, and more. - Localization support. - Engines and platforms: supports Unity, Unreal, Cocos2x, Godot, WeChat Mini Games, and more, and can run on Windows, Linux, and Mac. - Hot update solutions: supports hybridclr, ilruntime, {x,t,s}lua, puerts, and more. - The generated code does not call reflection interfaces, and is compatible with obfuscation and hardening tools such as Obfuz, Obfuscator, Confuser, and .Net Refactor. - The generation pipeline is modular and plugin-based, facilitating secondary development and customization. AI Native (since 5.0.0): provides official Skills, machine-readable schema and errors, the `Luban.Agent` CLI (validation / table lookup / describe), the `Luban.Mcp` MCP Server, and options such as `-c schema-json` and `--errorFormat json` for AI Agents / IDEs. AI resources in the repository are located in the `ai/` directory. Development and testing: the main repository includes xUnit integration tests and does not depend on the external luban_examples. They can be run via `dotnet test src/Luban.Tests/Luban.Tests.csproj`; fixtures and expected outputs are located in `tests/fixtures/` and `tests/golden/`, and can be refreshed using `tests/scripts/update-goldens.ps1` or `.sh`, or updated in place by setting the environment variable `LUBAN_UPDATE_GOLDEN=1`. Documentation and examples: official documentation and quick start are available at datable.cn, and example projects are available in the luban_examples repository.