mirror of
https://github.com/luxfi/netrunner.git
synced 2026-07-27 00:04:23 +00:00
Per the project rule: ZAP internal, no google.golang.org/protobuf on the wire OR in the netrunner rpcpb package by default. rpcpb/rpc.pb.go: //go:build grpc — protoc-gen-go output stays available behind the legacy tag for external integrations that still want the proto Go types. rpcpb/types.go: //go:build !grpc — hand-written plain Go structs for every Request/Response/spec/info type. Same names, same field types, same json: tags so JSON wire compat with rpc.pb.go is preserved. Plus the proto-style GetX() helpers callers expect. Default-build dep graph for rpcpb is now SINGLE-FILE: rpcpb/types.go, zero google.golang.org/protobuf, zero google.golang.org/grpc. scripts/check-no-grpc.sh: CI gate. Walks the default-tag dep graph and fails non-zero if google.golang.org/grpc or grpc-ecosystem/grpc-gateway reappears. Wire this into CI to make the rule stick.