2 releases
0.3.1 | Mar 2, 2021 |
---|---|
0.3.0 | Mar 2, 2021 |
#7 in #pure-data
29KB
496 lines
An implementation of the Fast Universal Digital Interface networking protocol. This can be used to communicate with Pure Data via the netsend / netreceive objects. note: This implementation does not handle escaped whitepace in message atoms.
The specification implies ASCII encoding for the messages. A message needs a trailing newline (i.e. '\n') according to the Java example in the old wiki page. This is not explicitly mentioned in the FUDI specification.
examples:
- send random floats
- run patch "send_random_floats.pd"
- run:
cargo run --examples send_random_floats
- receive random floats
- run patch "receive_random_floats.pd"
- run:
cargo run --examples receive_random_floats
- receive bangs
- run patch "recevie_bang.pd"
- run: `cargo run --example receive_bang"
TODO
- handle non-alphanumeric characters in message
- handling escaped whitespace in atoms
- handle TCP
references
- specification (via archive.org)
- wikipedia: FUDI
- Pure Data
- Pure Data messages
- undocumented internal messages
- nom - parser combinator framework
- ASCII
- graphviz for drawing the parsing finite state machine
Dependencies
~2.5MB
~50K SLoC