rmp-serde

Serde-powered MessagePack serialization and deserialization for Rust

Library
Cargo
v1.3.1
1,424 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
48 /100 Fair
Development Activity 0
Maintenance 20
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
76 /100 Good
Architecture 80
Code Quality 78
Innovation 62
Learning Curve 82

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 9 apps in this directory

TypeScript
93%
MIT

bunqueue

Developer Tools · Devops

570

High-performance job queue for Bun — SQLite persistence, cron scheduling, DLQ, S3 backups, and a native MCP server, all without Redis.

View details
73
Repo Health
83
Technical
72
Dependency
Built with
TypeScript 93%
Updated 3 weeks ago
Rust
52%
Apache 2.0

cocoindex

AI Development · Data Engineering

11,607

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

View details
87
Repo Health
85
Technical
65
Dependency
Built with
Rust 52%
Python 48%
Updated 5 days ago
Rust
96%
Apache 2.0

InfluxDB

Analytics · Databases

31,758

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
82
Repo Health
76
Technical
72
Dependency
Built with
Rust 96%
Updated 1 weeks ago
TypeScript
95%
MIT

melty

AI Code Assistants · Code Editors · Developer Tools

5,444

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
67
Dependency
Built with
TypeScript 95%
Updated 1 years ago
Rust
63%
MIT

PostgresML

AI Development · Databases

6,825

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

View details
51
Repo Health
76
Technical
64
Dependency
Built with
Rust 63%
JavaScript 11%
Updated 1 years ago
Rust
77%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,041

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

View details
56
Repo Health
84
Technical
63
Dependency
Built with
Rust 77%
TypeScript 20%
Updated 2 months ago
Rust
77%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,041

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

View details
56
Repo Health
84
Technical
63
Dependency
Built with
Rust 77%
TypeScript 20%
Updated 2 months ago
Rust
83%
AGPL 3.0

Vaultwarden

Password Manager · Security

68,240

Unofficial Bitwarden-compatible server in Rust — run the full Bitwarden ecosystem on a Raspberry Pi using every official client you already have, without the multi-container overhead.

View details
89
Repo Health
69
Technical
70
Dependency
Built with
Rust 83%
Updated 1 weeks ago
TypeScript
95%
Apache 2.0

Void

AI Code Assistants · Automation · Code Editors

28,786

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

View details
45
Repo Health
84
Technical
68
Dependency
Built with
TypeScript 95%
Updated 4 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