This is a simple crate for instantiating a pipewire filter using a mostly rusty API (most event handlers are using raw pointers from pipewire because the only way to interact with the data being pointed is via pipewire_sys, largely via pointers).
There is an example that shows this in action, but the gist is that you supply some metadata for your filter and its i/o (ports), and some event handlers (callbacks). You can then create and run the filter by either blocking or non-blocking (spawning a thread which then calls the blocking method in the latter case).
I may update this if I find bugs or I need more features when making applications that use pipewire. Hopefully the pipewire crate will eventually support filters, thus obsoleting this crate.