PackageTrack
Sign in Get early access

prost-types

Prost definitions of Protocol Buffers well known types.

0.14.4 427M downloads/mo #270 most downloaded on crates.io tokio-rs/prost

What this package is like to depend on

Last release 2 months ago

07 Jun 2026

Ships fairly regularly

a new release about every 2 months

Rarely documented

notes for 8 of 36 stable releases

6 versions withdrawn

withdrawn after publishing

9 years old

42 releases · first in 2017

3 releases in the last 12 months

see the full history below

Release timeline

42 releases · Sep 2017 to Jun 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 42
  1. 0.14.4 07 Jun 2026
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    🚀 Features

    • (prost-derive) Make is_valid a constant function (#1401)
    • Increase MSRV to 1.85 (#1428)

    🐛 Bug Fixes

    • Use Display instead of Debug for generated enumeration attributes (#1419)
    • (prost-derive) Return error for invalid enumeration default identifiers (#1426)
    • (build) Grab binary path from cargo (#1429)
    • (build) Fix C++ build on GCC 15 (#1395)

    📚 Documentation

    • Add example for decode_length_delimiter (#1311)
    • Update protobuf-src example to avoid unsafe set_var

    🧪 Testing

    • Test derive Eq behavior (#1422)
    • (groups) Actually construct NestedGroup (#1363)

    💼 Dependencies

    • (deps) Update criterion requirement from 0.7 to 0.8 (#1374)
    • (deps) Remove [email protected] from build-dependencies (#1400)
    • (deps) Update rand requirement from 0.9 to 0.10 (#1397)
    • (deps) Bump actions/upload-artifact from 6 to 7 (#1409)
    • (deps) Update cargo clippy to 1.89 (#1433)
    • (deps) Update cargo clippy to 1.91 (#1435)
    • (deps) Update and improve nix devshell (#1393)

    🎨 Styling

    • Prevent needless borrow (#1404)
    • Use std::hint::black_box() (#1403)
    • Use variables directly in format!() (#1432)
    • Remove explicit .into_iter() (#1434)
    • Run clippy on benches (#1405)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    🚀 Features

    • (prost-derive) Make is_valid a constant function (#1401)
    • Increase MSRV to 1.85 (#1428)

    🐛 Bug Fixes

    • Use Display instead of Debug for generated enumeration attributes (#1419)
    • (prost-derive) Return error for invalid enumeration default identifiers (#1426)
    • (build) Grab binary path from cargo (#1429)
    • (build) Fix C++ build on GCC 15 (#1395)

    📚 Documentation

    • Add example for decode_length_delimiter (#1311)
    • Update protobuf-src example to avoid unsafe set_var

    🧪 Testing

    • Test derive Eq behavior (#1422)
    • (groups) Actually construct NestedGroup (#1363)

    💼 Dependencies

    • (deps) Update criterion requirement from 0.7 to 0.8 (#1374)
    • (deps) Remove [email protected] from build-dependencies (#1400)
    • (deps) Update rand requirement from 0.9 to 0.10 (#1397)
    • (deps) Bump actions/upload-artifact from 6 to 7 (#1409)
    • (deps) Update cargo clippy to 1.89 (#1433)
    • (deps) Update cargo clippy to 1.91 (#1435)
    • (deps) Update and improve nix devshell (#1393)

    🎨 Styling

    • Prevent needless borrow (#1404)
    • Use std::hint::black_box() (#1403)
    • Use variables directly in format!() (#1432)
    • Remove explicit .into_iter() (#1434)
    • Run clippy on benches (#1405)
    Open source →
  2. 0.14.3 10 Jan 2026
    Release notes

    What's Changed

    • fix some forgotten prost import paths by @GlenDC in #1385
    • build(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1381
    • build(deps): update pulldown-cmark-to-cmark requirement from 21 to 22 by @dependabot[bot] in #1384
    • Bugfix: default Name implementation produces invalid URLs with empty packages. by @aaronjeline in #1386
    • fix: Add back DecodeError::new by @caspermeijn in #1382
    • chore: remove protobuf submodule and leverage cmake for it by @LucioFranco in #1389

    New Contributors

    Full Changelog: v0.14.2...v0.14.3

    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    ⚠️ Heads-up

    • Add back DecodeError::new (#1382)

      The DecodeError::new() was removed to simplify our code. It was not part of the public API, but removing it broke code in other crates. It is added back to prevent breakage across the ecosystem.

    🐛 Bug Fixes

    • Name::full_name() is correct for empty packages (#1386)

    💼 Dependencies

    • (deps) Bump actions/upload-artifact from 5 to 6 (#1381)
    • (deps) Update pulldown-cmark-to-cmark requirement from 21 to 22 (#1384)

    ⚙️ Miscellaneous Tasks

    • Remove protobuf submodule and leverage cmake for it (#1389)
    Open source →
  3. 0.14.2 01 Dec 2025 withdrawn
    Release notes

    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 #prost channel in Tokio discord if you feel a bug or security fix is not getting enough attention.

      The maintainer expects the official protobuf project 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::Config or #[(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 Error from 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_slice with 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)

    ⚙️ Miscellaneous Tasks

    • Replace duplicate README by a symlink (#1303)
    • Add cargo-semver-checks (#1337)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    note: this version was yanked in favor of 0.14.2

    ⚠️ 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 #prost channel in Tokio discord if you feel a bug or security fix is not getting enough attention.

      The maintainer expects the official protobuf project 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::Config or #[(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 Error from 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_slice with 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)

    ⚙️ Miscellaneous Tasks

    • Replace duplicate README by a symlink (#1303)
    • Add cargo-semver-checks (#1337)
    Open source →
  4. 0.14.1 18 Jun 2025
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    ⚠️ Revert emission of rerun commands

    Version 0.14.1 reverts the emission of rerun commands. Other than this change, it is identical to 0.14.0.

    In version 0.14.0, prost-build began emitting rerun commands. While intended to improve build correctness, this change caused regressions for some users—for example, those generating protos from an includes directory. These edge cases are difficult to address reliably, so the change has been rolled back in 0.14.1.

    For more details, see issue #1296.

    Breaking changes

    • prost: Relax Message Debug trait bound (#1147)

      BREAKING CHANGE: trait Debug was a supertrait of trait Message. This is no longer required by prost. If your code relies on trait Debug being implemented for every impl Message, you must now explicitly state that you require both Debug and Message. For example: where M: Debug + Message

    • prost: Remove prost-derive feature (#1247)

      BREAKING CHANGE: Feature flag prost-derive is renamed to derive. Please rename any usage of prost-derive feature in your Cargo.toml.

    • prost-build: Prevent repeated fields to be boxed (#1237)

      BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as Vec<Box<T>>. Those fields are now simply typed as Vec<T> to prevent double indirection. The boxed configuration is effectively ignored for repeated fields.

    • prost-build: Make type_name_domain cumulative (#1228)

      BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to prost_build::Config::type_name_domain are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

    • prost-build: Derive Eq and Hash trait for messages where possible (#1175)

      BREAKING CHANGE: prost-build will automatically derive trait Eq and trait Hash for types where all field support those as well. If you manually impl Eq and/or impl Hash for generated types, then you need to remove the manual implementation. If you use type_attribute to derive(Eq) and/or derive(Hash), then you need to remove those.

    Features

    • prost-types: Implement conversion Duration to/from chrono::TimeDelta (#1236)
    • prost-build: Prepare for 2024 keyword gen (#1257)

    Dependencies

    • (deps) Update pulldown-cmark to 0.13 (#1259)
    • (deps) update criterion requirement from 0.5 to 0.6 (#1280)

    Documentation

    • Update dead link LICENSE in prost-types/README.md (#1262)

    Styling

    • Use DoubleEndedIterator::next_back (#1255)
    • Fix typo (#1260)

    Testing

    • Run tests using edition 2024 (#1254)
    • Run clippy with edition 2024 enabled (#1256)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    ⚠️ Revert emission of rerun commands

    Version 0.14.1 reverts the emission of rerun commands. Other than this change, it is identical to 0.14.0.

    In version 0.14.0, prost-build began emitting rerun commands. While intended to improve build correctness, this change caused regressions for some users—for example, those generating protos from an includes directory. These edge cases are difficult to address reliably, so the change has been rolled back in 0.14.1.

    For more details, see issue #1296.

    Breaking changes

    • prost: Relax Message Debug trait bound (#1147)

      BREAKING CHANGE: trait Debug was a supertrait of trait Message. This is no longer required by prost. If your code relies on trait Debug being implemented for every impl Message, you must now explicitly state that you require both Debug and Message. For example: where M: Debug + Message

    • prost: Remove prost-derive feature (#1247)

      BREAKING CHANGE: Feature flag prost-derive is renamed to derive. Please rename any usage of prost-derive feature in your Cargo.toml.

    • prost-build: Prevent repeated fields to be boxed (#1237)

      BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as Vec<Box<T>>. Those fields are now simply typed as Vec<T> to prevent double indirection. The boxed configuration is effectively ignored for repeated fields.

    • prost-build: Make type_name_domain cumulative (#1228)

      BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to prost_build::Config::type_name_domain are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

    • prost-build: Derive Eq and Hash trait for messages where possible (#1175)

      BREAKING CHANGE: prost-build will automatically derive trait Eq and trait Hash for types where all field support those as well. If you manually impl Eq and/or impl Hash for generated types, then you need to remove the manual implementation. If you use type_attribute to derive(Eq) and/or derive(Hash), then you need to remove those.

    Features

    • prost-types: Implement conversion Duration to/from chrono::TimeDelta (#1236)
    • prost-build: Prepare for 2024 keyword gen (#1257)

    Dependencies

    • (deps) Update pulldown-cmark to 0.13 (#1259)
    • (deps) update criterion requirement from 0.5 to 0.6 (#1280)

    Documentation

    • Update dead link LICENSE in prost-types/README.md (#1262)

    Styling

    • Use DoubleEndedIterator::next_back (#1255)
    • Fix typo (#1260)

    Testing

    • Run tests using edition 2024 (#1254)
    • Run clippy with edition 2024 enabled (#1256)
    Open source →
  5. 0.14.0 13 Jun 2025 withdrawn
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Breaking changes

    • prost: Relax Message Debug trait bound (#1147)

      BREAKING CHANGE: trait Debug was a supertrait of trait Message. This is no longer required by prost. If your code relies on trait Debug being implemented for every impl Message, you must now explicitly state that you require both Debug and Message. For example: where M: Debug + Message

    • prost: Remove prost-derive feature (#1247)

      BREAKING CHANGE: Feature flag prost-derive is renamed to derive. Please rename any usage of prost-derive feature in your Cargo.toml.

    • prost-build: Emit rerun commands (#1140)

      BREAKING CHANGE: Previously cargo assumed it had to rerun build.rs if any files in the project changed. prost-build will now emit rerun commands, which means only the explicitly marked files cause a rerun. If your build.rs is dependent on any other file paths than those given to prost-build, then your build.rs needs to emit rerun commands as well.

    • prost-build: Prevent repeated fields to be boxed (#1237)

      BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as Vec<Box<T>>. Those fields are now simply typed as Vec<T> to prevent double indirection. The boxed configuration is effectively ignored for repeated fields.

    • prost-build: Make type_name_domain cumulative (#1228)

      BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to prost_build::Config::type_name_domain are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

    • prost-build: Derive Eq and Hash trait for messages where possible (#1175)

      BREAKING CHANGE: prost-build will automatically derive trait Eq and trait Hash for types where all field support those as well. If you manually impl Eq and/or impl Hash for generated types, then you need to remove the manual implementation. If you use type_attribute to derive(Eq) and/or derive(Hash), then you need to remove those.

    Features

    • prost-types: Implement conversion Duration to/from chrono::TimeDelta (#1236)
    • prost-build: Prepare for 2024 keyword gen (#1257)

    Dependencies

    • (deps) Update pulldown-cmark to 0.13 (#1259)
    • (deps) update criterion requirement from 0.5 to 0.6 (#1280)

    Documentation

    • Update dead link LICENSE in prost-types/README.md (#1262)

    Styling

    • Use DoubleEndedIterator::next_back (#1255)
    • Fix typo (#1260)

    Testing

    • Run tests using edition 2024 (#1254)
    • Run clippy with edition 2024 enabled (#1256)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Breaking changes

    • prost: Relax Message Debug trait bound (#1147)

      BREAKING CHANGE: trait Debug was a supertrait of trait Message. This is no longer required by prost. If your code relies on trait Debug being implemented for every impl Message, you must now explicitly state that you require both Debug and Message. For example: where M: Debug + Message

    • prost: Remove prost-derive feature (#1247)

      BREAKING CHANGE: Feature flag prost-derive is renamed to derive. Please rename any usage of prost-derive feature in your Cargo.toml.

    • prost-build: Emit rerun commands (#1140)

      BREAKING CHANGE: Previously cargo assumed it had to rerun build.rs if any files in the project changed. prost-build will now emit rerun commands, which means only the explicitly marked files cause a rerun. If your build.rs is dependent on any other file paths than those given to prost-build, then your build.rs needs to emit rerun commands as well.

    • prost-build: Prevent repeated fields to be boxed (#1237)

      BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as Vec<Box<T>>. Those fields are now simply typed as Vec<T> to prevent double indirection. The boxed configuration is effectively ignored for repeated fields.

    • prost-build: Make type_name_domain cumulative (#1228)

      BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to prost_build::Config::type_name_domain are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

    • prost-build: Derive Eq and Hash trait for messages where possible (#1175)

      BREAKING CHANGE: prost-build will automatically derive trait Eq and trait Hash for types where all field support those as well. If you manually impl Eq and/or impl Hash for generated types, then you need to remove the manual implementation. If you use type_attribute to derive(Eq) and/or derive(Hash), then you need to remove those.

    Features

    • prost-types: Implement conversion Duration to/from chrono::TimeDelta (#1236)
    • prost-build: Prepare for 2024 keyword gen (#1257)

    Dependencies

    • (deps) Update pulldown-cmark to 0.13 (#1259)
    • (deps) update criterion requirement from 0.5 to 0.6 (#1280)

    Documentation

    • Update dead link LICENSE in prost-types/README.md (#1262)

    Styling

    • Use DoubleEndedIterator::next_back (#1255)
    • Fix typo (#1260)

    Testing

    • Run tests using edition 2024 (#1254)
    • Run clippy with edition 2024 enabled (#1256)
    Open source →
  6. 0.13.5 12 Feb 2025
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • prost-types: Derive Arbitrary (#1188)

    Documentation

    • Use intra doc links instead of HTML tags (#1219)

    Dependencies

    • Update pulldown-cmark-to-cmark requirement from >=16, <=19 to >=16, <=20 (#1206)
    • Update itertools requirement from >=0.10, <=0.13 to >=0.10, <=0.14 (#1222)
    • Update petgraph requirement to include 0.7 (#1226)
    • Update rand requirement from 0.8 to 0.9 (#1233)
    • Bump clippy to 1.83 (#1220)
    • Update flake.lock (#1216)

    Styling

    • Replace unnecessary map_or (#1221)
    • prost-build: Use enum getter (#1238)

    Testing

    • default_enum_value: Move tests to separate module (#1198)
    • nesting: Move tests to separate module (#1218)
    • recursive_oneof: Move tests to separate module (#1225)
    • boxed_field: Box an oneof field (#1235)
    • groups: Move tests to separate module (#1234)
    • default_string_escape: Move tests to separate module (#1239)
    • Move DecodeError tests closer to the implementation (#1227)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • prost-types: Derive Arbitrary (#1188)

    Documentation

    • Use intra doc links instead of HTML tags (#1219)

    Dependencies

    • Update pulldown-cmark-to-cmark requirement from >=16, <=19 to >=16, <=20 (#1206)
    • Update itertools requirement from >=0.10, <=0.13 to >=0.10, <=0.14 (#1222)
    • Update petgraph requirement to include 0.7 (#1226)
    • Update rand requirement from 0.8 to 0.9 (#1233)
    • Bump clippy to 1.83 (#1220)
    • Update flake.lock (#1216)

    Styling

    • Replace unnecessary map_or (#1221)
    • prost-build: Use enum getter (#1238)

    Testing

    • default_enum_value: Move tests to separate module (#1198)
    • nesting: Move tests to separate module (#1218)
    • recursive_oneof: Move tests to separate module (#1225)
    • boxed_field: Box an oneof field (#1235)
    • groups: Move tests to separate module (#1234)
    • default_string_escape: Move tests to separate module (#1239)
    • Move DecodeError tests closer to the implementation (#1227)
    Open source →
  7. 0.13.4 06 Dec 2024
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • Impl Name for Protobuf well-known wrapper types (#1174)

    Performance

    • NonZeroU64 to optimize encoded_len_varint (#1192)

    Dependencies

    • Remove unused bytes dependency from prost-build (#1169)
    • Update pulldown-cmark-to-cmark requirement from >=16, <=17 to >=16, <=18 (#1173)
    • Update pulldown-cmark-to-cmark requirement from >=16, <=18 to >=16, <=19 (#1195)
    • Update protobuf to v25.3 (#1165)
    • Update protobuf to v25.4 (#1176)

    Styling

    • Remove explicit lifetimes (#1180)
    • Remove unnecessary empty line after document (#1181)

    Testing

    • (boxed_field) Confirm Foo::bar is boxed (#1168)
    • Move build.rs to standard location (#1167)
    • (custom_debug) Merge skip_debug into custom_debug (#1178)
    • Rename invalid_doctest to disable_comments (#1183)
    • (custom_attributes) Move module to separate file (#1187)

    Build

    • Bump clippy version to 1.82 (#1182)
    • Restrict permissions of GITHUB_TOKEN (#1189)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • Impl Name for Protobuf well-known wrapper types (#1174)

    Performance

    • NonZeroU64 to optimize encoded_len_varint (#1192)

    Dependencies

    • Remove unused bytes dependency from prost-build (#1169)
    • Update pulldown-cmark-to-cmark requirement from >=16, <=17 to >=16, <=18 (#1173)
    • Update pulldown-cmark-to-cmark requirement from >=16, <=18 to >=16, <=19 (#1195)
    • Update protobuf to v25.3 (#1165)
    • Update protobuf to v25.4 (#1176)

    Styling

    • Remove explicit lifetimes (#1180)
    • Remove unnecessary empty line after document (#1181)

    Testing

    • (boxed_field) Confirm Foo::bar is boxed (#1168)
    • Move build.rs to standard location (#1167)
    • (custom_debug) Merge skip_debug into custom_debug (#1178)
    • Rename invalid_doctest to disable_comments (#1183)
    • (custom_attributes) Move module to separate file (#1187)

    Build

    • Bump clippy version to 1.82 (#1182)
    • Restrict permissions of GITHUB_TOKEN (#1189)
    Open source →
  8. 0.13.3 21 Sep 2024
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • (prost-types) Add normalized functions (#1158)

    Bug Fixes

    • (prost-build) Remove derived(Copy) on boxed fields (#1157)

    Documentation

    • (prost-types) Add description of using Any (#1141)
    • (prost-build) Use cargo add in example (#1149)

    Styling

    • Use Path::display() when printing a path (#1150)
    • MessageGraph::new() can't actually fail (#1151)
    • (generated-code) Use Self in as_str_name (#1154)

    Testing

    • Actually test skip_debug for prost::Oneof (#1148)
    • (prost-build) Validate error texts (#1152)
    • (prost-build) Fix error texts (#1156)

    Build

    • Increase MSRV to 1.71.1 (#1135)
    • (deps) Update pulldown-cmark to 0.12 and pulldown-cmark-to-cmark to 16 (#1144)
    • (protobuf) Compile and install protoc on Windows (#1145)
    • (protobuf) Use same protoc from same repo as .proto-files (#1136)
    • (deps) Update pulldown-cmark-to-cmark from 16 to 17 (#1155)
    • Unify assert on fixtures (#1142)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • (prost-types) Add normalized functions (#1158)

    Bug Fixes

    • (prost-build) Remove derived(Copy) on boxed fields (#1157)

    Documentation

    • (prost-types) Add description of using Any (#1141)
    • (prost-build) Use cargo add in example (#1149)

    Styling

    • Use Path::display() when printing a path (#1150)
    • MessageGraph::new() can't actually fail (#1151)
    • (generated-code) Use Self in as_str_name (#1154)

    Testing

    • Actually test skip_debug for prost::Oneof (#1148)
    • (prost-build) Validate error texts (#1152)
    • (prost-build) Fix error texts (#1156)

    Build

    • Increase MSRV to 1.71.1 (#1135)
    • (deps) Update pulldown-cmark to 0.12 and pulldown-cmark-to-cmark to 16 (#1144)
    • (protobuf) Compile and install protoc on Windows (#1145)
    • (protobuf) Use same protoc from same repo as .proto-files (#1136)
    • (deps) Update pulldown-cmark-to-cmark from 16 to 17 (#1155)
    • Unify assert on fixtures (#1142)
    Open source →
  9. 0.13.2 30 Aug 2024
    Release notes

    Prost version 0.13.2

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • prost-build: Add protoc executable path to Config (#1126)
    • prost-build: Extract file descriptor loading from compile_protos() (#1067)

    Bug Fixes

    • prost-types: Fix date-time parsing (#1096)
    • prost-types: '+' is not a numeric digit (#1104)
    • prost-types: Converting DateTime to Timestamp is fallible (#1095)
    • prost-types: Parse timestamp with long second fraction (#1106)
    • prost-types: Format negative fractional duration (#1110)
    • prost-types: Allow unknown local time offset (#1109)

    Styling

    • Remove use of legacy numeric constants (#1089)
    • Move encoding functions into separate modules (#1111)
    • Remove needless borrow (#1122)

    Testing

    • Add tests for public interface of DecodeError (#1120)
    • Add parse_date fuzzing target (#1127)
    • Fix build without std (#1134)
    • Change some proptest to kani proofs (#1133)
    • Add parse_duration fuzzing target (#1129)
    • fuzz: Fix building of fuzzing targets (#1107)
    • fuzz: Add fuzz targets to workspace (#1117)

    Miscellaneous Tasks

    • Move old protobuf benchmark into prost (#1100)
    • Remove allow clippy::derive_partial_eq_without_eq (#1115)
    • Run cargo test without all-targets (#1118)
    • dependabot: Add github actions (#1121)
    • Update to cargo clippy version 1.80 (#1128)

    Build

    • Use proc-macro in Cargo.toml (#1102)
    • Ignore missing features in tests crates (#1101)
    • Use separated build directory for protobuf (#1103)
    • protobuf: Don't install unused test proto (#1116)
    • protobuf: Use crate cmake (#1137)
    • deps: Update devcontainer to Debian Bookworm release (#1114)
    • deps: Bump actions/upload-artifact from 3 to 4 (#1123)
    • deps: Bump baptiste0928/cargo-install from 2 to 3 (#1124)
    • deps: bump model-checking/kani-github-action from 0.32 to 1.1 (#1125)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Features

    • prost-build: Add protoc executable path to Config (#1126)
    • prost-build: Extract file descriptor loading from compile_protos() (#1067)

    Bug Fixes

    • prost-types: Fix date-time parsing (#1096)
    • prost-types: '+' is not a numeric digit (#1104)
    • prost-types: Converting DateTime to Timestamp is fallible (#1095)
    • prost-types: Parse timestamp with long second fraction (#1106)
    • prost-types: Format negative fractional duration (#1110)
    • prost-types: Allow unknown local time offset (#1109)

    Styling

    • Remove use of legacy numeric constants (#1089)
    • Move encoding functions into separate modules (#1111)
    • Remove needless borrow (#1122)

    Testing

    • Add tests for public interface of DecodeError (#1120)
    • Add parse_date fuzzing target (#1127)
    • Fix build without std (#1134)
    • Change some proptest to kani proofs (#1133)
    • Add parse_duration fuzzing target (#1129)
    • fuzz: Fix building of fuzzing targets (#1107)
    • fuzz: Add fuzz targets to workspace (#1117)

    Miscellaneous Tasks

    • Move old protobuf benchmark into prost (#1100)
    • Remove allow clippy::derive_partial_eq_without_eq (#1115)
    • Run cargo test without all-targets (#1118)
    • dependabot: Add github actions (#1121)
    • Update to cargo clippy version 1.80 (#1128)

    Build

    • Use proc-macro in Cargo.toml (#1102)
    • Ignore missing features in tests crates (#1101)
    • Use separated build directory for protobuf (#1103)
    • protobuf: Don't install unused test proto (#1116)
    • protobuf: Use crate cmake (#1137)
    • deps: Update devcontainer to Debian Bookworm release (#1114)
    • deps: Bump actions/upload-artifact from 3 to 4 (#1123)
    • deps: Bump baptiste0928/cargo-install from 2 to 3 (#1124)
    • deps: bump model-checking/kani-github-action from 0.32 to 1.1 (#1125)
    Open source →
  10. 0.13.1 09 Jul 2024
    Release notes

    Prost version 0.13.1

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Bug fixes

    • Enum variant named Error causes ambiguous item (#1098)
    Open source →
    Release notes

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    Bug fixes

    • Enum variant named Error causes ambiguous item (#1098)
    Open source →
  11. 0.13.0 08 Jul 2024 withdrawn
    Release notes

    note: this version was yanked in favor of 0.13.1

    PROST! is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files.

    This major update brings new features and fixes:

    Breaking changes

    • derive Copy trait for messages where possible (#950)

      prost-build will automatically derive trait Copy for some messages. If you manually implement Copy you should remove your implementation.

    • Change generated functions signatures to remove type parameters (#1045)

      The function signature of trait Message is changed to use impl Buf instead of a named generic type. If you implement trait Message, you should change the function signature.

    • Lightweight error value in TryFrom<i32> for enums (#1010)

      When a impl TryFrom<i32> is generated by prost derive macros, it will now return the error type UnknownEnumValue instead of DecodeError. The new error can be used to retreive the integer value that failed to convert.

    Features

    • fix: Only touch include file if contents is changed (#1058)

      Most generated files are untouched when the contents doesn't change. Use the same mechanism for include file as well.

    Dependencies

    • update env_logger requirement from 0.10 to 0.11 (#1074)
    • update criterion requirement from 0.4 to 0.5 (#1071)
    • Remove unused libz-sys (#1077)
    • build(deps): update itertools requirement from >=0.10, <=0.12 to >=0.10, <=0.13 (#1070)

    Documentation

    • better checking of tag duplicates, avoid discarding invalid variant errs (#951)
    • docs: Fix broken link warnings (#1056)
    • Add missing LICENSE symlink (#1086)

    Internal

    • workspace package metadata (#1036)
    • fix: Build error due to merge conflict (#1068)
    • build: Fix release scripts (#1055)
    • chore: Add ci to check MSRV (#1057)
    • ci: Add all tests pass job (#1069)
    • ci: Add Dependabot (#957)
    • ci: Ensure both README are the same and prost version is correct (#1078)
    • ci: Set rust version of clippy job to a fixed version (#1090)
    Open source →
  12. 0.12.6 17 May 2024

    Nothing published for this version

  13. 0.12.5 16 May 2024 withdrawn

    Nothing published for this version

  14. 0.12.4 05 Apr 2024

    Nothing published for this version

  15. 0.12.3 21 Nov 2023

    Nothing published for this version

  16. 0.12.2 16 Nov 2023

    Nothing published for this version

  17. 0.12.1 15 Sep 2023

    Nothing published for this version

  18. 0.12.0 01 Sep 2023

    Nothing published for this version

  19. 0.11.9 12 Apr 2023

    Nothing published for this version

  20. 0.11.8 24 Feb 2023

    Nothing published for this version

  21. 0.11.7 23 Feb 2023 withdrawn

    Nothing published for this version

  22. 0.11.6 10 Jan 2023

    Nothing published for this version

  23. 0.11.5 20 Dec 2022

    Nothing published for this version

  24. 0.11.2 04 Nov 2022

    Nothing published for this version

  25. 0.11.1 02 Aug 2022

    Nothing published for this version

  26. 0.11.0 29 Jul 2022

    Nothing published for this version

  27. 0.10.1 13 Apr 2022

    Nothing published for this version

  28. 0.10.0 29 Mar 2022

    Nothing published for this version

  29. 0.9.0 13 Oct 2021

    Nothing published for this version

  30. 0.8.0 08 Jul 2021

    Nothing published for this version

  31. 0.7.0 27 Dec 2020

    Nothing published for this version

  32. 0.6.1 16 Jan 2020

    Nothing published for this version

  33. 0.6.0 13 Jan 2020 withdrawn

    Nothing published for this version

  34. 0.5.0 10 Mar 2019

    Nothing published for this version

  35. 0.4.0 13 Jun 2018

    Nothing published for this version

  36. 0.3.2 04 Mar 2018

    Nothing published for this version

  37. 0.3.1 04 Mar 2018

    Nothing published for this version

  38. 0.3.0 29 Jan 2018

    Nothing published for this version

  39. 0.2.3 09 Nov 2017

    Nothing published for this version

  40. 0.2.2 29 Oct 2017

    Nothing published for this version

  41. 0.2.1 28 Sep 2017

    Nothing published for this version

  42. 0.2.0 10 Sep 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive