This is a collection of crates that provide Rust interop for Protocol Buffers, Google's data interchange format. The following crates are available:
- protobuf-native is a high-level, safe API to
libprotobuf
. - protobuf-sys provides automatically-generated Rust
bindings to
libprotobuf
via autocxx. - protobuf-src builds the
libprotobuf
library andprotoc
binary from the C++ source code checked out at build time from the GitHub repository.
There are two other major Protobuf projects in the Rust ecosystem:
-
rust-protobuf contains a
protoc
plugin for generating Rust code, an (incomplete) pure-Rust reimplementation oflibprotobuf
, including (incomplete) support for dynamic messages, and a Rust API for compiling protobufs. -
prost contains a Rust API for compiling protobufs that uses an alternative code generation backend that purports to generate more idiomatic Rust.
This project is meant to supplement these existing tools, not supplant them.
The hope is that prost and rust-protobuf will support optional integration
with these crates for users who want to avoid the system protoc
.