Something to keep in mind because of this is that the transport not supporting binary doesn't mean binary types are not supported by the protocol encoder/decoder, which means we should still not hand base64 to the user if this is the case