prost icon indicating copy to clipboard operation
prost copied to clipboard

feat: protobuf edition 2023 support

Open abarke opened this issue 6 months ago β€’ 5 comments

πŸš€ Protobuf Edition 2023 Support

✨ Major Features

🎯 Edition 2023 Compatibility

  • Partial support for protobuf edition = "2023" syntax
  • Feature-based behaviour resolution (vs syntax-based checks)
  • Advanced field presence semantics (explicit, implicit, legacy_required)
  • Enhanced enum handling (open/closed semantics)

πŸ”§ Infrastructure Updates

  • C++ Standard: Upgraded from v14 to v17 πŸ“ˆ
  • Protobuf Version: Updated from v25.8 to v32.1 πŸ“¦

πŸ“š New Documentation & Examples

  • Requirements for supporting EDITIONS.md
  • New Edition 2023 example
  • Updated README with editions syntax documentation

βš™οΈ Code Generation Improvements

  • New feature resolution system in prost-build
  • Enhanced field presence handling for all protobuf versions
  • Improved conformance test support for editions

πŸ§ͺ Testing & Validation

  • Conformance tests pass for edition 2023 (though missing some features)
  • Updated failing_tests.txt

⛓️‍πŸ’₯ Breaking Changes

  • Various changes due to upstream proto files caused by protobuf upgrade e.g api.proto
  • See semver CI results for more breaking changes (some may be false positives I believe)

πŸ—ΊοΈ Missing Protobuf Features

New tests were added to conformance/failed_tests.txt

  • Unknown Fields tokio-rs/prost#1340
  • Unknown Ordering (since protobuf v27)
  • Delimited encoding/MessageSet (old proto2 extension)

Fixes #1031

abarke avatar Oct 09 '25 18:10 abarke

Yeah! Unknown field support! :tada:

mmmtastymmm avatar Oct 15 '25 17:10 mmmtastymmm

Yeah! Unknown field support! πŸŽ‰

Not in this PR, but this is covered in https://github.com/tokio-rs/prost/pull/1340

Perhaps that should be merged first so I can rebase this branch

alebar42 avatar Oct 16 '25 07:10 alebar42

Yeah! Unknown field support! πŸŽ‰

Not in this PR, but this is covered in #1340

Perhaps that should be merged first so I can rebase this branch

My b, commented on the wrong one!

mmmtastymmm avatar Oct 16 '25 07:10 mmmtastymmm

Aside from the semver checks failing, what's the blocker for this to land?

cdbrkfxrpt avatar Nov 22 '25 08:11 cdbrkfxrpt

Aside from the semver checks failing, what's the blocker for this to land?

I think there is focus on #1340 so perhaps this PR rebased would be the next step after that. They should compliment eachother nicely.

alebar42 avatar Nov 24 '25 11:11 alebar42