3 stable releases
Uses old Rust 2015
2.28.2 | Feb 27, 2023 |
---|---|
2.28.1 | Feb 24, 2023 |
2.27.2 | Sep 7, 2022 |
#1793 in Encoding
40 downloads per month
Used in 2 crates
(via protobuf-codegen-pure3)
1.5MB
33K
SLoC
Protobuf code generator
This crate contains protobuf code generator implementation
and a protoc-gen-rust
protoc
plugin.
This crate:
- provides
protoc-gen-rust
plugin forprotoc
command - implement protobuf codegen
This crate is not meant to be used directly, in fact, it does not provide any public API
(except for protoc-gen-rust
binary).
Code can be generated with either:
protoc-gen-rust
plugin forprotoc
orprotoc-rust
crate (code generator which depends onprotoc
binary for parsing of.proto
files)protobuf-codegen-pure
crate, similar API toprotoc-rust
, but uses pure rust parser of.proto
files.
protoc-gen-rust
plugin for protoc
When non-cargo build system is used, consider using standard protobuf code generation pattern:
protoc
command does all the work of handling paths and parsing .proto
files.
When protoc
is invoked with --rust_out=
option, it invokes protoc-gen-rust
plugin.
provided by this crate.
When building with cargo, consider using protoc-rust
or protobuf-codegen-pure
crates.
How to use protoc-gen-rust
if you have to
(Note protoc
can be invoked programmatically with
protoc crate)
- Install protobuf for
protoc
binary.
On OS X Homebrew can be used:
brew install protobuf
On Ubuntu, protobuf-compiler
package can be installed:
apt-get install protobuf-compiler
Protobuf is needed only for code generation, rust-protobuf
runtime
does not use protobuf
library.
- Install
protoc-gen-rust
program (which isprotoc
plugin)
It can be installed either from source or with cargo install protobuf
command.
- Add
protoc-gen-rust
to $PATH
If you installed it with cargo, it should be
PATH="$HOME/.cargo/bin:$PATH"
- Generate .rs files:
protoc --rust_out . foo.proto
This will generate .rs files in current directory.
Version 2
This is documentation for version 2 of the crate.
Version 3 of the crate
(currently in development) encapsulates both protoc
and pure codegens in this crate.