Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tpltnt/fudi-rs
A Rust library to handle FUDI messages for Pure Data
https://github.com/tpltnt/fudi-rs
creative-coding messaging network nom puredata sound
Last synced: about 1 month ago
JSON representation
A Rust library to handle FUDI messages for Pure Data
- Host: GitHub
- URL: https://github.com/tpltnt/fudi-rs
- Owner: tpltnt
- License: other
- Created: 2019-04-08T16:46:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-20T15:59:10.000Z (8 months ago)
- Last Synced: 2024-08-09T02:59:10.180Z (5 months ago)
- Topics: creative-coding, messaging, network, nom, puredata, sound
- Language: Rust
- Size: 61.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/tpltnt/fudi-rs.svg?branch=master)](https://travis-ci.org/tpltnt/fudi-rs)
[![dependency status](https://deps.rs/repo/github/tpltnt/fudi-rs/status.svg)](https://deps.rs/repo/github/tpltnt/fudi-rs)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](https://web.archive.org/web/20120304071510/http://wiki.puredata.info/en/FUDI). This is not explicitly mentioned in the FUDI specification.Use [libpd-rs](https://github.com/alisomay/libpd-rs) if you want to interface with libpd.
# 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](https://web.archive.org/web/20120304071510/http://wiki.puredata.info/en/FUDI) (via archive.org)
* [wikipedia: FUDI](https://en.wikipedia.org/wiki/FUDI)
* [Pure Data](http://puredata.info/)
* [Pure Data messages](https://puredata.info/dev/PdMessages)
* [undocumented internal messages](https://puredata.info/docs/tutorials/TipsAndTricks#undocumented-pd-internal-messages)
* [nom](https://github.com/Geal/nom) - parser combinator framework
* [ASCII](https://en.wikipedia.org/wiki/ASCII)
* [graphviz](https://graphviz.org/) for drawing the parsing finite state machine