ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RMUX Python与TypeScript SDK入门:librmux与@rmux/sdk自动化实战

RMUX Python与TypeScript SDK入门:librmux与@rmux/sdk自动化实战 RMUX Python与TypeScript SDK入门librmux与rmux/sdk自动化实战【免费下载链接】rmuxUniversal Rust multiplexer with a typed SDK — drive any CLI or TUI app from code. Native on Linux, macOS, and Windows.项目地址: https://gitcode.com/gh_mirrors/rm/rmuxRMUX是一款用 Rust 编写的通用终端复用器原生支持 Linux、macOS 与 Windows。它不只是另一个 tmux 替代品——通过 Python SDKlibrmux和 TypeScript SDKrmux/sdk你可以直接从代码驱动任何 CLI 或 TUI 应用创建会话、向面板发送输入、等待特定文字出现、截取屏幕快照。本文带你 10 分钟上手这两套 SDK写出第一个自动化脚本。为什么用 SDK而不是解析命令行很多自动化工具靠跑tmux命令 解析 stdout 文本来工作输出格式一改就全崩。RMUX 走的是另一条路类型化 IPC 契约SDK 与本地 RMUX 守护进程daemon直接通信走的是结构化接口而不是 CLI 解析器或控制模式包装。统一三语言能力Rustrmux-sdk、Pythonlibrmux、TypeScriptrmux/sdk共享同一套能力模型——会话、面板、流、等待、快照。面向代码即用户的场景CI 流水线、Agent 编排、无人值守部署都适合用 SDK 编程式控制终端。官方建议交互式工作用 RMUX CLI代码是用户时用 SDK。这个分工在 docs/scripting-sdk.md 中有完整说明。一键安装步骤三种语言各一条命令前置条件先安装 RMUX 本体守护进程SDK 会连接本地守护进程连接时也可自动拉起它。# Rust cargo add rmux-sdk # Python pip install librmux # TypeScript npm install rmux/sdk三条命令对应三套 SDK安装方式完全一致地简单。仓库文档在 README.md 的 Scripting API 一节列出了全部入口。5 个核心概念读懂就能写脚本无论用哪套 SDK你打交道的都是下面这 5 个对象概念作用典型用途Rmux客户端连接/拉起本地守护进程的入口Rmux::builder().connect_or_start()Session会话一个独立的终端工作区可按名称复用为 CI 任务创建ci会话Pane面板会话内的具体终端格用坐标/handle 寻址session.pane(0, 0)Send Expect向面板发文本并等待某段文字真的渲染出来发送命令后断言readySnapshot / Stream截取屏幕快照、流式读取输出失败时保存现场、收集日志其中expect等待可见文本是最核心的能力它等的是屏幕上真正渲染出的内容而不是进程有没有退出——这正好解决了自动化里命令发出去了但程序还没打印完的经典竞态问题。第一个实战Python/TypeScript 风格的自动化流程下面展示 Rust SDK 的等价示例Python 与 TypeScript SDK 提供相同的概念模型对应仓库中的 crates/rmux-sdk/examples/quickstart.rslet rmux Rmux::builder().connect_or_start().await?; // 1. 确保存在名为 ci 的会话不存在就创建存在就复用且脱离终端运行 let session rmux.ensure_session( EnsureSession::try_named(SessionName::new(ci)?)? .create_or_reuse() .detached(true), ).await?; // 2. 取第一个面板发一条命令 let pane session.pane(0, 0); pane.send_text(printf ready\\n\n).await?; // 3. 等待屏幕上出现 ready最多等 5 秒 pane.expect_visible_text() .to_contain(ready) .timeout(Duration::from_secs(5)) .await?;翻译成白话连上守护进程 → 拿到或创建会话 → 向面板发输入 → 等屏幕出现期望文字。把这四步套到pip install librmux或npm install rmux/sdk装上之后就是你语言里的同样四步。进阶能力清单能力协商客户端可调用capabilities检查守护进程支持的特性如sdk.pane.state_events、sdk.pane.foreground跨版本兼容更安全。面板状态流订阅面板生命周期事件面板被杀、进程退出时流会收到Closed终端事件remain-on-exit保留的面板在流关闭后仍可截图取证。输出收集collect_until_exit之类的模式可一直收集输出直到进程退出适合跑批处理任务。浏览器共享rmux web-share可把面板投到浏览器且走混合抗量子端到端加密X25519 ML-KEM-768 → HKDF-SHA256 → ChaCha20-Poly1305 加密帧自动化产出的现场可以直接分享给同事。示例代码都在仓库里建议按顺序跑一遍SDK crate 自带 30 个可运行示例全部位于 crates/rmux-sdk/examples/覆盖从入门到进阶quickstart.rs最小可用示例wait_for_text.rs等待可见文本assert_visible_text.rs文本断言sdk_demo_snapshot.rs屏幕快照collect_until_exit.rs收集输出直到退出discover_panes.rs发现并枚举面板在仓库根目录执行即可cargo run -p rmux-sdk --example wait_for_text cargo run -p rmux-sdk --example assert_visible_text cargo run -p rmux-sdk --example sdk_demo_snapshot遇到排障问题rmux diagnose --json会输出构建、平台与运行时支持详情方便定位环境问题。常见问题速查问题答案Python 和 TypeScript SDK 与 Rust SDK 能力一致吗概念模型一致会话、面板、流、等待、快照均由同一守护进程提供SDK 会解析 CLI 输出吗不会。它通过类型化 IPC 契约直连守护进程解析文本只是兜底手段会话名冲突怎么办用create_or_reuse语义的 ensure 接口存在即复用不存在才创建Windows 上能跑吗可以。RMUX 原生支持三大平台Windows 前面板进程信息采用 ConPTY 根进程 OSC7 等回退策略守护进程没启动会怎样connect_or_start会自动拉起守护进程无需手动管理总结终端自动化的下一步就是写代码RMUX 的librmux与rmux/sdk把终端复用从命令行技巧升级成了可编程接口等待渲染文本解决竞态、快照与状态流保障可观测、能力协商保障跨版本稳定。无论你是做 CI 自动化、多 Agent 编排还是想把 TUI 应用纳入测试这两套 SDK 都是目前跨平台体验最完整的选型之一。延伸阅读docs/scripting-sdk.mdSDK 总览· docs/web-share.mdWeb Share 加密模型· docs/ARCHITECTURE.md整体架构【免费下载链接】rmuxUniversal Rust multiplexer with a typed SDK — drive any CLI or TUI app from code. Native on Linux, macOS, and Windows.项目地址: https://gitcode.com/gh_mirrors/rm/rmux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表