A Lua library for dynamic loading and processing of Protocol Buffers message definition files (.proto).
lua-pb is a Lua implementation of Google's Protocol Buffers, providing tools to dynamically load `.proto` definition files and encode/decode messages. It solves the problem of integrating Protocol Buffers' efficient binary serialization into Lua applications without requiring external pre-compilation steps.
Lua developers who need to work with Protocol Buffers data interchange format, particularly those building networked applications, data processing pipelines, or systems requiring efficient binary serialization.
Developers choose lua-pb for its pure Lua implementation, dynamic `.proto` loading capability, and modular architecture that separates parsing from compilation, allowing for future optimizations like a LuaJIT backend.
Lua Protocol Buffers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports runtime loading of .proto files without pre-compilation, enabling flexible schema integration in Lua applications as highlighted in the README.
Separates frontend parsing from backend compilers, allowing for extensible designs and future optimizations like a LuaJIT backend.
Handles unknown fields during decoding and stores them for later access, improving compatibility with evolving protocols.
Includes encoding, decoding, and message dumping capabilities using a standard backend, providing a full Protocol Buffers workflow.
Lacks support for Protocol Buffers services and custom options, as admitted in the TODO section, limiting advanced use cases.
Relies on luabitops and struct modules for encoding/decoding, which can complicate deployment and increase setup overhead.
The standard backend may not be optimized for speed; the LuaJIT backend is only planned, not implemented, potentially affecting high-throughput applications.