Better Protobuf / gRPC Support for Python

This project aims to provide an improved experience when using Protobuf / gRPC in a modern Python environment by making use of modern language features and generating readable, understandable code. It will not support legacy features or environments. The following are supported:

  • Protobuf 3 & gRPC code generation
    • Both binary & JSON serialization is built-in
  • Python 3.7+
    • Enums
    • Dataclasses
    • async/await
    • Relative imports
    • Mypy type checking

This project is heavily inspired by, and borrows functionality from:

TODO

  • Fixed length fields
    • Packed fixed-length
  • Zig-zag signed fields (sint32, sint64)
  • Don't encode zero values for nested types
  • Enums
  • Repeated message fields
  • Maps
    • Maps of message fields
  • Support passthrough of unknown fields
  • Refs to nested types
  • Imports in proto files
  • Well-known Google types
  • JSON that isn't completely naive.
  • Async service stubs
  • Python package
  • Cleanup!
Description
No description provided
Readme 2 MiB
Languages
Python 95.2%
Jinja 3.1%
Java 1.7%