14 releases
| 0.5.0 | Sep 12, 2025 |
|---|---|
| 0.4.1 | Mar 6, 2023 |
| 0.3.0 | Dec 11, 2021 |
| 0.2.0 | Oct 7, 2021 |
| 0.1.9 | Jul 28, 2021 |
#325 in Command-line interface
15,406 downloads per month
Used in 30 crates
(4 directly)
33KB
584 lines
ptyprocess

A library provides an interface for a unix PTY/TTY.
It aims to work on all major Unix variants.
The library was developed as a backend for a https://github.com/zhiburt/expectrl.
If you're interested in a high level operations may you'd better take a look at zhiburt/expectrl.
Usage
use std::io::{BufRead, BufReader, Result, Write};
use std::process::Command;
use ptyprocess::PtyProcess;
fn main() -> Result<()> {
// spawn a cat process
let mut process = PtyProcess::spawn(Command::new("cat"))?;
// create a communication stream
let mut stream = process.get_raw_handle()?;
// send a message to process
writeln!(stream, "Hello World!")?;
// read a line from the stream
let mut reader = BufReader::new(stream);
let mut buf = String::new();
reader.read_line(&mut buf)?;
println!("line was entered {buf:?}");
// stop the process
assert!(process.exit(true)?);
Ok(())
}
Features
close-range- optimization for fasterPtyProcess::spawn(available on FreeBSD and on Linux since 5.9 and glibc 2.34)
Dependencies
~2MB
~38K SLoC