
tuie 是一个面向 Rust 的 TUI 库,目标是把终端应用的布局、输入、渲染和性能细节收进一套比较完整的 widget 系统里。它不是只提供几个 box drawing helper,而是把 Flexbox、grid、split、virtualized list、文本输入、图片渲染、主题色和可选 GUI 运行模式都放进同一个抽象里。
README 里最值得注意的是它对终端能力边界的处理。图片组件支持 Kitty 协议,并提供 sixel 与 half-block fallback,还强调可以在 SSH 和 tmux passthrough 下工作;输入部分是 iterator-based,可扩展,并内置 vi、emacs、modern 和自定义绑定。对于写复杂终端应用的人来说,这些往往比“能画表格”更接近真实痛点。
性能方向也写得很直接:tuie 做了 subtree、widget、cell 级别的 dirty tracking,配合 batched queries、shared memory graphics 和 packed structs,减少不必要的重绘与查询成本。它还提供一个 chord! 宏,用更接近人类阅读的方式构造和匹配组合键,比如 Ctrl + Arrow(Up | Down) 这一类输入。
上手方式比较 Rust:cargo add tuie --features=harmonious 后,用链式 builder 组合 widget tree,再调用 tuie::start_tui(root)。如果只想从简单界面开始,可以用 Pane、Text 这些默认 widget;如果要做更复杂的应用,也可以自己实现 Widget,或者用 delegate widget 把事件处理挂到根组件上。
项目当前版本是 0.1.2,MIT 许可证,主语言 Rust,截至 2026 年 5 月 27 日 GitHub 约 44 stars。它还比较年轻,但已经有两个参考方向:一个是覆盖大部分 widget 和功能的 tuie-demo,另一个是基于 tuie 构建的 fuzzy finder fz。如果你在 Rust 里写过 ratatui 风格的界面,又想看看更偏 widget tree、图片和 GUI fallback 的设计,tuie 值得放进观察列表。
传送门
https://github.com/jake-stewart/tuie
原创文章,如若转载,请注明出处:https://wefound.cc/p/3763.html