rmp-serde

Serde-powered MessagePack serialization and deserialization for Rust

Library
Cargo
v1.3.1
1,415stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
48/100Fair
Development Activity0
Maintenance20
Community72
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
76/100Good
Architecture80
Code Quality78
Innovation62
Learning Curve82

rmp-serde connects Rust’s low-level rmp MessagePack codec to Serde, so any type deriving Serialize/Deserialize can be encoded to and decoded from the compact binary MessagePack format with to_vec()/from_slice() calls and no manual byte-level encoding. It’s the standard way Rust projects adopt MessagePack as a faster, smaller alternative to JSON for wire formats, caches, and file formats, without writing custom binary parsers.

What You Get

  • to_vec()/from_slice() and streaming Serializer/Deserializer types for MessagePack encoding/decoding
  • Automatic support for any type implementing Serde’s Serialize/Deserialize traits, including derived structs and enums
  • Configurable serialization modes (struct-as-map vs struct-as-array) via the config module for interop with other MessagePack consumers
  • A bytes module for efficient handling of raw byte slices without unnecessary copies
  • Interop with the sibling rmpv crate’s dynamic Value type for schema-less MessagePack handling

Common Use Cases

  • Serializing Rust structs to a compact binary wire format for RPC or network protocols instead of JSON
  • Persisting application state or cache entries to disk in MessagePack for smaller file sizes and faster (de)serialization
  • Interoperating with services in other languages that already speak MessagePack (Python, JavaScript, Go clients)
  • Replacing JSON in performance-sensitive paths where payload size and (de)serialization speed matter

Under The Hood

Architecture - rmp-serde is one of four crates in the msgpack-rust Cargo workspace (rmp, rmp-serde, rmpv, rmpv-tests): rmp implements the raw MessagePack wire format, and rmp-serde builds Serde’s Serializer/Deserializer trait implementations directly on top of it, translating Serde’s visitor-based data model into MessagePack’s type markers without an intermediate representation. Tech Stack - Pure Rust (edition 2024, Rust 1.85+), depending only on serde and the sibling rmp crate by path within the workspace, with rmpv and serde_bytes used only as dev-dependencies for testing byte-slice and dynamic-value interop. Code Quality - Source is organized by concern (encode.rs, decode.rs, config.rs, bytes.rs, each several hundred lines), with a dedicated tests/ directory and benches/ for serialization performance, though the crate’s own Cargo.toml carries a maintenance = "looking-for-maintainer" badge, signaling reduced active maintenance despite continued heavy real-world usage. API Design - The API deliberately mirrors serde_json’s (to_vec, from_slice, to_writer), so developers already familiar with Serde-based JSON handling can switch to MessagePack with minimal code changes, while the config module exposes struct-encoding-mode toggles for cases where wire-format compatibility with non-Rust MessagePack consumers matters.

Used by 6 apps in this directory

Rust
52%
Apache 2.0

cocoindex

Data Engineering · AI Development

11,350

An incremental data indexing engine that keeps AI agent context perpetually fresh by reprocessing only what changed.

View details
87
Repo Health
85
Technical
64
Dependency
Built with
Rust52%
Python48%
Updated yesterday
Rust
96%
Apache 2.0

InfluxDB

Databases · Analytics

31,705

Open-source time-series database built for real-time ingest, fast SQL queries, and embedded Python automation — powered by Apache Arrow and Parquet.

View details
86
Repo Health
76
Technical
72
Dependency
Built with
Rust96%
Updated yesterday
TypeScript
95%
MIT

melty

Developer Tools · AI Code Assistants · Code Editors

5,449

The AI code editor where every chat message is a git commit you can revert, branch, or squash

View details
35
Repo Health
75
Technical
68
Dependency
Built with
TypeScript95%
Updated 1 years ago
Rust
63%
MIT

PostgresML

Databases · AI Development

6,817

Run ML training and LLM inference natively inside PostgreSQL with GPU acceleration — no data movement required.

View details
51
Repo Health
76
Technical
65
Dependency
Built with
Rust63%
JavaScript11%
Updated 1 years ago
Rust
77%
AGPL 3.0

Spacedrive

File Storage · Collaboration

38,790

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
60
Repo Health
84
Technical
65
Dependency
Built with
Rust77%
TypeScript20%
Updated 3 weeks ago
TypeScript
95%
Apache 2.0

Void

AI Code Assistants · Code Editors · Automation

28,833

Open-source AI code editor with direct LLM integration and data privacy

View details
49
Repo Health
84
Technical
69
Dependency
Built with
TypeScript95%
Updated 2 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search