#终端界面 #终端 #浏览器 #抽象层 #Web 应用程序

workflow-terminal

基于 Xterm.js 和 termion crate 的终端抽象层,用于创建在本地(控制台)和浏览器(WASM32)环境中统一运行的终端应用程序

42 个版本 (14 个重大变更)

新功能 0.17.0 2024 年 8 月 19 日
0.15.0 2024 年 7 月 26 日
0.14.1 2024 年 7 月 22 日
0.11.0 2024 年 2 月 25 日
0.1.0 2022 年 9 月 21 日

HTTP 客户端 中排名第 49

Download history 256/week @ 2024-05-02 157/week @ 2024-05-09 155/week @ 2024-05-16 134/week @ 2024-05-23 164/week @ 2024-05-30 133/week @ 2024-06-06 795/week @ 2024-06-13 464/week @ 2024-06-20 566/week @ 2024-06-27 454/week @ 2024-07-04 288/week @ 2024-07-11 371/week @ 2024-07-18 580/week @ 2024-07-25 458/week @ 2024-08-01 207/week @ 2024-08-08 526/week @ 2024-08-15

每月下载量 1,809
用于 6 个 crate

MIT/Apache

735KB
7.5K SLoC

workflow-terminal

workflow-rs 应用程序框架的一部分。


在浏览器和本地环境中运行的终端和命令行界面(自定义 shell)。

github crates.io docs.rs license

概述

Workflow Terminal 允许您创建一个在操作系统 shell(控制台)和网页浏览器中对称操作的终端界面。如果您想为旨在在裸机及浏览器上运行的本地应用程序创建命令行界面,此 crate 非常有用。此 crate 特别适用于原型设计和测试与 wasm32 浏览器兼容的平台无关的应用程序和 crate。

此功能是通过创建一个同时包装

  • Crossterm - 用于本地
  • XtermJS - 用于 Web(浏览器)
  • Termion(用于本地)也作为 crate 功能提供,但 Termion 不支持 Windows 操作系统。

此 crate 只依赖于其他少量 crate,并且没有外部(JavaScript)依赖。XtermJS es6 模块在 Terminal 初始化阶段直接注入到 DOM 中。这允许使用任何 http 服务器加载终端,无需任何额外配置。(由于浏览器限制,WASM 不能加载到静态页面)

在后台,您有一个简单的 Cli 特性,它接收用户输入的命令行。

终端界面还提供了基本功能,如提示用户输入文本和密码,访问命令历史记录,以及与日志功能绑定(如果您想在终端命令回调之外向终端输出)。

请注意:此实现基于异步 Rust,目前固定在控制台上运行在 tokio 上,并使用 wasm_bindgen 和 web-sys 与浏览器环境接口。

关于如何使用此库的基本示例可以在以下位置找到: https://github.com/workflow-rs/workflow-rs/tree/master/examples/terminal

依赖项

~19–33MB
~526K SLoC