技术

[开源]OxideTerm: Rust+GPUI,让终端飞起来!

大家好,我是 OxideTerm 的作者。https://github.com/AnalyseDeCircuit/oxideterm
7 月底我在这里发过一帖,介绍了将 OxideTerm 从 WebView 迁移到 Rust + GPUI 的过程。我也希望借鉴 WindTerm 等知名 SSH 客户端和终端的一些好用设计,继续打磨这个免费开源、功能丰富( SSH ,Mosh ,Serial ,Telnet ,RDP ,VNC ,BLE 等)的原生 SSH 客户端。
原生版持续迭代了近四个月,兼容性和日常交互一直在完善,目前已经比较稳定了。从当时的 2.0.11 到前几天发布的 2.3.1 ,我们还花了不少精力打磨终端的基本功:吞吐、绘制和历史存储,希望持续追赶 WindTerm 、Ghostty 、Alacritty 等成熟终端的表现。

既然说要让终端飞起来,那就拿实际输出比划比划。
刷日志的时候,让终端速度跟上

跑构建、看大量诊断信息时,数据已经到了本机,如果终端却还在慢慢处理,眼前的内容就会落后;想滚动回看、切换会话,界面线程又忙着解析输出。我们想减少的,就是终端自己带来的这部分等待。
下面是 8 月早期发布构建与现在 2.3.1 的吞吐测试记录对比。每类负载输出 16 MiB,预热一次,测量三次取中位数,具体测试方法在仓库里。

其实这背后没有什么黑魔法,就是反复测试、找瓶颈:把 SSH 终端解析放到后台线程,批量处理文本和网格写入,减少重复扫描与内存复制,绘制时复用没有变化的文字排版。大量输出的时候,少做一点重复工作,就能给界面操作多留一些余地。
日志想多留一点?内存就要省着用!

上次去掉 WebView ,这次则深入到了历史存储。像 xterm.js 的缓冲区,内容和属性逐字符格保存,整行同色也仍然逐格保留属性。我们则把历史文本和样式分开紧凑保存,让相邻的同样式文字共享记录。
在 10 月这轮分阶段存储改造中,保留 20,000 行历史、400 列,另含 40 行屏幕,伪随机 ASCII 满行时,终端与解析器的保留堆从 196.47 MB 降到 15.50 MB ,减少 92.1%。

这是我们自己的终端内核改造前后的结果,完整记录里有具体条件。
落到日常使用,就是多留些日志、多挂几个会话时,少挤占浏览器、IDE 和容器的内存。赶上这轮内存涨价,终端能省一些,肯定是个好事情。
新增功能与改进

我们在这三四个月内也更新了很多别的功能,这里仅仅挑出来一些和大家分享:

  • WindTerm 用户熟悉的本地语义着色:远端输出没带颜色,也能初步识别一些内容,轻松辨别数字、unix 权限等。
  • 类 WindTerm 的 Free Type Mode:用鼠标定位和选择当前命令,支持复制、剪切和拖动文字,改长命令不用一直按方向键。
  • SFTP 侧边栏与拖拽上传:侧边栏可以跟随活动 SSH 主机,也可以固定。把本地文件拖进 SSH 终端,就能上传到它的当前目录。
  • 向外部 AI 开放的 MCP 接口:让 Codex 等常用 AI 客户端,经授权使用连接、终端、文件和主机工具,少一点复制粘贴,权限随时可撤销。
  • 壁纸功能大拓展:图片、GIF 、视频和粒子效果都支持,模糊、透明度和阅读遮罩可以调整,还能开启输入时暂停动效,简约和华丽随你选择。
  • 最多 16 窗格混合工作区:终端、SFTP 、IDE 、设置乃至插件页面都能混排,本机和不同服务器自由组合,拖拽布局不用重连。
  • 原生插件系统:通过应用内市场,按需安装语言高亮、RDP / VNC / Mosh 等扩展,插件可以独立更新。
  • X11 转发、BLE 连接模式、Kerberos 认证方式、审计系统、个人运维知识库(支持 Markdown 编辑和预览)……
比如下面这样,把 SSH 、本地终端、笔记和 SFTP 放进同一个标签页:

写在最后

玉不琢不成器,感谢这几个月以来热心帮助的朋友们。OxideTerm 目前依然是 GPL-3.0 的开源自由软件,免费,没有账号和订阅门槛,也不收集遥测数据。欢迎试试现在的 2.3.1 ,之前用过早期版本的朋友也欢迎回来看看。觉得顺手可以点个 Star ,有问题或建议,欢迎提 Issue 、PR ,希望它能越来越实用。最近也开了个交流群,欢迎来聊使用体验和改进建议。
感谢大家!


⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
本帖共 3 条回复,登录后即可查看

回复

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

本版积分规则

hot.热文换一批
  1. 别眨眼!人类首次"看见"光子!你家灯泡里全是它!
  2. 二十出头就显成熟?揭秘上一代人的"大人模样"背后原因
  3. 明明含有氢和氧,氢可燃氧助燃,为什么水偏偏不能燃烧?
  4. 🎉庆祝应用中心上架15个插件了,抽波优惠券![开奖时间:2026-04-26 20:00]
  5. 女装退货率飙至80%,商家为何挂密码锁发货?
  6. 古人为何50岁就百病缠身?揭秘1972年7月30日“马王堆女尸”出土之谜
  7. 世界上最凶猛的10种鸟,金雕到底有多厉害?猎杀野狼轻而易举?
  8. 中国真挖到“宝”了!海水里藏45亿吨铀,美国70年难题被突破
  9. 太阳和银河系之间,还有一个神秘结构?
  10. 牛马论坛[NIUMABBS]-行为规范准则
  11. 小时候父母不让玩手机的秘密,网友亲测:经历过才懂!
  12. [Day 21] - 10.26 - Tibo 又要重置了
  13. 测试
  14. day 22 - 今天 tibo 又重置
  15. 求一个 Claude Team 车位,想直接进 Team
  16. 1000 美金预算还剩 998,我让 AI 开启了「付费软件斩杀计划」(Day 7 / 7)
  17. “软饭硬吃?”石家庄一名25岁小伙在酒吧上班,被一位45岁的有钱大姐相中。
  18. AI 普及之后,应该把所有 Electron 重写为 native
  19. Ubuntu 等 Linux 发行版一发布,就锁定 PHP 版本号的原因是什么?
  20. 这种小程序葵花码直跳链接是怎么做到的?
  21. 1024 节日快乐
  22. 感谢老板支持,成功拿下【全家福-至尊套餐】
  23. x 互粉贴! x 中文圈抱团
  24. 如何减少人为干预,让 agent 独立工作并提高交付质量
远古树灵63.8%
牛马论坛(niumabbs.com),一个专注于分享日常新鲜事、职场工作点滴、摸鱼乐趣与各类生活感悟的交流平台。

    关注我们

  • 加入Q群
  • 微信客服
  • QQ客服
Copyright © 2026 NIUMABBS 版权所有 All Rights Reserved. |网站地图 劰载中...
关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表