Binary literally means 1 and 0 and all that, but what we mean by binary is binary as opposed to plain text, or any other non-transparent encoding.

Average computer data is binary, like a program or a photo or an MP3. When you want to deliver this through a computer network, you either need a protocol which is transparent like HTTP, or you have to use some funny encoding like base64.

PSYC, or rather MMP, is meant to be transparent thus binary capable.


The _binary module is a protocol extension of PSYC and the routing layer MMP. It allows the message body to carry any information, even if that would normally conflict with the protocol syntax.

Independently from body length there is also a _length module which negotiates for opaque variables.

Knowing length in advance is generally good, see Framing.


coyo: psyc will soon support in-band unaltered binary packets
coyo: which xmpp can only dream of having
coyo: and irc would just stare blankly at you for asking

Binary XML

Don't laugh, but PSYC isn't semantically all that distant from what the W3C experts expect from a potential future binary XML format. Binary XML and the parallels to PSYC are discussed on the Syntax page.

Implementations: currently in spyc