Skip to content

Python: drop betterproto dep/deprecate Python bindings entirely? #701

@woodruffw

Description

@woodruffw

betterproto is now unmaintained, per danielgtaylor/python-betterproto#673. There's an upcoming fork of it, but it (1) looks pretty young, and (2) considers itself a "major redesign," which we probably don't want to hitch ourselves to immediately.

This puts the Python bindings in a pretty tough spot: there aren't that many good Protobuf parsers/libraries out there for Python that satisfy our requirements (idiomatic modern Python 3, minimal native deps, type hints, etc.).

Given that, I think we have two options:

  1. Soft-deprecate the Python bindings (i.e. sigstore-protobuf-specs on PyPI) and move forwards with a "pure JSON" modeling approach, i.e. with handwritten models. This will be a little tedious but shouldn't be that bad for Python in particular, since we only use a subset of the protobufs anyways.
  2. Conduct a search for a new long-term Protobuf library for the Python bindings (one that's pure Python, idiomatic, has type hints, etc.). Google's proto-plus looks really nice, but it's a wrapper around the official protobuf and therefore brings in a native C build.

CC @haydentherapper @jku for thoughts 🙂

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions