牛马论坛查看原帖 →

NyaTerm:这样的终端用起来不烧心

白小白 2 阅读 3 回复
支持,体验很棒!
来分享一下自己一直在开发和维护的开源项目 [b]NyaTerm[/b]。
https://github.com/nyakang/nyaterm
[img]https://cdn.nodeimage.com/i/6FvepzBfrwS7w9nmKklp2VElTgCY0G5I.png[/img]
NyaTerm 是一个跨平台远程终端工具,最初使用 Tauri + WebView 构建。经过一段时间的开发和重构,现在已经正式切换到 [b]Rust + GPUI 原生桌面架构[/b],并发布了 2.0.0 正式版。
我自己一直是 WindTerm 的忠实用户,它的很多功能和设计都非常符合我的使用习惯。
不过,由于 WindTerm 已经有一年左右没有更新,一些长期存在的小问题、偶发闪退等情况始终没有得到解决,日常使用起来多少有些困扰。
所以,在今年 5 月份我开始照着 WindTerm 开始复刻功能,得益于 AI 第一版( WebView )很快就搓出来虽然功能逐渐丰富,但性能问题也一直困扰着我。
终端与普通桌面应用不同,尤其是大量文本输出、持续刷新、滚动和多终端并行运行的时候,对渲染效率和响应速度的要求比较高。
随着功能不断增加,原有 WebView 方案在这些场景下逐渐暴露出一些性能瓶颈。虽然尝试过不少优化,但始终没能达到自己期望的效果。
[b]既然如此,那就换框架![/b]
[size=4]轻装上阵,全新出发![/size]

NyaTerm v2 选择了 [b]Rust + GPUI[/b]。
这一次不再使用 WebView ,而是将整个桌面应用重构为原生 Rust 实现,包括界面、终端渲染、连接管理等。
[img]https://cdn.nodeimage.com/i/ToYhdkxhhqn5qmuE7XpUcoH8UAKasZux.png[/img]
说起来简单,实际动手才发现,这基本相当于重新开发了一遍 NyaTerm 。
原本 WebView 中很多习以为常的功能,都需要在 GPUI 中重新实现。终端绘制、窗口管理、输入法、剪贴板、跨平台兼容性等问题,也花费了不少时间折腾。
好在经过多个预览版本的迭代,NyaTerm v2.0.0 终于正式发布了!


⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
从WebView切到GPUI这个决定挺对的,终端这种高频刷新的场景,WebView的渲染管线确实容易成瓶颈,尤其多开tab跑日志的时候。好奇你现在滚动回溯和大文件cat这类场景表现怎么样?
[这只是一个小尾巴]
支持,的确不烧心。

阅读全文与全部回复 →