# msgpack/msgpack

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/msgpack-msgpack).**

7,472 stars · 527 forks

## Links

- GitHub: https://github.com/msgpack/msgpack
- Homepage: http://msgpack.org/
- awesome-repositories: https://awesome-repositories.com/repository/msgpack-msgpack.md

## Description

MessagePack is a binary object serialization library and a cross-platform data exchange format. It serves as a binary alternative to JSON, converting structured data into a space-efficient binary representation for network transmission and storage.

The system provides a standardized format for swapping complex data types across different programming languages and architectures. It allows for the definition of custom data type encoding by pairing application-specific information with specialized serialization markers.

The library handles the encoding and decoding of diverse data types, including integers, floating-point numbers, booleans, timestamps, raw binary sequences, ordered arrays, and key-value maps. These processes focus on network payload optimization and high-performance data exchange by reducing the overall byte size of the structured information.

## Tags

### Data & Databases

- [Binary Data Formats](https://awesome-repositories.com/f/data-databases/binary-data-formats.md) — Provides a compact binary serialization format that uses type-prefix markers to define data size and type.
- [Binary Serialization Formats](https://awesome-repositories.com/f/data-databases/binary-serialization-formats.md) — Implements a compact binary format for encoding and decoding structured data for efficient storage and transmission. ([source](https://github.com/msgpack/msgpack/blob/master/README.md))
- [Cross-Language Data Protocols](https://awesome-repositories.com/f/data-databases/cross-language-data-protocols.md) — Provides a standardized binary format ensuring interoperability between different programming languages and hardware architectures.
- [Length-Delimited Encodings](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/length-delimited-encodings.md) — Encodes arrays and maps using length headers to facilitate efficient parsing and stream reading.
- [Variable-Width Integer Encodings](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/variable-width-integer-encodings.md) — Represents integers using variable-width encoding to minimize space based on the magnitude of the value.
- [Binary JSON Alternatives](https://awesome-repositories.com/f/data-databases/data-serialization-formats/data-formats/binary-json-alternatives.md) — Provides a high-performance binary serialization format that maintains JSON-like data structures while significantly reducing payload size.
- [Map Serialization](https://awesome-repositories.com/f/data-databases/key-value-pair-managers/map-serialization.md) — Serializes key-value maps by storing the entry count followed by sequential keys and values. ([source](https://github.com/msgpack/msgpack/blob/master/spec-old.md))
- [Custom Binary Type Encoders](https://awesome-repositories.com/f/data-databases/complex-data-types/composite-type-encoders/custom-binary-type-encoders.md) — Defines specialized binary formats for application-specific data structures using extendable serialization markers.
- [Serialization Type Providers](https://awesome-repositories.com/f/data-databases/custom-data-types/custom-data-type-providers/serialization-type-providers.md) — Enables the definition of specialized application-specific binary formats using extendable serialization markers. ([source](https://github.com/msgpack/msgpack/blob/master/spec.md))

### Part of an Awesome List

- [Array Serialization](https://awesome-repositories.com/f/awesome-lists/data/serialization-and-encoding/array-serialization.md) — Serializes ordered arrays by storing the element count followed by the individual objects. ([source](https://github.com/msgpack/msgpack/blob/master/spec-old.md))
- [Data Serialization](https://awesome-repositories.com/f/awesome-lists/devtools/data-serialization.md) — Binary serialization format for efficient cross-language data exchange.

### Networking & Communication

- [High-Performance Data Exchange](https://awesome-repositories.com/f/networking-communication/high-performance-data-exchange.md) — Facilitates high-performance data exchange between systems where text-based formats like JSON create too much overhead.
- [Primitive Type Encoding](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/primitive-type-encoding.md) — Serializes true and false constants into single-byte markers for efficient binary storage. ([source](https://github.com/msgpack/msgpack/blob/master/spec-old.md))
- [Payload Optimization](https://awesome-repositories.com/f/networking-communication/network-optimization/payload-optimization.md) — Reduces the number of bytes sent over a network by using a dense binary representation of application data.

### Software Engineering & Architecture

- [Data Exchange Standards](https://awesome-repositories.com/f/software-engineering-architecture/data-exchange-standards.md) — Provides a standardized binary representation for swapping complex data types across different programming languages and architectures.

### Development Tools & Productivity

- [Serialization Type Extensions](https://awesome-repositories.com/f/development-tools-productivity/type-definition-generators/type-customization-extensions/serialization-type-extensions.md) — Associates a specific integer type code with a byte array to allow for custom application-defined data types.

### Operating Systems & Systems Programming

- [Endianness Management](https://awesome-repositories.com/f/operating-systems-systems-programming/endianness-management.md) — Implements big-endian byte ordering for multi-byte numbers to ensure consistent cross-platform data interpretation.
- [Timestamp Serialization](https://awesome-repositories.com/f/operating-systems-systems-programming/timestamp-serialization.md) — Stores instantaneous points in time with nanosecond precision using standardized bit-width formats. ([source](https://github.com/msgpack/msgpack/blob/master/spec.md))

### Scientific & Mathematical Computing

- [Binary Value Packing](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/floating-point-handlers/floating-point-packers/binary-value-packing.md) — Serializes single and double precision floating-point numbers using the big-endian standard. ([source](https://github.com/msgpack/msgpack/blob/master/spec-old.md))
