Crate wireplumber

source ·
Expand description

WirePlumber library bindings

This crate provides a high-level interface to PipeWire’s API via libwireplumber. Explore the documentation for the various modules below for information on how to start using WirePlumber with Rust.

Initialization

Service Daemon

For creating a new wireplumber instance, you’ll need to start with a Core. Start with the module documentation for examples.

Dynamic Modules

Exporting a dynamic plugin starts with implementing the PluginImpl trait. The plugin documentation will get you started on creating one!

PipeWire Connection

Once you have a core connection, the registry will allow you to inspect and influence the state of the remote PipeWire service and objects.

Examples

Besides those found in this documentation, additional examples can be found alongside the source code, and can be built and run via Cargo:

$ cargo run -p wp-examples --bin wpexec -- --help
... snip ...

## try out the default lua example:
$ cargo run -p wp-examples --bin wpexec

## or load the example plugin module:
$ cargo build --workspace --examples &&
  cargo run -p wp-examples --bin wpexec -- --type wireplumber

It’s recommended to poke around their source code in a local checkout, but you can also view the generated documentation and source code online:

Upstream Documentation

WirePlumber is a GObject library, and its C API documentation may also be helpful.

Re-exports

Modules

Macros