If you are looking for performance, you probably want to do some tests to verify you will get it.
Most of the binary protocols seem to avoid compression beyond what Solrs JavaBin does, which is very simple numerical compression, with the idea the cost should be small enough to maintain a performance win. The guy that did protobufs stopped doing even that in his latest project in the name of performance. I think maybe that’s fixed size structures where you can almost directly load native types from it though. My assumption is that it’s going to depend on the protocol and the typical data going over that protocol whether it would make any sense or not, so would have to test it out.