先上项目 Git hub 地址:
前几天,我们给大家分享了两款终端 GUI 程序: 和 。有些人问到,它们使用的是哪个终端 GUI 库。虽然文章中我有提到,这里再一次专门撰文分享。
gocui 是一个 Go 语言用来开发控制台应用的 UI 工具包。主要特性:
- 最小化 API.
- 视图 (窗口) 实现接口 io.ReadWriter.
- 支持重叠视图
- 可在运行时修改 GUI
- 全局或者是视图层级的快捷键绑定
- 支持鼠标操作
- 彩色文本输出
- 可定制化的编辑模式
- 易于构建可重用的 UI 部件,复杂的布局等
示例代码如下 :
作者给出了几个 Demo 截图:
除了该作者自己实现的 lazydocker 和 lazygit 使用了该库外,还有如下的一些项目使用了该库。
- komanda-cli: 为开发者准备的 IRC 客户端
- vuls: 针对 Linux/FreeBSD 的 Agentless 漏洞扫码程序
- wuzz: 用于 HTTP 请求的 cli 工具.
- httplab: 交互式 Web Server
- domainr: 基于关键词的检查域名可用性的工具
- gotime: 任务和项目的时间追踪器
- claws: 测试 websockets 的交互式命令行工具
- terminews: 终端 RSS 阅读器
- diagram: 转换 asccii 图表为手绘图表的工具
- pody: 在 Kubernetes 集群中管理 Pods 的 CLI app
- kubexp: Kubernetes 客户端.
- kcli: 检查 kafka 中 topics/partitions/messages 的工具
- fac: git 合并冲突解析器
- JSON ui: 为您的终端提供交互式 JSON 资源管理器
- cointop: 用于跟踪加密货币的交互式终端 UI 应用程序
喜欢终端的朋友,可以把玩把玩~