Releases: tokio-rs/prost
Prost v0.13.3
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
Styling
- Use
Path::display()
when printing a path (#1150) MessageGraph::new()
can't actually fail (#1151)- (generated-code) Use
Self
inas_str_name
(#1154)
Testing
- Actually test
skip_debug
forprost::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
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
withoutall-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
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
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 derivetrait Copy
for some messages. If you manually implementCopy
you should remove your implementation. -
Change generated functions signatures to remove type parameters (#1045)
The function signature of
trait Message
is changed to useimpl Buf
instead of a named generic type. If you implementtrait Message
, you should change the function signature. -
Lightweight error value in TryFrom for enums (#1010)
When a
impl TryFrom<i32>
is generated byprost
derive macros, it will now return the error typeUnknownEnumValue
instead ofDecodeError
. 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
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
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 acollections
module. (#1030) - style(prost-build): Split
Config
andModule
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
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
toderive
(#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
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
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:
v0.12.0
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:
- Bump
syn
to version 2 - Bump MSRV to 1.64
- Added
TryFrom<i32>
for enums - Optional debug implementations
- Initial generic
Any
andName
impl/traits.