High-performance MessagePack serialization/deserialization library for Elixir with comprehensive type support.
Msgpax is a MessagePack implementation for Elixir that provides serialization and deserialization of Elixir terms to/from the compact MessagePack binary format. It solves the need for efficient data exchange between Elixir applications and other systems using the MessagePack protocol, offering better performance and smaller payloads compared to JSON.
Elixir developers building distributed systems, microservices, or APIs that require efficient binary data exchange, particularly those working with high-throughput communication or constrained network environments.
Developers choose Msgpax for its comprehensive type support, high performance, and seamless integration with Elixir's ecosystem, including Plug for web applications and protocol-based extensibility for custom data types.
High-performance and comprehensive MessagePack implementation for Elixir / msgpack.org[Elixir]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Full mapping between Elixir terms and all MessagePack types, including Binary and Extension via Msgpax.Bin and Msgpax.Ext, ensuring no data loss in serialization.
Allows custom serialization for user-defined structs using the Msgpax.Packer protocol, enabling flexible handling of complex data structures without modifying core library.
Supports extracting slices of MessagePack-encoded data with Msgpax.unpack_slice/1, useful for processing large payloads without full deserialization overhead.
Includes built-in Msgpax.PlugParser for parsing MessagePack-encoded HTTP bodies, making it easy to integrate with Phoenix and Plug applications for API development.
As a binary serialization format, MessagePack lacks human-readability, complicating debugging and manual inspection compared to text-based formats like JSON.
Custom struct serialization requires implementing the Msgpax.Packer protocol, which can add development time and complexity for teams with many custom data types.
MessagePack has a smaller tooling and library ecosystem than JSON, which might restrict interoperability with some third-party services or debugging utilities.