从分享一个小工具到首个 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 而苦恼的人。
- 最后说明一下,以上其实省略了大量的优化过程,那是用很多很多的周末堆起来的……
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
.NET MAUI 是合适的 Xamarin 继任者吗?
众所周知,跨平台移动应用开发框架 Xamarin 将于 2024 年 5 月 1 日结束其生命周期。这一重要里程碑促使许多开发人员和组织评估从 Xamarin 升级到其继任者 .NET MAUI 的可能性,或者借此机会探索如 Flutter 或 React Native 之类的替代框架。 但每个公司都有不同的需求,需要不同的解决方案。因此,SDTimes 详细对比研究了一下各备选项的优缺点,为有需要的用户提供参考。 什么是 .NET MAUI 以及它与 Xamarin 有何关系? 随着 Xamarin 的生命周期结束,Microsoft 推出了 .NET MAUI 作为替代品。MAUI 是 Xamarin.Forms 的演变,专注于通过质量、性能、设计和平台可用性来增强开发人员体验。它将 Xamarin.Android 和 Xamarin.iOS 吸收到 .NET 框架中,符合 Microsoft 在任何平台上运行 .NET 的愿景。.NET 6 标志着这一转变的开始,它将接替 Xamarin 构建 Android、iOS 和跨平台应用程序。 .NET MAUI 的引入为开发人员和组织...
- 下一篇
Zadig v2.1.0 版本发布:工作流与环境全面协同升级!
经过长时间的精心打磨和用户反馈的积极参与,我们宣布 Zadig 迎来了全新的里程碑 — 版本 2.1.0 的隆重发布!在这个版本中,我们聚焦于提升工作流与环境管理的整体能力,以满足不断增长的用户期望和多元化的使用场景。通过跨环境配置比对和同步,实现了一致性传递,使得业务和配置变更更加自动化和高效。全新的自测模式和 Istio 全链路灰度发布机制提升了发布流程的智能和安全性。多环境共享命名空间的便捷操作为企业提供了更灵活的业务管理方式。引入多平台、跨厂商、多协议的支持,使 Zadig 在全球交付中更具竞争力。自定义工作流在 Windows 平台上执行批处理脚本,满足更多异构场景的需求。 跨环境配置比对和同步,助力实现一致性传递 自定义工作流 Apollo、Nacos 配置变更支持跨环境比对和同步,以实现业务和配置的自动化、高效变更,以及确保配置在开发、测试和生产发布中的一致性传递。从而为生产发布过程提供了稳定、安全和可靠的保障。 同步 Apollo 配置 Apollo 配置变更前后比对 同步 Nacos 配置 Nacos 配置变更前后比对 自测模式升级,开发自测联调无烦恼 自测模式能...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7