ljmsgpack is a MessagePack implementation for LuaJIT.
It aims for:
- Simplicity and performance, e.g. by targeting LuaJIT 2.1 exclusively instead of multiple Lua versions.
- Safety and robustness, e.g. to deal properly with malicious inputs when unpacking. It is especially relevant because LuaJIT exposes powerful low-level abstractions that can be used to improve performances, but could introduce unsafety.
- Stable output. No deterministic guarantees; it is a best effort to facilitate the use of delta compression (e.g. with Fossil).
- Flexibility. E.g. configuration, a streaming interface, concurrent/progressive processing and access to low-level functions.
To give more background, MessagePack is a core component of my methodology, e.g. for networking or to build immutable1 file formats, thus I consider relevant to invest my time working on an implementation that I can deeply understand, test and optimize.
- ^ Files that are not modified in-place, unlike a SQLite database.