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§
pub use self::core::Core;
pub use self::core::InitFlags;
pub use self::error::Error;
pub use self::error::Result;
pub use self::log::Log;
pub use ffi;
Modules§
- WirePlumber’s entry point and base Object type.
- dbus
v0_4_11
- Error handling and the Result alias
- Wrappers around
pw_impl_node
and other local objects - Logging macros and utilities
- lua
lua
Lua script execution - Externally loaded modules
- Extension traits
- PipeWire proxy objects
- Remote object change notifications
- Session item factories
- signals
glib-signal
glib_signal types - Miscellaneous types and helpers
Macros§
- Exports a ModuleExport as the wireplumber plugin entry point.