profile
viewpoint

Ask questionsConsider moving downloaded protoc binaries into a separate crate

I'm worried that protoc crate size is 37M uncompressed, which might be inconvenient to some users.

One option to solve this issue is to put binaries into a separate crate protoc-binaries.

protoc crate won't depend on protoc-binaries, but when invoking protoc crate user would have to explicitly reference protoc-binaries crate. Like this:

protoc_rust::Args::new()
 .protoc_binary(protoc_binaries::binary())
 .other_args()
 .run() 

Some inconvenience to users, and very good flexibility.

In particular, this design allows having alternative crate, for example, protoc-binaries-download which would download protoc binaries at run time, and the same crate will also need to be used explicitly:

protoc_rust::Args::new()
 .protoc_binary(protoc_binaries_download::binary())
 .other_args()
 .run() 

Any thoughts? @BusyJay?

stepancheg/rust-protobuf

Answer questions BusyJay

LGTM, just protoc-vendored seems better than protoc-binaries-download.

useful!

Related questions

trait objects without an explicit `dyn` are deprecated hot 1
Github User Rank List