NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2474 most downloaded on crates.io
A derive macro for prost-reflect to generate ReflectMessage implementations
Last release 3 months ago
09 Jul 2026
Release timing varies
gaps range from 8 days to 13 months
Nearly every release is documented
notes for 20 of 20 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
20 releases · first in 2021
One column per quarter.
Add OneofDescriptor::is_synthetic
Fixed documentation for prost-reflect-build
The JSON deserializer now accepts messages with oneofs where multiple fields are set, but only one is non-null, to better conform to the specification
google.protobuf.Value or google.protobuf.NullValue.deny_unknown_fields field is set to false when deserializing from JSON, unknown enum fields will now be ignored, in addition to unknown fields. This matches the behaviour of this flag in other implementations.The minimum supported rust version is now 1.74.0.
DescriptorPool::add_file_descriptor_protos. ([#150])### Changed - Updated to prost 0.13.0
The minimum supported rust version is now 1.70.0.
The minimum supported rust version is now 1.64.0.
DescriptorPool, the library now validates that all referenced types are contained within the dependency files (including files imported using import public). Fixes [#57].Added a global descriptor pool which can be fetched using `DescriptorPool::global()`. By default it just contains well-known types, but additional fil
DescriptorPool::global(). By default it just contains well-known types, but additional files can be added using DescriptorPool::decode_global_file_descriptor_set() and DescriptorPool::add_global_file_descriptor_proto(). ([#13])file_descriptor_set_bytes attribute as an alternative to descriptor_pool, which automatically registers the file with the global pool.Builder::file_descriptor_pool_bytes to set the file_descriptor_set_bytes derive attribute.DescriptorPool (previously, the code would skip files with identical contents, but now it skips any file with the same name).Builder::file_descriptor_expr to Builder::descriptor_pool.crate::DESCRIPTOR_POOL. One of descriptor_pool or file_descriptor_pool_bytes must be set explicitly.Added the `path()` method to all descriptor types, which returns a path that can be used to get source code info by comparing against `Location::path`
path() method to all descriptor types, which returns a path that can be used to get source code info by comparing against Location::path.options() method to all descriptor types, which returns a message containing the options defined for the descriptor, including custom options.uninterpreted_options field of options is now used to populate options if it is present.
text-format feature flag is not enabled, then options set through the aggregate_value field will be ignored.DescriptorPool instance.file(), line() and column() methods to get more context information about errors.miette feature is enabled, DescriptorError now implements Diagnostic. When source code is provided through DescriptorError::with_source_code, and span information is provided in FileDescriptorProto::source_code_info, then the error will have labels annotating relevant portions of the source.FileDescriptor::dependencies now returns all imported files, instead of just those imported with import public. The new public_dependencies method preserves the old behaviour ([#19]).reflect-well-known-types feature flag has been removed, and the functionality is now always available.Added MessageDescriptor::get_extension_by_full_name().
MessageDescriptor::get_extension_by_full_name().serde feature is enabled, the functions in prost-types for parsing and formatting time types are now used. This removes the time dependency.DescriptorPool (formerly FileDescriptor) now supports adding individual FileDescriptorProto instances (#6).
DescriptorPool (formerly FileDescriptor) now supports adding individual FileDescriptorProto instances (#6).FileDescriptor has been renamed to DescriptorPool. (The name FileDescriptor may be used in a future release to provide an API for inspecting individual source files)
FileDescriptor::new has been renamed to DescriptorPool::from_file_descriptor_set.FileDescriptor::file_descriptor_set has been replaced by DescriptorPool::file_descriptor_protos to allow for it containing multiple sets of descriptors.parent_file method on all descriptor types has been renamed to parent_pool.file_descriptor parameter of the ReflectMessage derive macro has been renamed to descriptor_pool.prost-reflect-build is changed from crate::FILE_DESCRIPTOR to crate::DESCRIPTOR_POOL.Updated to version `0.10.0` of prost.
0.10.0 of prost.The public dependencies prost, prost-types and bytes are now re-exported from the crate root.
prost, prost-types and bytes are now re-exported from the crate root.Added implementations of [ReflectMessage] for the google well-known types in `prost-types`, behind a feature flag reflect-well-known-types.
ReflectMessage] for the google well-known types in prost-types, behind a feature flag reflect-well-known-types.Extension fields are now decoded from their byte representation
DynamicMessage::get_extension no longer returns an option.New helper method DynamicMessage::decode.
DynamicMessage::decode.SerializeOptions::emit_unpopulated_fields to SerializeOptions::skip_default_fields (note the meaning is inverted as well!).DynamicMessage::{has_field,get_field,set_field,clear_field} now take a field descriptor instead of a number. Use the new _by_number variants for the old behavior.The library now passes the protobuf conformance tests. This uncovered a number of edge cases:
10.00) are now accepted when parsing integers from the JSON representation.null in JSON deserialization.google.protobuf.NullValue now accepts the "NULL_VALUE" string.google.protobuf.FieldMask fails if the path cannot be roundtripped through camelCase.google.protobuf.Duration uses a different number of trailing zeroes depending on the precision of the input.google.protobuf.Timestamp and google.protobuf.Duration fails if it is outside the allowed range.Added support for JSON mapping of google.protobuf.Any.
google.protobuf.Any.Builder methods on SerializeOptions and DeserializeOptions are now const.
SerializeOptions and DeserializeOptions are now const.Fixed docs for ReflectMessage macro.
ReflectMessage macro.Added parent_message() method to MessageDescriptor and EnumDescriptor to support inspecting the structure of nested types.
parent_message() method to MessageDescriptor and EnumDescriptor to support inspecting the structure of nested types.package_name() method to MessageDescriptor, EnumDescriptor and ServiceDescriptor to determine which package they are defined in.ReflectMessage trait for types which can identify themselves with a MessageDescriptor.prost_build to generate ReflectMessage implementations.merge_from_message to transcode_from and to_message to transcode_to.Your coding agent can read these notes before it upgrades. Set up the MCP server →