client protobuf