ios-core 0.1.7

High-level device API, pairing transport, and discovery for iOS devices
Documentation
//! XPC binary protocol over HTTP/2 for iOS 17+ service connections.
//!
//! Architecture:
//!   h2_raw   – minimal raw HTTP/2 framer (streams 1 + 3)
//!   message  – XPC binary message encode/decode
//!   rsd      – RSD handshake (service discovery)
//!   client   – High-level XpcClient

#[cfg(feature = "tunnel")]
pub mod client;
#[cfg(any(
    feature = "tunnel",
    feature = "dproxy",
    feature = "fetchsymbols",
    feature = "restore"
))]
pub mod h2_raw;
pub mod message;
pub mod rsd;

#[cfg(feature = "tunnel")]
pub use client::XpcClient;
#[cfg(any(
    feature = "apps",
    feature = "deviceinfo",
    feature = "diagnosticsservice",
    feature = "dproxy",
    feature = "fetchsymbols",
    feature = "fileservice",
    feature = "restore"
))]
pub(crate) use message::{XpcMessage, XpcValue};

/// Errors from XPC operations.
#[derive(Debug, thiserror::Error)]
pub enum XpcError {
    #[error("IO error: {0}")]
    Io(#[from] std::io::Error),
    #[error("not connected")]
    NotConnected,
    #[error("service not found: {0}")]
    ServiceNotFound(String),
    #[error("TLS / protocol error: {0}")]
    Tls(String),
}