Most protobuf implementations are unfortunately not a good example of high-performance binary serialization code (but still better than the average JSON serialization library! And Go, C# (it provides protobuf almost out of box), Java and Rust implementations appear to be decent).
However, your use case is likely doesn't need to process multi-gigabit traffic in JSON requests. Therefore, protobuf, or more specifically, gRPC will be just fine.