NyaTerm:这样的终端用起来不烧心
来分享一下自己一直在开发和维护的开源项目 NyaTerm。https://github.com/nyakang/nyaterm
https://cdn.nodeimage.com/i/6FvepzBfrwS7w9nmKklp2VElTgCY0G5I.png
NyaTerm 是一个跨平台远程终端工具,最初使用 Tauri + WebView 构建。经过一段时间的开发和重构,现在已经正式切换到 Rust + GPUI 原生桌面架构,并发布了 2.0.0 正式版。
我自己一直是 WindTerm 的忠实用户,它的很多功能和设计都非常符合我的使用习惯。
不过,由于 WindTerm 已经有一年左右没有更新,一些长期存在的小问题、偶发闪退等情况始终没有得到解决,日常使用起来多少有些困扰。
所以,在今年 5 月份我开始照着 WindTerm 开始复刻功能,得益于 AI 第一版( WebView )很快就搓出来虽然功能逐渐丰富,但性能问题也一直困扰着我。
终端与普通桌面应用不同,尤其是大量文本输出、持续刷新、滚动和多终端并行运行的时候,对渲染效率和响应速度的要求比较高。
随着功能不断增加,原有 WebView 方案在这些场景下逐渐暴露出一些性能瓶颈。虽然尝试过不少优化,但始终没能达到自己期望的效果。
既然如此,那就换框架!
轻装上阵,全新出发!
NyaTerm v2 选择了 Rust + GPUI。
这一次不再使用 WebView ,而是将整个桌面应用重构为原生 Rust 实现,包括界面、终端渲染、连接管理等。
https://cdn.nodeimage.com/i/ToYhdkxhhqn5qmuE7XpUcoH8UAKasZux.png
说起来简单,实际动手才发现,这基本相当于重新开发了一遍 NyaTerm 。
原本 WebView 中很多习以为常的功能,都需要在 GPUI 中重新实现。终端绘制、窗口管理、输入法、剪贴板、跨平台兼容性等问题,也花费了不少时间折腾。
好在经过多个预览版本的迭代,NyaTerm v2.0.0 终于正式发布了!
⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉 从WebView切到GPUI这个决定挺对的,终端这种高频刷新的场景,WebView的渲染管线确实容易成瓶颈,尤其多开tab跑日志的时候。好奇你现在滚动回溯和大文件cat这类场景表现怎么样?
[这只是一个小尾巴] 支持,体验很棒! 支持,的确不烧心。 支持 tui 吗? 不错 请问 能不能直接 命令行传参 启动并且支持多窗口或者多个 tab ,比如 传 --ssh/sftp ip:port -pass xxx 打卡初衷想找一款可以在 mac 上适配各种堡垒机的客户端。。。 大佬,可以开发个,从 windterm 迁移主机记录的工具吗 咨询个问题大佬,我现在也在做一款原生应用用 C++做的 你觉得 C++和 Rust 有什么开发上的体验区别吗 UI 必须自己手绘妈
页:
[1]