查看: 23|回复: 23

[开源]或许是 WindTerm 精神的续作: SSH 客户端 OxideTerm 焕新为原生软件, Windows 空载内存仅 25 MB

[复制链接]

1

主题

7

回帖

17

积分

新手上路

积分
17
发表于 前天 20:38 | 显示全部楼层 |阅读模式
大家好,我是 OxideTerm 的作者。

WindTerm 是很多人的心头好,极低的内存占用、原生级的流畅度,很少有替代品能完全复现。但它已经停更一年多了,积压的 Issue 长期也似乎无人修复,当然我也很希望作者能够再度更新。现在不少朋友一直在找下一个归宿,但市面上大多是 Electron/Tauri 的 WebView 应用,空载几百兆起步,很难找回那种轻快感。

我自己一直很尊重 WindTerm 坚持原生、不妥协的产品理念,也在做一款开源 SSH 工具 OxideTerm。我的 1.x 是用 Tauri 写的,很快就撞到了 WebView 的天花板:

空载吃内存:即使没打开任何会话,浏览器引擎、DOM 和 JS 运行时的固定开销就占着几百兆。

前后端跨语言通信效率受限:终端内容要跨越 Rust 和前端 JS 之间的数据链路,大日志刷屏时压力可能不小。

我发现局部优化解决不了架构问题。所以我做了一个决定:抛弃 WebView ,用纯 Rust 和 GPUI ( Zed 编辑器用的原生 GPU 渲染框架)完全重写了它。通过移除 WebView 、DOM 和 JavaScript 运行时,更换数据链路 ,我们省去了跨语言的序列化和 IPC 。macOS 空载从 320MB 降到了 80MB 出头,Windows 则从约 180MB 降到了 25MB 。 (自己的机器实测)



最近刚好过了 1000 Star 门槛,历经大量 issue 反馈,算是有了一定完成度,所以发出来再和大家分享。

OxideTerm 和 WindTerm 有什么共同点?

原生高性能(无 WebView / 零 DOM 开销):我们都彻底避开了 WebView/Electron ,界面由 GPU 硬件直接渲染,不经过任何浏览器引擎层。这带来了实打实的性能与内存优势:目前 OxideTerm 在 Windows 下的空载内存仅约 25 MB( macOS 约 80MB )。

免费 & 开源:项目完全开源 (GPL-3.0),目前没有任何订阅或专业版限制。

OxideTerm 有什么不同?

如果说 WindTerm 是上一代经典的代表,OxideTerm 则试图在原生性能的基础上,加入现代化的能力。

另外我们的 UI 并没有完全复刻 WindTerm——这是有意为之,目的是提供更现代的信息架构和交互体验,而不是做一个外观上的克隆。

平滑迁移:支持从其他 SSH 客户端导入已有连接配置,不用从头手动录入。

原生 RDP / VNC 支持:除了基础的 SSH/SFTP ,内置了基于 Rust IronRDP 的原生桌面连接的部分能力。

Host Tools 工作区:我们在右侧面板集成了 Docker 、进程、tmux 、systemd 服务等图形化管理工具,通过复用当前的 SSH 连接通道实时抓取。目标是消除传统 SSH “开一堆终端敲命令”的割裂感,打造一个集成驾驶舱。

现代化的 AI 助手 OxideSens:内置 AI ,支持带终端上下文的对话。可以帮你分析报错、生成修复命令,你可以选择自己的大模型提供商( BYOK )。

终端核心换代:底层换成了 alacritty_terminal,并添加支持 Sixel/Kitty 图像协议,可以在终端里直接预览图片。



云同步:支持 WebDAV 、S3 兼容存储、OneDrive 、GitHub Gist 等后端同步配置。所有数据上传前在本地加密,没有任何中央服务器。



同款 Free Type Mode 自由输入模式:可以直接用鼠标点击命令行的任何位置移动光标,选中文本直接退格删除(不用在远程机器装任何脚本,纯端侧实现)。

