5个版本 (3个破坏性更新)

0.4.0 2023年8月7日
0.3.0 2023年3月8日
0.2.0 2021年12月15日
0.1.1 2021年11月10日
0.1.0 2021年3月6日

异步 中排名第 187

Download history 1187/week @ 2024-04-22 1530/week @ 2024-04-29 1211/week @ 2024-05-06 1309/week @ 2024-05-13 1419/week @ 2024-05-20 1510/week @ 2024-05-27 1338/week @ 2024-06-03 1926/week @ 2024-06-10 1218/week @ 2024-06-17 1328/week @ 2024-06-24 906/week @ 2024-07-01 1391/week @ 2024-07-08 1617/week @ 2024-07-15 2076/week @ 2024-07-22 1764/week @ 2024-07-29 1606/week @ 2024-08-05

每月下载量 7,120
8 crate 中使用

MIT 许可证

39KB
854

pty-process

此crate是围绕 tokio::process::Commandstd::process::Command 的包装,它提供了分配pty并在此pty上创建新进程的能力,其中pty是它们的控制终端。这允许操纵交互式程序。

基本功能如下所示

let mut pty = pty_process::Pty::new().unwrap();
pty.resize(pty_process::Size::new(24, 80)).unwrap();
let mut cmd = pty_process::Command::new("nethack");
let child = cmd.spawn(&pty.pts().unwrap()).unwrap();

返回的 childtokio::process::Child 的正常实例(或 std::process::Child 用于 blocking 变体),其 stdin/stdout/stderr 文件描述符指向给定的 pty。The pty 实例实现了 tokio::io::AsyncReadtokio::io::AsyncWrite(或 std::io::Readstd::io::Write 用于 blocking 变体),可用于与子进程通信。子进程也将成为新会话的会话领导者,并且该会话的控制终端将被设置为给定的 pty。

特性

默认情况下,只有 blocking API 可用。要包括异步 API,必须启用 async 功能。

依赖关系

~1–11MB
~127K SLoC