rust-protobuf 3.0

77 points stepancheg

Several people asked to release it, so here it is.

The largest changes from version 2 are

  • full runtime reflection (e. g. find a field by name and set field value)
  • based on runtime reflection, native support for JSON mapping according to protobuf JSON mapping specification (which is hard, if even possible, to do correctly with serde). (Native serde support was dropped, but there's an example, how to add serde support to protobuf in your project)
  • dynamic messages (create descriptors from .proto files, without code generation; inspect them, instantiate messages, edit messages, write/read etc)

The largest missing feature of rust-protobuf is:

  • arena allocation for messages. Some people asked for it, but it is not clear how to implement it (keeping API ergonomic, keeping API safe etc). That would be a significant project.

Project on GitHub

As I said before, after 7 years, I'm not sure I have enough time and energy to maintain the project. If you can help, please contact me.