| Crates.io | gst-plugin-zenoh |
| lib.rs | gst-plugin-zenoh |
| version | 0.3.2 |
| created_at | 2025-12-27 11:03:07.445328+00 |
| updated_at | 2025-12-29 22:12:31.069754+00 |
| description | High-performance GStreamer plugin for distributed media streaming using Zenoh protocol |
| homepage | |
| repository | https://github.com/p13marc/gst-plugin-zenoh |
| max_upload_size | |
| id | 2007043 |
| size | 572,673 |
A GStreamer plugin for distributed media streaming using Zenoh.
| Element | Description | Documentation |
|---|---|---|
| zenohsink | Publishes GStreamer buffers to Zenoh | README |
| zenohsrc | Subscribes to Zenoh and delivers to pipelines | README |
| zenohdemux | Demultiplexes streams by key expression | README |
# Ubuntu/Debian
sudo apt-get install libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
# Fedora
sudo dnf install libunwind-devel gstreamer1-devel gstreamer1-plugins-base-devel
# Build
cargo build --release
# With compression support
cargo build --release --features compression
# Set plugin path
export GST_PLUGIN_PATH=target/release
# Sender
gst-launch-1.0 videotestsrc ! zenohsink key-expr=demo/video
# Receiver
gst-launch-1.0 zenohsrc key-expr=demo/video ! videoconvert ! autovideosink
zenoh:key-expr?priority=2&reliability=reliableuse gstzenoh::{ZenohSink, ZenohSrc, ZenohDemux, PadNaming};
// Simple constructor
let sink = ZenohSink::new("demo/video");
// Builder pattern
let sink = ZenohSink::builder("demo/video")
.reliability("reliable")
.priority(2)
.express(true)
.build();
// Typed getters
println!("Sent: {} bytes", sink.bytes_sent());
See docs.rs for full API documentation.
Build with compression features:
cargo build --release --features compression-zstd # Zstandard (recommended)
cargo build --release --features compression-lz4 # LZ4 (fastest)
cargo build --release --features compression-gzip # Gzip (compatible)
cargo build --release --features compression # All algorithms
Usage:
# Sender with compression
gst-launch-1.0 videotestsrc ! zenohsink key-expr=demo/video compression=zstd
# Receiver (auto-decompresses)
gst-launch-1.0 zenohsrc key-expr=demo/video ! videoconvert ! autovideosink
| Sender | Receiver | Result |
|---|---|---|
compression=none |
Any build | Works |
compression=zstd |
Built with compression-zstd |
Works |
compression=zstd |
Built without compression | Error logged, raw compressed bytes delivered |
Recommendation: Build both sender and receiver with the same compression features, or use --features compression for full compatibility.
Mozilla Public License 2.0 - see LICENSE.