These 3 commits are when the Protocol Buffers files have changed:
| Commit: | f5b0a6b | |
|---|---|---|
| Author: | Stan Hu | |
| Committer: | GitHub | |
grpcreplay: record raw messages from custom gRPC codecs (#70) grpcreplay assumed every message on a stream was a proto.Message and did an unchecked type assertion in message.set. RPCs that install a custom gRPC codec break this assumption. The GCS client's zero-copy ReadObject codec forces grpc.ForceCodecV2 and receives each message into a *mem.BufferSlice, so RecvMsg panics: interface conversion: *mem.BufferSlice is not protoreflect.ProtoMessage Recording writes worked, but reads could not be captured, which is why the go-cloud gcsblob gRPC test ran only against a real bucket. Record such messages as raw wire bytes instead. message now holds either a proto.Message or a []byte; message.set type-switches and materializes a copy of the BufferSlice (gRPC frees the buffers after RecvMsg returns). A new raw_message field on the Entry proto carries the bytes, and replay delivers them back into the caller's *mem.BufferSlice, mirroring the codec's Unmarshal. This requires google.golang.org/grpc v1.67.1 for the mem package. Reported in https://github.com/google/go-cloud/pull/3772
| Commit: | c3f3f8f | |
|---|---|---|
| Author: | Koichi Shiraishi | |
grpcreplay/proto: add go_package option
The documentation is generated from this commit.
| Commit: | 11fb739 | |
|---|---|---|
| Author: | Jonathan Amsterdam | |
grpcreplay