FUDI


FUDI is a networking protocol used by the Pure Data patching language invented by Miller Puckette. It is a string based protocol in which messages are separated by semicolons. Messages are made up of tokens separated by whitespaces, and numerical tokens are represented as strings.

Format

FUDI is a packet oriented protocol.
Each message consists of one or more atoms, separated by one or more whitespace characters, and it's terminated by a semicolon character.
An atom is a sequence of one or more characters; whitespaces inside atoms can be escaped by the backslash character.
A whitespace is either a space, a tab or a newline.
A semicolon is mandatory to terminate a message.
A newline is just treated as whitespace and not needed for message termination.

Implementations

pdsend / pdreceive

Those command-line tools are distributed with the software Pure Data. They are meant to be used with their counterparts, the classes / of Pd.

netsend / netreceive

Those classes can be used to transport Pd-messages over a TCP or UDP socket. Both are part of Pd-vanilla.

netserver / netclient

Those are part of maxlib and allow bidirectional connections of multiple clients with one server.

Example messages

test/blah 123.45314;
my-slider 12;
hello this is a message;
this message continues
in the following
line;
you; can; send; multiple messages; in a line;
this\ is\ one\ whole\ atom;
this_atom_contains_a\
newline_character_in_it;