libfunnel-rs
Rust bindings for libfunnel - a library to make creating PipeWire video streams easy, using zero-copy DMA-BUF frame sharing. "Spout2 / Syphon, but for Linux".
Status
- Bindings for the core
libfunnelAPI - Bindings for the vulkan integration
- Bindings for the egl integration
- Bindings for the gbm integration
- Example using ash
- Example using wgpu (requires explicit wait semaphores)
Documentation
See libfunnel Documentation for the upstream docs. The documentation for the bindings are available on docs.rs.
Specifically the funnel_mode and Buffer synchronization guide pages are very helpful to read.
Installation
Run cargo add libfunnel to add it to your Cargo.toml.
[]
= "0.1.0"
You'll also need the C libfunnel library installed on your system.
Usages
Here's an rough outline of how you would integrate this library into the draw loop of a vulkan app. A fully working example can be found in ./examples.
use *;