6个版本
0.5.0-alpha.0 | 2024年2月23日 |
---|---|
0.4.3 | 2023年12月7日 |
0.4.0 | 2023年8月1日 |
0.2.2 | 2022年5月3日 |
0.2.1 | 2022年3月10日 |
#1193 在 GUI
每月38次下载
1.5MB
24K SLoC
Dioxus TUI
使用Dioxus在Rust中创建美观的终端用户界面。
利用类似React的模式、CSS、HTML和Rust,用Dioxus构建美观、可移植的终端用户界面。
fn app() -> Element {
rsx!{
div {
width: "100%",
height: "10px",
background_color: "red",
justify_content: "center",
align_items: "center",
"Hello world!"
}
})
}
背景
您可以在您的text-based user interface (TUI)
应用程序中使用类似Html的语义,包括内联样式、树状层次结构、组件等。
Dioxus TUI实际上是将Ink移植到Rust
和Dioxus
的版本。Dioxus TUI不依赖于Node.js或其他任何JavaScript运行时,因此您的二进制文件是可移植的,并且看起来很美。
限制
- Html子集 终端只能渲染Html的子集。我们支持尽可能多的功能。
- 特定的前端设计 终端和浏览器的行为和外观不同。因此,相同的设计可能不适合两种渲染器。
状态
警告:Dioxus TUI目前正在建设中!
渲染VirtualDom效果良好,但钩子生态系统尚未准备好。此外,flexbox实现中的一些错误可能会导致一些奇怪的问题。
特性
Dioxus TUI特性
- 基于Flexbox的布局系统
- CSS选择器
- 支持内联CSS
- 内置焦点系统
- 小部件1
- 支持事件、钩子和回调2
- Html标签3
1 目前仅实现了输入元素的子集作为组件(而非元素)。Input
组件支持滑块、文本、数字、密码、按钮和复选框。2 实现了基本的键盘、鼠标和焦点事件。3 目前,大多数Html标签在Dioxus TUI中没有转换为任何含义。因此,input
元素 没有任何意义,也没有任何附加功能。
依赖关系
~22-32MB
~427K SLoC