Expand description
Crate-level documentation for cpdb-rs.
This library provides a native async Rust client for the
Common Print Dialog Backends (CPDB)
system. It communicates with CPDB backends (e.g. cpdb-backend-cups)
over D-Bus using zbus, requiring no C dependencies.
§Features
zbus-backend(default) - Native async D-Bus client viaCpdbClient. (Note: This useszbuswith thetokioruntime feature exclusively. Other async runtimes likeasync-stdare not currently supported by the high-level client).ffi- Legacy synchronous C FFI bindings viacpdb-libs.
§Quick start
use cpdb_rs::CpdbClient;
let client = CpdbClient::new().await?;
let printers = client.get_all_printers().await?;
for p in &printers {
println!("{} [{}] - {}", p.name, p.id, p.make_model);
}
if let Some(p) = printers.first() {
let (options, media) = client
.get_printer_details(&p.id, &p.backend)
.await?;
println!("{} options, {} media sizes", options.len(), media.len());
}Re-exports§
pub use client::CpdbClient;zbus-backendpub use config::PrinterConfig;zbus-backendpub use events::DiscoveryEvent;zbus-backendpub use events::PrinterSnapshot;zbus-backendpub use media::MarginInfo;zbus-backendpub use media::MediaCollection;zbus-backendpub use media::MediaInfo;zbus-backendpub use types::PrinterState;zbus-backendpub use error::CpdbError;pub use error::Result;pub use options::OptionInfo;pub use options::OptionsCollection;
Modules§
- client
zbus-backend - Async CPDB client.
- config
zbus-backend - Printer configuration persistence types.
- error
- Crate-wide error type and
Resultalias. - events
zbus-backend - Discovery events emitted by CPDB backends.
- media
zbus-backend - Paper sizes and margins returned by
GetAllOptions. - options
- Printer options (capabilities) returned by
GetAllOptions. - proxy
zbus-backend - D-Bus proxy for the
org.openprinting.PrintBackendinterface. - types
zbus-backend - Shared utility types for cpdb-rs.