--- id: betterproto2 version: "0.10.0" license: MIT license_treatment: permissive maintenance: active --- # betterproto2 — A better Protobuf / gRPC generator & library License: permissive · Maintenance: active · Downloads: 916.8K/mo ## What it is and what it does Betterproto2 is a code generator and runtime library that converts Protobuf and gRPC definitions into readable, idiomatic Python code. Unlike the official Google protoc plugin, it generates modern Python using dataclasses, type hints, async/await syntax, and timezone-aware datetime objects, making the output both more Pythonic and easier to work with in contemporary codebases. The library targets Protobuf 3 and modern Python (3.10+), and can generate Pydantic models alongside standard dataclasses. It handles both binary and JSON serialization natively. The project is a ground-up redesign of the original betterproto, still in active development with known breaking changes possible; it trades stability for the ability to fix bugs and add features the official plugin lacks. Use it for: - Building async gRPC services in Python where the official protoc plugin's lack of native async support is a blocker. - Generating type-checkable Protobuf message classes that work seamlessly with mypy and IDE code completion. - Creating Pydantic-compatible models from Protobuf definitions for validation and serialization in modern frameworks. - Modernizing Protobuf workflows to use Python idioms (e.g., None instead of special wrapped types, datetime instead of Timestamp). - Replacing Google's protoc plugin when import path issues or name-clash bugs affect your project. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Generates idiomatic Python code from Protobuf and gRPC definitions, with built-in async/await support, type hints, and modern dataclass-based serialization. Yes, if you are starting a new async gRPC project in Python 3.10+ and want modern, readable generated code with type support. Conditional caution: the project explicitly warns of active development and potential breaking changes, so pin versions carefully and review release notes before upgrading. Not suitable if you require long-term API stability or need to support Python versions below 3.10. ## Install pip install betterproto2 uv add betterproto2 poetry add betterproto2 ## Installing betterproto2 Before you install: Low install friction with only two lightweight runtime dependencies (python-dateutil and typing-extensions). Active maintenance with recent commits; however, the project is in active development and explicitly warns of potential breaking changes. License in practice: MIT license permits commercial and private use with minimal restrictions; attribution required. Quickstart: pip install betterproto2 import betterproto2 # Generated code uses modern Python dataclasses and async/await Requires Python 3.10 or higher; Protobuf 3 and a protoc compiler setup. Verify before relying: - Whether generated code is fully compatible with existing protoc-generated code in mixed projects - Current state of Pydantic model generation support and completeness - Scope and timeline of documented breaking changes still expected during active development ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 916.8K/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags protobuf code generation python, grpc python generator, async protobuf python, protobuf to python dataclass, modern protobuf python, grpc async python, protobuf type hints, protobuf-codegen, grpc-async, type-hints [View on SkillFed](https://skillfed.io/packages/betterproto2) · [View on PyPI](https://pypi.org/project/betterproto2/)