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
每月下载量 7,120
在 8 crate 中使用
39KB
854 行
pty-process
此crate是围绕 tokio::process::Command 或 std::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();
返回的 child 是 tokio::process::Child 的正常实例(或 std::process::Child 用于 blocking 变体),其 stdin/stdout/stderr 文件描述符指向给定的 pty。The pty 实例实现了 tokio::io::AsyncRead 和 tokio::io::AsyncWrite(或 std::io::Read 和 std::io::Write 用于 blocking 变体),可用于与子进程通信。子进程也将成为新会话的会话领导者,并且该会话的控制终端将被设置为给定的 pty。
特性
默认情况下,只有 blocking API 可用。要包括异步 API,必须启用 async 功能。
依赖关系
~1–11MB
~127K SLoC