Expand description
Process subscription for spawning and monitoring external processes.
ProcessSubscription wraps std::process::Command as a first-class
runtime Subscription. It spawns a child process, captures stdout
line-by-line, and sends messages to the model. When the subscription is
stopped (via StopSignal), the child process is killed.
§Migration rationale
Web Worker APIs and child-process patterns in source frameworks translate to process-based subscriptions in the terminal context. This provides a clean target for the migration code emitter.
§Example
ⓘ
use ftui_runtime::process_subscription::{ProcessSubscription, ProcessEvent};
use std::time::Duration;
#[derive(Debug)]
enum Msg {
ProcessOutput(ProcessEvent),
// ...
}
fn subscriptions() -> Vec<Box<dyn Subscription<Msg>>> {
vec![Box::new(
ProcessSubscription::new("tail", Msg::ProcessOutput)
.arg("-f")
.arg("/var/log/syslog")
.timeout(Duration::from_secs(60))
)]
}Structs§
- Process
Subscription - A subscription that spawns and monitors an external process.
Enums§
- Process
Event - Events emitted by a
ProcessSubscription.