Python bindings
Hi,
First of all, many thanks for developing PipeWire!
I've started writing Python bindings for the library.
They are still in an early alpha stage. Similar to the Rust bindings, the first step was to create low-level bindings, directly calling the API from Python. This was achieved using CFFI, chosen for its modernity, ease of use, speed (compiles a binding module) and support of callbacks. The six tutorials from the docs have been ported to Python and work. Among the next steps will be to write a higher-level, pythonic, class-based layer on top of the bindings and make the project publishable to PyPI.
The main issue so far was that no known Python binding system provides fully automated API wrapping: all systems (ctypes, SWIG, CFFI, CPython's API, ...) require to declare the API manually to some extent. This is what I did at first, but then managed to write an automating system that parses and adapts PipeWire's public headers. This required relatively (surprisingly?) little hacks. Some issues remain in corner cases, particularly for variadic functions implemented as macros.
Now to my main question/request: would you be interested in joining forces, as in, adopt the project to the PipeWire group, host it here, etc., like for pipewire-rs
?