danielgtaylor / python-betterproto

Clean, modern, Python 3.6+ code generator & library for Protobuf 3 and async gRPC
MIT License
1.56k stars 218 forks source link

Support for AIP 203 annotations? #450

Open woodruffw opened 1 year ago

woodruffw commented 1 year ago

Hi there! Thanks for creating and maintaining this package -- I'm currently looking into integrating protobuf messages into one of the Python projects I work on, and this looks like a really nice interface.

As part of designing the messages I'm planning on using, I'd like to be able to use AIP 203-style annotations to signal that particular fields are required on the wire. I can see these annotations show up in other codegen backends (like Go and Java), but they don't seem to have any effect on betterproto's generation.

Full context: https://github.com/sigstore/protobuf-specs/pull/41

Is this something that's currently possible with betterproto? If not, is there interest in adding support for it? If so, it's something I could take a stab at 🙂

Thanks in advance!

Gobot1234 commented 1 year ago

I'm hesitant to add support for features that aren't from the official google spec, maybe @danielgtaylor has a differing opinion about this.

woodruffw commented 1 year ago

I don't know a ton about protobuf, so excuse my ignorance: is this not in the official Google spec in the sense that it's not part of the "core" spec? Because I believe AIP 203 itself is a Google-written specification, and the libraries that other languages use to support it are officially supported and released by Google as part of their protobuf support ecosystem.

Gobot1234 commented 1 year ago

Oh yes sorry, you're correct, go for it then.