PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.
⚠️ Heads-up
-
Increase MSRV to 1.82 (#1356)
-
Update maintenance status to Passively Maintained (#1359)
This excerpt is from the readme:
The current maintainer is not contributing new features and doesn't have the time to review new features. Bug fixes and small improvements are welcome. Feel free to contribute small and easily reviewable PRs.
Bug fixes are still important, and security fixes will be released as soon as possible. Contact the
#prostchannel in Tokio discord if you feel a bug or security fix is not getting enough attention.The maintainer expects the official
protobufproject to release their rust library soon and expects it to be as fully featured as the C++ library. See their source code and crate for more information.
🚀 Features
- Configure prost path via
prost_build::Configor#[(prost(prost_path = "::prost")](#1274) - Support for deprecated enum and oneof fields (#1316)
🐛 Bug Fixes
- (prost-build) Resolve OneOf type name conflict with embedded message (#1294)
- (prost-build) Avoid OneOf type collision with enums and keyword names (#1341)
💼 Dependencies
- Use
trait Errorfrom core (#1179) - (deps) Update protobuf to v25.8 (#1323)
- (deps) Update criterion requirement from 0.6 to 0.7 (#1308)
- (deps) Update petgraph to 0.8 (#1327)
- (deps) Bump actions/upload-artifact from 4 to 5 (#1351)
- (deps) Bump actions/checkout from 5 to 6 (#1370)
- Bump actions/checkout to v5 (#1312)
- Update clippy to version 1.87 (#1292)
- Replace once_cell dependency by std lib (#1119)
📚 Documentation
- Update outdated link is test documentation (#1289)
- Describe use of encoding module (#1322)
- Update the readme MSRV to the actual number (#1331)
- Update URLs after manual review (#1336)
- Answer why fields are wrapped in option (#1358)
🎨 Styling
- Add spaces to derive arguments in generated code (#1290)
- Use variables directly in the
format!string (#1293) - Remove unneeded lint allow statements (#1326)
- Remove allocation in tests (#1332)
- Simplify DecodeError description to an enum (#1330)
- Use variables directly in the
format!string (#1361) - Fix typo in prost/src/encoding.rs (#1369)
🧪 Testing
- Rename package of
ident_conversion(#1291) - Add test for split buffer varint decoding (#1321)
- Add descriptive reason of test failure (#1320)
- Additionally test
decode_varint_slicewith roundtrips (#1325) - (result_struct) Move tests to separate module (#1333)
- (proto3_presence) Move test to separate module (#1334)
- (result_enum) Move test to separate module (#1342)
- (option_enum) Move test to separate module (#1344)
- (option_struct) Move tests to separate module (#1345)
- (message_encoding) Roundtrip
Coumpound(#1365) - (no_unused_results) Add roundtrip for Test message (#1364)
- (ServiceGenerator) Verify the content of all generated files (#1357)
- (derive_copy) Allow dead code (#1362)
- Always choose macOS 14 (#1324)