从分享一个小工具到首个 GitHub 1K Star 小成就

2021 年 11 月,Python 版 trzsz 工具

  • 背景:在 iTerm2 中使用 rz sz 又卡死了,才想起当前是 tmux 环境,然后 kill 并重登录,真的很浪费时间。

  • 原因:rz sz 在传输时会有一些特殊字符,tmux 的存在导致传不过去。

  • 解法:如果先将文件 Base64 编码再传输,就可以顺利穿过 tmux 了。

  • 结果:写了个小工具 trzsz ( trz / tsz ) 自用,接着在 GitHub 上开源分享出来:https://github.com/trzsz/trzsz

2022 年 2 月,TypeScript 版 trzsz.js 库

  • 背景:trzsz 开始只支持 iTerm2,网友提出想要支持其他终端,例如 electerm 和 tabby 等。

  • 结果:用 TypeScript 写了个 trzsz.js 的库,顺便支持在浏览器 webshell 中使用。这个库主要是面向终端或 webshell 开发者的,用来接入并支持 trzsz ( trz / tsz ):https://github.com/trzsz/trzsz.js

2022 年 3 月,Go 版 trzsz 工具

  • 背景1: trzsz 还有很多其他终端未支持,有网友特别想支持 Linux 的原生终端,但是提 PR 过去大概率会被拒绝。

  • 背景2: 有网友在 V2 分享了 [termtunnel](https://github.com/beordle/termtunnel),让我突然想到,可以写个工具作为 ssh 进程的父进程,就可以完全控制 ssh 的输入和输出了,从而实现对 trzsz ( trz / tsz ) 的支持。

  • 结果:为了支持所有平台,为了便于分发(独立的程序,无任何依赖),选择了用 Go 来开发,于是便有了 Go 版的 trzsz ( trz / tsz ):https://github.com/trzsz/trzsz-go

2023 年 5 月,实现 ssh 客户端

  • 背景1: Windows 中的 ConPTY 和 ConHost 存在性能问题,导致 Go 版 trzsz 只有几十 K 的速度。

  • 背景2: 有网友来咨询 trzsz.js 的问题,他用的是 Go [wails](https://github.com/wailsapp/wails),才知道 Go 有强大的 ssh 库,可以把 Go 版 trzsz 改造成一个库让他接入。

  • 背景3: 在 ssh 登录不常用的服务器时,总是不能准确地记住别名是什么,然后就是 cat ~/.ssh/config,很不丝滑。

  • 结果:把 Go 版 trzsz 改造成一个库,自己写一个 ssh 客户端,完全兼容原生 ssh 的,然后定制自己想要的功能,顺便解决 trzsz 在 Windows 慢的问题,叫 trzsz-ssh ( tssh ):https://github.com/trzsz/trzsz-ssh

2024 年 1 月,tssh 率先突破 1k star

  • trzsz-ssh ( tssh ) 是以上几个最后开源的,却是最先达到 1k star 的,为期不到一年。

  • trzsz-ssh ( tssh ) 也支持原生 zmodem ( rz / sz ),只要有本地 shell 的终端就能使用。凡是没有原生支持 rz / sz 的终端,配合 tssh 使用大概率会有惊喜。

  • 截止到现在,star 和 fork 数量的汇总 https://github.com/trzsz

- Python 版 958 star 48 fork

- TypeScript 版 177 star 14 fork

- Go 版 752 star 46 fork

- tssh 1000 star 62 fork

总结与感想

  • 在日常工作中会遇到很多的小痛点,当重复遇到的次数多了,那怕只是几秒的浪费,我就会去思考有没有优化的空间,会去网上看看别人是如何做的,实在找不到就只好自己动手丰衣足食了。

  • 开始并没有想着要投身开源,因为找不到 tmux 中使用 rz sz 的解决方案,而自己写了个小工具,只是想简单分享给同样为 tmux 不支持 rz sz 而苦恼的人。

- 最后说明一下,以上其实省略了大量的优化过程,那是用很多很多的周末堆起来的……

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/275788

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。