title: FUDI
text: # FUDI
  
  FUDI (Fast Universal Digital Interface) 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 (ascii 92) character (see Examples below).
  
  A whitespace is either a space (ascii 32), a tab (ascii 9) or a newline (ascii 10).
  
  A semicolon (ascii 59) is mandatory to terminate (and send) 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 [netsend] / [netreceive] 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.
  
  