Crate pty_process[−][src]
Expand description
This crate adds a helper method to
std::process::Command
(and optionally its
equivalent in various async frameworks) to allocate a pty to spawn the
process into. This allows for manipulation of interactive programs.
The basic functionality is provided by the Command
trait in
this crate:
use pty_process::Command as _;
let mut cmd = std::process::Command::new("nethack");
let child = cmd.spawn_pty(Some(&pty_process::Size::new(24, 80))).unwrap();
The child
instance returned by the call to
spawn_pty
is a thin wrapper around the Child
struct associated with the Command
module used. You can use it
identically to how you would use the normal
std::process::Child
instance, but it also
provides additional methods for interacting with the pty:
use std::io::Write as _;
child.pty().write_all(b"foo\n").unwrap();
child.resize_pty(&pty_process::Size::new(30, 100)).unwrap();
let status = child.wait().unwrap();
The available implementations are gated by features:
backend-std
: Add an implementation forstd::process::Command
. Enabled by default.backend-smol
: Add an implementation forsmol::process::Command
.backend-async-std
: Add an implementation forasync_std::process::Command
.backend-tokio
: Add an implementation fortokio::process::Command
.
Any number of backends may be enabled, depending on your needs.
Modules
Structs
Wrapper struct adding pty methods to the normal Child
struct.
Represents the size of the pty.
Enums
Traits
Adds methods to the existing Command
struct.