MessagePack and Rust


#1

Hello everyone!

I’d like to introduce a MessagePack library I’ve been working on for a couple of months. Hope someone finds it useful.

Features:

  • Low-level functions set for encoding/decoding.
  • Integration with rustc_serialize, integration with serde is planning.
  • Owning and non-owning Value type that represents MessagePack object.
  • Zero-copy decoding and encoding.
  • Structured error handling system with no unreachable!() blocks required.

The library was developed using TDD, as a result the code coverage is pretty high, and any API breaking changes will be seen immediately.

I’d like to hear suggestions or feature requests or “what the hell is it, destroy your computer right now!”. And of course PR’s are appreciated.

Repository: https://github.com/3Hren/msgpack-rust
Cargo: https://crates.io/crates/rmp


#2

Awesome crate. I’d love to see someone build a msgpack-rpc library on top of this.


#3

Hmm, personally never had to use msgpack RPC, but I’ll try to investigate how to support it.


#4

That is an interesting idea !

I have been looking into rust for some time now, but have not really tried to make any code in it as I cant get my head around this RPC in Rust issue.

I have been looking into how to map values given from data like JSON or msgpack into rust, but I am a bit lost here.

Normally this is done by some kind of reflection or introspection, but I have not found any solid info on this subject.

The raw RPC mapping would be something like

  • look for a function name on a trait (if I understand the model)
  • map parameters (runtime check types)
  • make a call to the function using the given valid parameters.

I like to here if anyone have an idea as to how this may be done elegantly in Rust ?