Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/3Hren/msgpack-rust
MessagePack implementation for Rust / msgpack.org[Rust]
https://github.com/3Hren/msgpack-rust
crates-rmp decoding messagepack msgpack rmp rust serde serialization
Last synced: 7 days ago
JSON representation
MessagePack implementation for Rust / msgpack.org[Rust]
- Host: GitHub
- URL: https://github.com/3Hren/msgpack-rust
- Owner: 3Hren
- License: mit
- Created: 2015-03-20T11:09:01.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-01-06T05:05:20.000Z (10 months ago)
- Last Synced: 2024-04-14T13:51:51.580Z (7 months ago)
- Topics: crates-rmp, decoding, messagepack, msgpack, rmp, rust, serde, serialization
- Language: Rust
- Homepage:
- Size: 1.16 MB
- Stars: 1,073
- Watchers: 18
- Forks: 121
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-cn - 3Hren/msgpack-rust - ci.org/3Hren/msgpack-rust.svg?branch=master">](https://travis-ci.org/3Hren/msgpack-rust) (Libraries / Encoding)
- awesome-rust - 3Hren/msgpack-rust - ci.org/3Hren/msgpack-rust.svg?branch=master">](https://travis-ci.org/3Hren/msgpack-rust) (Libraries / Encoding)
- awesome-rust - 3Hren/msgpack-rust - ci.org/3Hren/msgpack-rust.svg?branch=master">](https://travis-ci.org/3Hren/msgpack-rust) (代码 / 编码)
- awesome-rust - 3Hren/msgpack-rust
- awesome-rust-cn - 3Hren/msgpack-rust
- awesome-rust-zh - 3Hren/msgpack-rust - 纯 Rust 低层/高级 MessagePack 实现[<img src="https://api.travis-ci.org/3Hren/msgpack-rust.svg?branch=master">](https://travis-ci.org/3Hren/msgpack-rust) (库 / 编码(Encoding))
- awesome-rust - 3Hren/msgpack-rust - Low/high level MessagePack implementation (Libraries / Encoding)
- awesome-rust - 3Hren/msgpack-rust - ci.org/3Hren/msgpack-rust.svg?branch=master">](https://travis-ci.org/3Hren/msgpack-rust) (库 Libraries / 加密 Encoding)
- fucking-awesome-rust - 3Hren/msgpack-rust - Low/high level MessagePack implementation (Libraries / Encoding)
- fucking-awesome-rust - 3Hren/msgpack-rust - Low/high level MessagePack implementation (Libraries / Encoding)
README
# RMP - Rust MessagePack
RMP is a complete pure-Rust [MessagePack](http://msgpack.org) implementation. MessagePack a compact self-describing binary serialization format.
This project consists of three crates:
* [RMP-Serde][crates-rmps-url] ([Documentation][rmps-docs-url]) — easy serializing/deserializing via [Serde](https://serde.rs).
* [RMP-Value][crates-rmpv-url] ([Documentation][rmpv-docs-url]) — a universal `Value` enum that can hold any MessagePack type. Allows deserializing arbitrary messages without a known schema.
* [RMP][crates-rmp-url] ([Documentation][rmp-docs-url]) — low-level functions for reading/writing encoded data.## Features
- **Convenient and powerful APIs**
RMP is designed to be lightweight and straightforward. There is a high-level API with support for Serde,
which provides you convenient interface for encode/decode Rust's data structures using `derive` attribute.
There are also low-level APIs, which give you full control over data encoding/decoding process,
with no-std support and without heap allocations.- **Zero-copy value decoding**
RMP allows to decode bytes from a buffer in a zero-copy manner. Parsing is implemented in safe Rust.
- **Robust, stable and tested**
This project is developed using TDD and CI, so any found bugs will be fixed without breaking
existing functionality.## Why MessagePack?
It's smaller and much simpler to parse than JSON. The encoded data is self-describing and extensible, without using any schema definitions. It supports the same data types as JSON, plus binary data, non-string map keys, all float values, and 64-bit numbers. Msgpack values use `` encoding, so they can be safely concatenated and read from a stream.
MessagePack is similar to CBOR, but has simpler data types (no bignums, decimal floats, dates, or indefinite-length sets, etc.)
## Requirements
- An up-to-date stable version of [Rust](https://www.rust-lang.org), preferably from [rustup](https://rustup.rs).
[rustc-serialize]: https://github.com/rust-lang-nursery/rustc-serialize
[serde]: https://github.com/serde-rs/serde[ci-img]: https://github.com/3Hren/msgpack-rust/actions/workflows/ci.yml/badge.svg
[ci-url]: https://github.com/3Hren/msgpack-rust/actions/workflows/ci.yml[coveralls-img]: https://coveralls.io/repos/3Hren/msgpack-rust/badge.svg?branch=master&service=github
[coveralls-url]: https://coveralls.io/github/3Hren/msgpack-rust?branch=master[rmp-docs-url]: https://docs.rs/rmp
[rmps-docs-url]: https://docs.rs/rmp-serde
[rmpv-docs-url]: https://docs.rs/rmpv[crates-rmp-url]: https://lib.rs/crates/rmp
[crates-rmps-url]: https://lib.rs/crates/rmp-serde
[crates-rmpv-url]: https://lib.rs/crates/rmpv[![Build][ci-img]][ci-url] [![Coverage Status][coveralls-img]][coveralls-url]