高速 SFTP 传输:我们对 russh-sftp 做了自维护的改造优化,上传下载速度相比社区版有了显著提升。

独立 CLI 工具:不启动桌面应用也能完成环境诊断、连接管理、云同步和便携包导入导出,方便接入脚本与 CI 。



代码与审计

我知道对于 SSH 客户端,大家最关心的是安全。

连接配置和敏感凭据在本地加密存储,加密密钥由操作系统密钥链管理

内存中的敏感数据使用后即时擦除( zeroize ),避免密钥残留

无遥测上报、无后台数据收集:应用不会主动向外发送任何使用数据,你不告诉我们,我们就什么都不知道

项目目前分为了 80 多个独立 crate ,代码完全开源。

写在最后

项目完全用爱发电。当时写这个项目的初衷很简单,受够了市面上的订阅制工具,就想给自己搓个顺手的。不知不觉坚持了 8 个月,又因为尝试剥离 WebView 完全重写了底层,从 Tauri 换成了 GPUI ,熬到了 2.0 。接下来不出意外的话还会继续维护下去。

如果你也是一个原生体验的追求者,不太喜欢 Electron 和 Tauri 架构下 Webview 的内存占用,欢迎来试试看。觉得好用的话点个 Star ,如果有任何建议或遇到了使用问题,欢迎在帖子里回复,或者直接去 GitHub 提 issue ,我看到都会尽量回复——项目比起 WindTerm 这样历经大家打磨的璞玉,毕竟还算年轻。

GitHub: https://github.com/AnalyseDeCircuit/oxideterm

官网:https://oxideterm.app
回复

使用道具 举报

0

主题

2

回帖

4

积分

新手上路

积分
4
发表于 前天 20:44 | 显示全部楼层
哇噻帮顶! nyaterm 也不错
回复

使用道具 举报

0

主题

2

回帖

4

积分

新手上路

积分
4
发表于 前天 21:02 | 显示全部楼层
体验了一下,感觉很棒,star 了。这么大的项目,一个人能维护的过来吗
回复

使用道具 举报

1

主题

7

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 前天 22:11 | 显示全部楼层
@Mora1n 谢谢! NyaTerm 也是很好的项目。我稍稍看了一眼,他目前是基于 Tauri 的,UX 更贴近 WindTerm 老用户的操作习惯,当然也有可能有很多优点我没有仔细挖掘;我们选择的方向是彻底去掉 WebView ,用 GPUI 原生渲染,也都算是各自继承了 WindTerm 精神的一部分吧,也希望他能做的越来越好。
回复

使用道具 举报

0

主题

4

回帖

8

积分

新手上路

积分
8
发表于 前天 22:49 | 显示全部楼层
以前觉得没有好用的,现在终端怎么出来这么多!我的要求其实就是底层高效,前端跨平台原生,简单同步密码和 ssh key ,长期保持更新。先围观下这个…
回复

使用道具 举报

1

主题

5

回帖

13

积分

新手上路

积分
13
发表于 前天 23:12 | 显示全部楼层
别的先不说,抛弃 WebView/Electron 的软件我就要支持一下
回复

使用道具 举报

12

主题

44

回帖

124

积分

注册会员

积分
124
发表于 昨天 00:02 | 显示全部楼层
@soleilune

macOS 版本能添加一个 brew 的安装方式么~ 😁
回复

使用道具 举报

1

主题

7

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 昨天 00:04 | 显示全部楼层
@SayHelloHi 有的,

'brew install --cask AnalyseDeCircuit/tap/oxideterm'
回复

使用道具 举报

0

主题

2

回帖

4

积分

新手上路

积分
4
发表于 昨天 01:20 | 显示全部楼层
RDP 可以做保存配置的功能吗(和 ssh 一样保存用户名 ip 端口等)
回复

使用道具 举报

1

主题

7

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 昨天 01:22 | 显示全部楼层
@Salute 还好吧,有 AI 辅助的话问题基本不大
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部