Skip to content

Releases: tokio-rs/prost

Prost v0.13.4

06 Dec 15:41
60d4c33
Compare
Choose a tag to compare

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)

Prost v0.13.3

21 Sep 12:46
9ed944e
Compare
Choose a tag to compare

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)

v0.13.2

30 Aug 19:11
57e7942
Compare
Choose a tag to compare

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)

v0.13.1

09 Jul 13:32
f19104a
Compare
Choose a tag to compare

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)

v0.13.0

08 Jul 17:14
23f7174
Compare
Choose a tag to compare

PROST version 0.13.0

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 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)

v0.12.6

31 May 15:47
d42c85e
Compare
Choose a tag to compare

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

This patch update fixes a regression:

  • fix(prost-build): re-export error_message_protoc_not_found, protoc_from_env & protoc_include_from_env (#1063)

v0.12.5

31 May 15:47
26405ab
Compare
Choose a tag to compare

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

This patch update brings new fixes:

  • fix: include_file should handle proto without package (#1002)
  • Place Config::format behind the format feature flag
  • Handle keyword Self after stripping enum type prefix (#998)

Documentation

  • fix(readme): fix the link and badge for CI (#1049)

Internal

  • style(codegen): Syntax to a separate file (#1029)
  • chore(codegen): extract c string escaping to a separate file (#1028)
  • style(prost-build): CodeGenerator::boxed method (#1019)
  • style(prost-build): Consolidate field data into struct (#1017)
  • style(prost-build): BytesType and MapType into a collections module. (#1030)
  • style(prost-build): Split Config and Module into a separate module and files (#1020)
  • style(prost-build): prost_path helper (#1018)
  • style: Fix toml indent (#1048)
  • style: Fix clippy warnings and enable clippy in CI (#1008)
  • build: Use git submodule to download protobuf sources (#1014)
  • ci: Add TOML validation with taplo (#1034)
  • tests: Create a separate tempdir for each test (#1044)
  • tests: Remove GoogleMessage3 and GoogleMessage4 benchmarks (#1037)
  • chore: Update internal crates to Rust edition 2021 (#1039)
  • chore: Update crate descriptions (#1038)
  • chore: Fix clippy checks in CI (#1032)
  • chore: Add Casper Meijn as author (#1025)

v0.12.4

05 Apr 16:41
38a00d8
Compare
Choose a tag to compare

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

This patch update brings new features and fixes:

  • Bump MSRV to 1.70 (minimum supported Rust version)
  • Rename cargo feature prost-derive to derive (#992)
  • Add @generated comment on top of generated files (#935)
  • Optimize implementation of prost::Name when generated by prost-build (#956)

Dependencies

  • build(deps): Allow itertools 0.12 (#948)
  • build(deps): Allow heck 0.5 (#1012)
  • build(deps): Allow multimap 0.10 (#1013)

Documentation

  • Improve protoc not found error message (#937)
  • build: Add development container config (#949)
  • docs: Fixed README typos (#952 / #967 / #970)

Internal

  • chore: Fix minimal versions (#920)
  • fix: fq_message_name should begin with one dot (#981)
  • improve encode_varint performance by bounding its loop (#940)
  • style: Remove duplicate function call (#989)
  • test: Improve test decode_varint_slow (#977)
  • chore: Add dep: prefix to feature dependencies (#919)
  • Minor clippy lint fixes. (#1006)
  • chore: Use taiki-e/install-action to setup cargo-machete (#909)
  • chore: Remove which dependency. (#962)
  • chore: Update to actions/checkout@v4 (#910)

v0.12.3

21 Nov 19:36
907e9f6
Compare
Choose a tag to compare

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

This patch updates brings a few new fixes:

v0.12.2

16 Nov 16:13
3cf34f0
Compare
Choose a tag to compare

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

This patch updates brings a few new features and fixes:

  • feat: Generate implementation for Name trait (#931)
  • fix: generate Name::full_name properly (#923)