What's Changed
- changelog: adopt changie fragment files to end CHANGELOG merge conflicts by @iainmcgin in #230
- ci: verify changie download against pinned SHA256 before executing by @iainmcgin in #245
- Document generated struct evolution policy by @Yong-yuan-X in #244
- codegen: store singular message fields inline by default (PointerRepr::Inline) (#248) by @iainmcgin in #250
- benchmarks/history: add -align-loops=64 to the layout-normalization flags by @iainmcgin in #258
- descriptor: make add_file_descriptor_set transactional by @fallintoplace in #253
- descriptor: validate reflective field membership by @fallintoplace in #254
- benchmarks/history: add v0.8.0 data point by @iainmcgin in #243
- encoding: add #[inline] to Tag::new by @iainmcgin in #259
- json: parse quoted integers exactly by @fallintoplace in #255
- encoding: force-inline varint decode in packed element loops by @iainmcgin in #265
- codegen: opt-in idiomatic_field_names — snake_case Rust field idents by @iainmcgin in #260
- deps: bump smoothutf8 to 0.2.3 by @iainmcgin in #246
- view decode: charge unknown-field limit per re-materializable field by @iainmcgin in #266
- docs: use cargo add instead of versioned TOML snippets in the guide by @iainmcgin in #262
- docs: use cargo add in the crate-root no_std snippet by @iainmcgin in #263
- view: make OwnedView::to_owned_message infallible by @iainmcgin in #268
- Fix trailing whitespace in SECURITY.md by @iainmcgin in #273
- types: make WirePayload opaque so to_str reaches the slack-aware validator by @iainmcgin in #247
- docs: correct stale gate_reflect_on_crate_feature doc comments by @iainmcgin in #261
- fix(view): preserve packed closed-enum unknowns by @ogarciarevett in #252
- codegen: root re-export of FILE_DESCRIPTOR_SET_BYTES, strip source_code_info by @iainmcgin in #286
- Add buffa-remote-derive: ProtoString/ProtoBytes/ProtoList/ProtoBox/MapStorage for remote types by @rsd-darshan in #251
- buffa-types: add
jifffeature (Timestamp/Duration conversions) by @macalinao in #264 - Add MessageField::map consuming combinator by @Yong-yuan-X in #282
- feat(codegen): add exclude_package to drop option-only imports by @ariesdevil in #279
- Watch transitive proto imports in build by @fallintoplace in #275
- Reject unsafe unquoted integer floats by @fallintoplace in #274
- Validate DynamicMessage values before set by @fallintoplace in #272
- codegen: path-scoped editions feature overrides (override_feature_in), first entry enum_type:OPEN by @iainmcgin in #291
- encode: vectored (rope) output via an EncodeSink abstraction by @iainmcgin in #284
- remote-derive: optional as_shared override on derive(ProtoBytes) by @iainmcgin in #294
- docs: clean up rustdoc warnings by @EffortlessSteven in #295
- ci: cache-write hygiene and CLA allowlist for the maintenance agent by @iainmcgin in #288
- ci: deny rustdoc warnings in lint-and-test by @iainmcgin in #296
- encode: enforce the protobuf 2 GiB message-size limit by @rpb-ant in #271
- codegen: inline view field decoding by @ogarciarevett in #312
- codegen: enforce closed-enum unknown-field limits by @ogarciarevett in #313
- descriptor: preserve existing message on decode errors by @fallintoplace in #299
- docs: surface MessageField/EnumValue From conveniences and derive guidance by @Yong-yuan-X in #306
- codegen: never let a proto comment's code fence become a doctest by @iainmcgin in #309
- reflect: adopt message values from another descriptor pool on set by @iainmcgin in #308
- descriptor: reject ambiguous field identities by @fallintoplace in #300
- reflect: preserve oneof members on decode errors by @fallintoplace in #303
- descriptor: validate service and method symbols by @fallintoplace in #302
- view: mark the unknown-field pushers cold by @iainmcgin in #317
- reflect: preserve closed enum unknowns by @fallintoplace in #304
- decode: bulk path for packed fixed-width payloads by @taoroalin in #314
- decode: slice-specialized loop for packed plain-varint payloads by @taoroalin in #315
- benchmarks: add a columnar batch with long packed columns by @iainmcgin in #318
- decode: bound the memory repeated elements and map entries materialize by @iainmcgin in #319
- Add try_encode_bounded: budget-checked single-pass encode entry points by @rsd-darshan in #320
- release: v0.9.0 by @iainmcgin in #322
New Contributors
- @Yong-yuan-X made their first contribution in #244
- @EffortlessSteven made their first contribution in #295
- @taoroalin made their first contribution in #314
Full Changelog: v0.8.0...v0.9.0