jakobhellermann

Rust bindings for libfunnel: Easy app-to-app frame sharing using PipeWire

13
0
100% credibility
Found Feb 05, 2026 at 13 stars -- GitGems finds repos before they trend. Get early access to the next one.
Sign Up Free
AI Analysis
Rust
AI Summary

Rust bindings for libfunnel, enabling easy creation of efficient PipeWire video streams for app-to-app frame sharing on Linux.

How It Works

1
🔍 Discover smooth video sharing

You want to share live video from your graphics app to other apps on Linux without lag and find this helpful tool.

2
📦 Prepare your Linux setup

Install the core sharing library on your computer so apps can exchange video frames efficiently.

3
Add to your app

Include the easy Rust helper into your graphics project to unlock video streaming.

4
🎥 Set up your stream

Create a named video channel, pick its size, speed, and sharing style to match your needs.

5
🔗 Connect to your drawings

Link the stream directly to where your app draws frames for seamless, zero-copy sharing.

6
▶️ Launch the stream

Start the flow and grab frames in your app's loop to send them out smoothly.

Live sharing magic

Your app's video now streams perfectly lag-free to other apps, viewers, or screens.

Sign up to see the full architecture

5 more

Sign Up Free

Star Growth

See how this repo grew from 13 to 13 stars Sign Up Free
Repurpose This Repo

Repurpose is a Pro feature

Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.

Unlock Repurpose
AI-Generated Review

What is libfunnel-rs?

libfunnel-rs provides Rust bindings for libfunnel, a C library that simplifies app-to-app frame sharing on Linux using PipeWire's zero-copy DMA-BUF. It lets Vulkan apps stream video frames directly to other applications—like Spout2 or Syphon on macOS/Windows—without data copies or performance hits. Add it as a Rust GitHub crate via `cargo add libfunnel` after installing the C libfunnel dependency.

Why is it gaining traction?

Unlike manual PipeWire plumbing, it handles buffer sync, Vulkan semaphores, and modes like async or synchronous out of the box, cutting boilerplate for graphics pipelines. Rust safety wraps raw C APIs, similar to rust bindings for Vulkan or OpenGL, making it a drop-in for ash or wgpu render loops. Early adopters praise the upstream docs and Ash example for quick prototyping app-to-app streaming.

Who should use this?

Linux Vulkan developers building real-time screen sharing, game overlays, or multi-app compositors. Rust graphics devs integrating PipeWire in tools like virtual cameras or browser capture. Avoid if you're on EGL/GBM—those bindings are pending—or need non-Vulkan backends.

Verdict

Promising niche crate for PipeWire frame sharing, but at 13 stars and 1.0% credibility, it's early-stage with solid core Vulkan support yet incomplete integrations. Grab it for prototypes if you're in Linux graphics; watch rust GitHub trending for maturity bumps.

(178 words)

Sign up to read the full AI review Sign Up Free

Similar repos coming soon.