what the 'g' stands for, since we've never really been able to figure it out. Below is a list of already-used definitions (that should not be repeated in the future), and the corresponding version numbers that used them: • 1.0 'g' stands for ‘gRPC’ • 1.1 'g' stands for ‘good' • 1.2 'g' stands for ‘green' • 1.3 'g' stands for ‘gentle' • 1.4 'g' stands for ‘gregarious' • 1.6 'g' stands for ‘garcia' • 1.7 'g' stands for ‘gambit' • 1.8 'g' stands for ‘generous' • 1.9 'g' stands for 'glossy'
• Server and client code generation • Delicacy: context propagation with timeouts and metadata, HTTP/2 PINGs, GOAWAY, etc. • A lot of (auto-) tuning possibilities: HTTP/2 WINDOW_UPDATE, etc.
useful zero values, backward- and forward-compatibility, canonical mapping to JSON • Code generation • Effective* • … but specification is agnostic to message serialization format
useful zero values, backward- and forward-compatibility, canonical mapping to JSON • Code generation • Effective* • … but specification is agnostic to message serialization format • … but please use protobuf v3 by default
Once per RPC call, not per message • Can be sent even before request message is received • Standard (timeouts, authentication, etc.) and custom • Available via context.Context
be generated by the framework, some are not • Custom codes can* be used • Always available, even if underlying transport is broken • google/rpc/status.proto can be used (embedded or not) for extended statuses