
App-Store-Connect-CLI
命令行发布 App Store 应用。这是一款用 Go 编写的 App Store Connect 命令行工具,可在终端、IDE 或 CI/CD 流水线中自动完成应用发布,支持构建上传、TestFlight、提交审核、签名等操作,覆盖 iOS、macOS、tvOS 和 visionOS 全平台。

命令行发布 App Store 应用。这是一款用 Go 编写的 App Store Connect 命令行工具,可在终端、IDE 或 CI/CD 流水线中自动完成应用发布,支持构建上传、TestFlight、提交审核、签名等操作,覆盖 iOS、macOS、tvOS 和 visionOS 全平台。

把整个网站打包离线阅读。该项目是用 Go 编写的网站离线保存工具,可将任意网站保存为可离线浏览的本地文件夹。保存后的网页看起来和线上一样,但不会发起任何网络请求,还支持打包成单个 .zim 文件或可直接运行的可执行文件。

让 PDF 看起来像扫描件。该项目可将 PDF 文件处理成类似扫描件的效果,支持命令行和浏览器本地运行,相同文件默认会得到完全一致的结果。

开源的企业级分布式监控平台。该项目是企业级开源分布式监控系统,可实时监控网络设备、服务器、数据库、虚拟机、容器、云服务和应用的运行状态。它支持自动发现、Agent/Agent-less 采集和故障检测等功能,并可通过 Slack、Jira、Teams、邮件或短信发送告警。Zabbix 在中国也有非常活跃的社区。
开箱即用的中国古诗词 API 服务。该项目是用 Go 语言编写的中国古诗词 API 服务,收录了唐诗、宋词、元曲等近 40 万首作品。它提供 REST API 和 GraphQL 接口,支持全文搜索、IP 限流、按朝代/作者/诗型随机取诗和 Docker 一键部署。

终端里的斗地主游戏。这是一款用 Go 编写的斗地主游戏,主打随机发牌、无控牌算法。支持联网对战、房间匹配、断线重连、记牌器、音乐开关等功能,还集成了快手开源的 DouZero 斗地主 AI,可作为机器人补位或对战。

专为团队设计的命令行密码管理器。这是一款用于存储管理和同步密码、密钥与证书的命令行工具,可作为 UNIX 密码工具 pass 的替代品。默认用 GPG 加密和 Git 管理凭据,可通过 Git 仓库在多设备、多人团队之间同步。

开源的零代码身份认证中间件。这是一个 Go 语言开发的极简认证中间件,可通过 Docker 快速部署。它能为任何 Web 应用或服务一键添加登录界面或 OAuth 登录(Google、GitHub 等),无需修改现有代码,可无缝集成到 Traefik、Caddy、Nginx 等主流反向代理,极大地简化了登录实现流程。

Winamp 风格的终端音乐播放器。这是一款受 Winamp 启发的复古风格终端音乐播放器,支持播放本地文件、网络流媒体、播客和各大主流平台的内容。它内置频谱可视化器、参数均衡器和播放列表管理,还可一键浏览多个在线电台。

像 Git 一样管理数据的 SQL 数据库。这是一款兼容 MySQL 协议的 SQL 数据库,将 Git 的版本控制能力引入数据表管理,支持 branch、merge、push、pull、clone 等操作,可通过任意 MySQL 客户端直接连接使用。

一条命令生成终端截图。这是一款用 Go 语言开发的命令行工具,能够将终端的文本内容转换为带有语法高亮和窗口边框的截图。使用时只需在命令前加上 termshot 即可,支持自定义字体、显示执行命令、即时预览、去除窗口装饰和阴影等功能。

一条命令揭秘进程身世。这是一个用 Go 编写的命令行诊断工具,用于快速定位和分析正在运行的进程。它通过端口、服务名或 PID 映射进程信息,生成通俗易懂的进程因果链,直观展示进程的来源、启动方式和持续运行的原因,帮助运维与开发者排查和定位异常进程。

直接在命令行浏览 Markdown 的工具。该项目是基于 Go 开发的命令行 Markdown 阅读器,提供 TUI 和 CLI 两种使用方式,可以自动扫描当前目录读取本地文件和远程 URL,支持自定义主题、语法高亮、分页等功能。

轻量级、零依赖的 K8s 发行版。该项目是将集群所需的全部组件打包为单个可执行文件的 K8s 发行版,除内核外无宿主机依赖,最低 1 核 1GB 即可运行,支持云端、边缘计算和 IoT 等场景。

开源的时间追踪与管理工具。这是一款采用 Go+React 开发的自托管时间追踪工具,支持导入 Toggl 的数据,并可与 toggl-cli 配合使用,让 AI 帮助你记录、管理和复盘时间开销。

更好用的域名分析工具。这是一款基于 Go 开发的交互式终端域名分析工具,集成了 WHOIS/RDAP 查询、DNS 解析、邮件、SSL/TLS、SEO 分析和技术栈识别等功能。

把本地 AI 编程助手接入聊天应用。该项目能够将本地运行的 AI Agent 接到你常用的即时通讯平台,比如飞书、钉钉、Slack、Telegram、Discord 等主流平台。同时支持 Claude Code、Cursor、Gemini CLI 等 7 种 AI 编程助手,实现通过聊天软件远程控制本地 AI Agent,执行各种开发相关任务。

远程使用 GPU 加速 FFmpeg 转码。该项目能够像本地调用 FFmpeg 命令一样进行视频转码,但实际是在远程 GPU 服务器上完成的编解码,整个过程无需复杂配置和跨设备文件共享系统。

连接 AI 与 Chrome 浏览器的桥梁。这是一款基于 Go 语言开发的 HTTP 服务器,能够让 AI 代理通过 API 接口或命令行的方式控制 Chrome 浏览器,支持 MCP、DOM 交互、屏幕截图和文本提取等功能,并可有效降低 Token 消耗。

一键同步多平台 AI 技能的工具。这是一款跨工具、跨平台的 skill 同步工具,可通过一条简单的命令将技能、提示词和配置文件同步到多个 AI 工具中,支持 Claude Code、OpenClaw、Codex、OpenCode 等工具。

终端交互式 SSH 管理工具。这是一款 Go 写的终端交互式 SSH 管理工具,基于 OpenSSH 执行连接安全可靠。它提供直观易用的终端界面,支持模糊搜索、排序、Ping 检查和一键连接等功能。

实时监控 SQL 流量的工具。这是一款基于 Go 开发的实时 SQL 流量监控工具,无需修改代码即可使用。它作为代理部署在应用与数据库之间,通过解析数据库 wire 协议捕获所有查询,提供 TUI 和 Web 两种使用方式,支持 PostgreSQL、MySQL 和 TiDB 数据库。

终端里的高速下载工具。这是一款采用 Go 语言开发的终端下载工具,可将下载文件自动切分为多个数据块并行下载,支持从多个镜像源下载、自动故障转移、顺序下载模式等功能。
告别 Makefile 复杂语法的构建工具。这是一款基于 Go 语言开发的现代化构建工具,可作为 GNU Make 的替代品。它采用更简单的 YAML 语法,支持跨平台、依赖管理、并行执行和条件触发等功能,适用于项目构建、开发环境管理和 CI/CD 集成。
让 SQLite 秒变分布式数据库。这是一款基于 Go 语言开发的轻量级分布式 SQLite 系统,通过无主架构将 SQLite 转化为高可用的分布式数据库。它采用 Gossip 协议进行集群管理和数据同步,支持最终一致性和多点写入,并通过 CDC 实现行级复制,兼容 MySQL 协议,现有的 MySQL 客户端和应用可无缝迁移至 SQLite 集群。

新一代 AI 模型聚合管理与分发系统。该项目是基于 One API 二次开发的 AI 模型接口管理与分发平台。它将 OpenAl、Claude、Gemini、DeepSeek 等多种主流大模型与 AI 服务封装为统一接口,并兼容 OpenAI、Claude、Gemini 等常见接口格式。同时提供数据看板、智能路由分发、令牌分组、模型访问限制和在线充值等功能,适合用于企业或个人搭建 LLM 统一调用平台。

轻量级 Nginx 日志可视化平台。该项目是用 Go、Vue3 和 PostgreSQL 构建的轻量级 Nginx 日志分析和可视化平台,支持 PV/UV 统计、IP 归属地分析、客户端设备解析等功能,适合个人站长和小型团队使用。

更友好的网络连接查看器。该项目是用 Go 语言开发的网络连接监控命令行工具,可作为 ss 和 netstat 的替代品。它开箱即用、界面简洁直观,支持实时刷新、过滤、排序、导出和搜索 TCP/UDP 连接等功能。
大文件断点续传的服务端实现。该项目是 tus 协议(基于 HTTP 的文件断点续传协议)官方开源的 Go 语言实现,专为解决大文件上传易中断、需从头重传的问题而设计,支持本地磁盘、AWS S3、Google Cloud Storage 等多种存储,可作为独立服务或 Go 库使用。

Git 仓库一键转静态网站。这是一款 Go 语言开发的工具,可轻松将 Git 仓库转换为静态网站。它通过解析仓库的文件结构、提交历史和代码内容,提供类似 GitHub 的浏览体验,适用于展示个人开源项目代码。

开箱即用的数据库迁移工具。这是一个 Go 语言开发的数据库迁移工具,提供 CLI 和第三方库两种使用方式,可通过 SQL 文件实现常规迁移,也可编写 Go 代码处理复杂的迁移逻辑,兼容 Postgres、MySQL、ClickHouse 等数据库。

Go 语言的高性能游戏引擎。该项目是采用 Go 语言和 Vulkan 图形 API 构建的 2D/3D 游戏引擎,让开发者可以直接用 Go 开发游戏。它内置可视化编辑器、Soloud 音频库和 Bullet3 物理引擎,在降低游戏开发门槛的同时,实现了极高的渲染性能和低内存占用。

像 rsync 一样同步 Docker 镜像。该项目可通过简单的 docker pussh 命令,将本地 Docker 镜像直接推送到远程服务器,无需依赖外部容器镜像仓库。仅传输缺失的镜像层,比 docker save/load 更快。

完全开源可自托管的私有云盘。该项目是基于 Go+Vue.js 构建的在线文件管理工具,功能比原版 FileBrowser 更丰富,支持多文件源(本地或云)、目录级访问控制、设置共享过期时间、文件搜索和缩略图等功能。

开源的轻量级 K8s 管理面板。这是一款轻量级、现代化的 Kubernetes 可视化管理平台,适用于管理和监控 K8s 集群。它拥有直观易用的界面,支持查看 Pod 日志、执行容器命令、编辑 YAML 配置、管理用户权限等功能。

终端里运行任意 GUI 应用。该项目突破了传统终端只能运行命令行程序的限制,让用户能够在终端(Terminal)中运行任意 GUI 应用程序,将图形界面的操作体验带入终端环境。它通过自研的 Wayland 合成器,将原本输出到显示器的 GUI 窗口实时渲染为终端可显示的字符或图片,实现了在终端内运行图形应用的能力,兼容 iTerm2、Alacritty、Kitty 等主流终端模拟器。

终端内实现桌面级窗口管理。这是一个 Go 编写的终端多窗口管理工具,支持浮动窗口、鼠标拖拽、自动平铺、多工作区切换等功能。窗口可以自由重叠和移动,像桌面操作系统一样,适合觉得 tmux 快捷键难记的开发者。

清爽的轻量级内容分享平台。这是一款开源、自托管的轻量级内容发布平台,专注于思想流动和快速分享。它拥有简洁直观的操作界面,支持发布和分享想法、文字、图片和链接。同时,支持类似 ActivityPub 的联邦协议,实现不同实例(站点)之间的互联互通,让内容不再局限于单一孤立的网站。

一键获取 GitHub Release 安装包。这是一个用 Go 编写的命令行工具,可自动从 GitHub 检索、下载并安装开源项目已发布的二进制文件(Releases),无需手动查找和下载安装包。

面向 K8s 的异构 AI 计算虚拟化中间件。这是一款专为异构计算环境打造的 GPU 共享与调度管理平台,致力于最大化提升 GPU 利用率。它提供灵活、可靠、按需和弹性的多元异构 GPU 虚拟化、调度与管理能力,支持包括 NVIDIA、Ascend 等主流厂商的多种硬件及虚拟化技术,适用于深度学习、数据处理、科学计算等高性能计算场景。
自动检测代码屎山等级的工具。这是一款用于评估代码“屎山等级”的工具,支持 Python、Java、Go 等多种编程语言。它能够自动扫描指定目录,深入分析项目代码的混乱程度,并用犀利又搞笑的方式告诉你结果。

Git 目录级别的贡献分析工具。这是一个用 Go 和 Ruby 语言开发的命令行工具,用于在 Git 仓库中按目录快速统计并可视化每位贡献者的提交次数、代码修改行数和活跃时间。

终端用户界面日志分析工具。这是一个用 Go 语言开发的终端(TUI)日志分析工具,灵感来自 k9s。它支持在终端界面下实时分析、过滤和可视化日志,结合 AI 提升日志洞察能力,适用于日常开发、运维和故障排查等场景。

开箱即用的跨设备推送通知服务。该项目是基于 HTTP 协议的开源推送通知服务,支持通过 PUT/POST 请求跨设备推送消息。它采用 Go 语言开发,用户无需注册即可通过命令行工具或简单的 API 轻松发送通知,支持自定义通知内容和自托管部署,并提供配套的 Android 和 iOS 客户端。

轻松自托管你的个人财务数据。这是一款免费、轻量、可自托管的个人记账应用,采用 Go+Vue 构建。它界面简洁易用、功能丰富,支持二级账户(个人/家庭)、收支分类、交易图片附件、定期收支自动记账等功能。借助 PWA 技术,可一键添加到手机主屏幕,体验媲美原生 App。

整合你关心的信息源仪表盘工具。这是一个可自托管的仪表盘,单个文件、无需安装、开箱即用。它能够将你关注或订阅的所有信息,统一整合并以美观的界面展示,支持 RSS 订阅、帖子、新闻、天气、书签、日历、股票、视频更新、网站监控等多种信息源,并且针对移动端做了优化。

一键快速部署 K8s 集群。这是一款通过 SSH 快速部署 K3s(轻量级 Kubernetes)集群的工具。它集成了 SSH 自动化部署和 K3s,支持一条命令完成集群的搭建与管理,适用于云服务器、树莓派、虚拟机等多种环境。

云原生时代的反向代理利器。这是一款面向云原生环境的现代化 HTTP 反向代理与负载均衡器,可轻松部署微服务。它能够自动检测后端服务变更,动态更新路由规则,实现高效且可扩展的流量管理,支持 Docker、Kubernetes、Swarm、ECS、Consul、Etcd 等主流技术栈。

个人电车充电智能管理平台。这是一个开源的 EV(电动汽车)充电器控制平台,为电车车主提供灵活且易于安装的充电解决方案。它提供了可视化且适配移动端的 Web 平台,用户可以通过该平台远程启动、停止和监控车辆的充电状态,支持多种充电设备和车辆型号。智能充电功能还可以根据电价、太阳储能和日程安排,智能安排充电时间,从而节约电费。

企业级的多渠道大模型 API 管理平台。这是一款用 Go 语言开发的企业级大模型接口管理平台,支持 OpenAI、Gemini、Claude 等多种服务。它开箱即用、内置 Web 管理界面、保留原生 API 格式,支持密钥自动轮询、故障切换和水平扩展,专为高并发生产环境而设计。

Google 开源的数据库 MCP 工具。该项目是 Google 开源的 MCP 服务器,专为 LLM 应用与各类数据库之间提供统一、安全、可扩展的数据访问层。它集成了连接池、身份验证、监控等功能,让 AI agent 快速拥有查询数据库的能力,支持 PostgreSQL、MySQL 等多种数据库。

快速恢复专注的命令行工具。这是一个 Go 语言开发的命令行工具,旨在帮助开发者在心烦意乱或注意力不集中时,通过简单的呼吸练习,快速找回专注和内心的平静。

跨平台的批量重命名工具。这是一款命令行批量重命名工具,完全用 Go 语言编写,支持正则表达式、自动解决冲突、撤销等功能。

自带 Web 界面的实时日志查看工具。这是一款轻量级的实时日志查看工具,无需安装、开箱即用。它内置 Web 界面,可通过浏览器像 tail -f 一样实时查看与过滤日志,支持多种输入模式和自定义解析器。来自 [@刘睿华](https://hellogithub.com/user/TJ65FfbQU09PLHM) 的分享```# Use with any shell command$ tail -f file.log | logdy WebUI started, visit http://localhost:8080# Read log files$ logdy follow app-out.log --full-read WebUI started, visit http://localhost:8080```

支持多种存储的文件列表程序。这是一个基于 Gin 和 SolidJS 的文件列表程序,支持本地存储、阿里云盘、OneDrive、Google Drive 等多种存储方式。它完全开源(fork 自 AList),由社区共同维护。

一键查找可用域名的工具。这是一款快速查询可用域名的命令行工具。它能够根据关键词、前缀、后缀和多种顶级域名,智能生成域名组合,并快速检测其可用性。

一站式 Go 语言流媒体服务器开发框架。这是一款完全用 Go 语言编写的高性能、低延迟、模块化且易扩展的流媒体服务器框架。它采用模块化设计,可按需加载模块,支持录制与回放、分布式部署、Prometheus 监控,以及截图、转码、SEI 数据处理等媒体处理功能。

Go 语言实现的通知推送平台。这是一个简单、自托管、实时的消息推送服务,支持通过 REST API 发送消息,WebSocket 实时接收消息,并自带直观易用的 Web 界面,适用于消息推送、监控告警、个人通知等场景。

用 Go 实现的字符串命令行工具。这是一款用于对字符串进行各种转换操作的命令行工具,支持多种编码、解码、哈希和格式化功能,适用于在终端环境下快速处理文本数据。来自 [@Abhimanyu Sharm](https://hellogithub.com/user/Z9fW3G0vSeNRC6D) 的分享```// With input prompt sttr// Direct input sttr md5 "Hello World"// File input sttr md5 file.text sttr base64-encode image.jpg// Reading from different processor like cat, curl, printf etc..echo "Hello World" | sttr md5 cat file.txt | sttr md5// Writing output to a file sttr yaml-json file.yaml > file-output.json```

Go 语言终端用户界面库。该项目是基于 Go 语言开发的终端用户界面(TUI)库,帮助开发者快速构建交互式终端应用。它提供了丰富的组件和灵活的布局系统,包括选择框、按钮、表格、树、表单、彩色文本、多行文本区域等。来自 [@永_恒](https://hellogithub.com/user/a6lR1ODoCVgbuJk) 的分享```go package main import ("github.com/rivo/tview")func main() {box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!")if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil {panic(err)}}```

保护你的网站免受 AI 爬虫攻击。这是一个用于保护网站免受 AI 爬虫和恶意抓取的工具。它通过 SHA256 工作量证明(Proof-of-Work, PoW)挑战来验证每个连接的合法性,从而阻止恶意爬虫和大规模抓取行为。

在线播放视频资源的 Web 应用。该项目是用 Go 语言开发的在线视频流媒体应用,让用户能够直接在线播放视频资源。它支持通过磁力链接或 .torrent 文件流式传输高清视频,以及实时字幕转换和 Docker 部署。

安全执行 Linux 命令的工具。这是一个轻量级、安全的 Linux 沙箱工具,基于 Linux 内核自带的 Landlock 模块实现。它为用户提供无需 root 权限和容器,即可运行任何命令的安全方式,并支持对文件读写和网络访问权限的灵活控制。
零侵入 SQLite 数据库灾备工具。该项目是专为 SQLite 数据库设计的实时增量同步和备份工具。它作为后台进程运行,通过监控数据库变更,自动将数据同步至本地文件或云端存储。只需简单部署,即可为你的 SQLite 项目带来企业级的数据安全保障。

Go 语言的 GraphQL 服务器生成库。该项目是用于快速构建 GraphQL 服务的 Go 语言库,可解析 GraphQL 模式文件(.graphql)并生成对应的 Go 代码。它强调类型安全,并支持自定义模型、类型映射、中间件和解析器等功能。

快速找到占用大量缓存的罪魁祸首。这是一个快速查找系统中占用空间最大的缓存文件和进程的命令行工具,简单易用方便快捷,支持 JSON、表格和直方图的输出格式。
Go 语言的算法竞赛模版。该项目是由灵茶山艾府创建的一个算法竞赛模板。它以 Go 语言为基础,提供了全面且系统的算法模板集合,涵盖从基础数据结构到高级算法的多个领域。
Go 语言实现的 JavaScript 引擎。该项目是用纯 Go 语言实现的高性能 JavaScript 引擎,让开发者能够在 Go 环境下轻松执行 JavaScript 代码。它支持运行 Babel 和 TypeScript 编译器等 ES5 编写的东西,并兼容大部分 ES6 功能。```go vm := goja.New()v, err := vm.RunString("2 + 2")if err != nil {panic(err)}if num := v.Export().(int64); num != 4 {panic(num)}```

轻松下载 IPA 文件的工具。这是一款能够帮助用户在 iOS App Store 中搜索并下载 .ipa 文件的命令行工具,支持 Windows、Linux 和 macOS 平台。

无需 Root 权限实时监控 Linux 进程的工具。这是一款无需 root 权限即可实时监控 Linux 系统中所有用户运行的命令、计划任务等进程活动。它通过遍历 /proc 收集进程信息和监听文件系统事件,能够实时捕捉新启动的进程和短命进程,适用于 CTF 竞赛、渗透测试和安全审计等场景。

快速查看天气预报的命令行工具。这是一款用 Go 语言开发的命令行查看天气的工具,可以帮助用户快速获取未来几天的天气信息,包括温度、风速、风向、降水量等。

一键“编译” shell 脚本的工具。该项目是一个 Shell-to-Go 转译器(Transpiler),原理是先把 shell 脚本转换为 Go 代码,然后利用 Go 工具链将其编译为二进制可执行文件,弥补了传统 shell 脚本在性能、可移植性和安全性方面的不足。

简化开发环境搭建的工具。该项目可以通过一条命令,快速创建一个配置好的开发环境,支持与主流 IDE 无缝集成,以及本地机器、远程服务器、云平台等多种基础设施。
将 Lua 脚本嵌入 Go 程序。这是一个 Go 语言实现的 Lua 虚拟机和编译器,完全兼容 Lua5.1 语法。开发者可以通过简单的代码,将 Lua 脚本嵌入到 Go 应用中,适用于游戏开发、自动化工具和插件系统等需要脚本化支持的场景。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go L := lua.NewState()defer L.Close()if err := L.DoString(`print("hello")`); err != nil {panic(err)}```

开源的轻量级 Web 应用防火墙。这是一款完全开源的轻量级 Web 应用防火墙,支持私有化部署,提供 Bot 检测、URL 白名单、CC 防护、自定义防护规则等功能,适用于小型企业、工作室和个人网站。
快速生成假数据的 Go 库。该项目是用于生成各种假数据的 Go 语言库,支持随机生成名字、地址、电话和日期等格式的数据。它默认不支持生成中文假数据,但可以通过自定义方式扩展或调整生成逻辑实现。来自 [@DeShuiYu](https://hellogithub.com/user/ZWJkOqsvYbPgD8p) 的分享```go gofakeit.Name() // Markus Moen gofakeit.Email() // alaynawuckert@kozey.biz gofakeit.Phone() // (570)245-7485 gofakeit.BS() // front-end gofakeit.BeerName() // Duvel gofakeit.Color() // MediumOrchid gofakeit.Company() // Moen, Pagac and Wuckert gofakeit.CreditCardNumber() // 4287271570245748 gofakeit.HackerPhrase() // Connecting the array won't do anything, we need to generate the haptic COM driver!gofakeit.JobTitle() // Director gofakeit.CurrencyShort() // USD```

字节跳动开源的 Go 微服务 HTTP 框架。该项目是由 CloudWeGo 团队开发的高性能、易扩展的 Go 语言 Web 框架,可用于构建 RESTful API、微服务以及需要高吞吐量的 Web 应用。在字节跳动内部,Hertz 已被广泛应用,表现稳定可靠。

在 macOS 上轻松运行 Linux 虚拟机。这是一款在 macOS 上创建和管理 Linux 虚拟机的工具,它通过 QEMU 和 macOS 原生虚拟化技术,提供一个开箱即用、轻量级的 Linux 虚拟机环境,支持运行各种 Linux 应用和工具,以及 Docker、Podman、K8s 等容器。```# 安装brew install lima# 启动limactl start# 运行 Linux 命令lima sudo apt-get install -y neofetch lima neofetch# 运行容器lima nerdctl run --rm hello-world kubectl apply -f ...```

用几何图形生成图像。该项目是用 Go 语言开发的命令行工具,它通过图像处理算法,可将任意图像转换为仅由单一几何图形组成的图像。

快速、结构化的 Go 日志库。该项目是 Uber 开发的一款高性能日志库,专为那些需要快速、结构化日志记录的场景而设计。与其他 Go 语言的日志库相比,zap 的性能更为优越,尤其是在需要频繁记录日志的高并发环境中。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go logger, _ := zap.NewProduction()defer logger.Sync() // flushes buffer, if any sugar := logger.Sugar()sugar.Infow("failed to fetch URL",// Structured context as loosely typed key-value pairs."url", url,"attempt", 3,"backoff", time.Second,)sugar.Infof("Failed to fetch URL: %s", url)```

轻量级的 Docker 可视化管理面板。这是一款专为国内用户设计的 Docker 可视化管理面板,采用全中文界面。它安装简单且资源占用低,运行在容器内部对宿主机无侵入,支持容器管理、镜像管理、文件管理以及 Compose 管理等功能。

快速生成 Go Web 项目结构的工具。这是一个用于快速搭建 Go 语言 Web 项目的命令行工具,集成了 Chi、Gin、Fiber、Echo 等多种流行的 Go 框架。它支持选择 MySQL、Postgres、Redis 等主流数据库,还提供了 WebSocket 和 Docker 等高级设置。用户只需选择技术栈,即可生成一套完整的 Go Web 项目架子。

对中文更友好的 Markdown 引擎。这是一个用 Go 语言编写的 Markdown 引擎,实现了最新的 GFM/CM 规范。它是将 Markdown 文本转换成一个抽象语法树(AST),无需正则表达式解析速度更快,支持 GFM/CM 规范、内置代码高亮、术语修正、格式化(中英文间自动插入空格)和 Emoji 解析等功能。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go func main() {luteEngine := lute.New() // 默认已经启用 GFM 支持以及中文语境优化html:= luteEngine.MarkdownStr("demo", "**Lute** - A structured markdown engine.")fmt.Println(html)// Lute - A structured Markdown engine.}```

极简的 Shell 命令 Web 管理平台。该项目提供了一个简单直观的 Web 界面,让用户能够快速执行预先设定好的 Shell 命令。它开箱即用、配置简单、占用资源少,可以将复杂的命令简化成网页上的一个按钮。

开源的探险轨迹记录与分享平台。该项目是用于记录和管理用户的户外探险轨迹的 Web 平台,帮助你保存珍贵的行程数据。它采用 Go+Svelte 开发,提供上传、保存、查看(多种视图)和分享冒险轨迹的功能,并支持自托管。

轻量级高颜值的 Docker 监控平台。这是一个轻量级的服务器监控平台,包括 Docker 统计、历史数据和警报功能。它拥有友好的 Web 界面,配置简单、开箱即用,支持自动备份、多用户、OAuth 认证和 API 访问等功能。

高效的 AI 开发环境搭建工具。这是一个为 AI/ML 项目提供可复现开发环境的命令行工具。只需简单的配置语言和命令,即可快速创建基于容器的开发环境,支持远程构建、依赖缓存和导入远程仓库等功能。

开源的网络钓鱼平台。该项目提供了一个开箱即用的网络钓鱼平台,可用于模拟钓鱼攻击。它拥有友好的 Web 管理后台,支持邮件模板、批量发送邮件、网站克隆和数据可视化,适用于企业安全培训和渗透测试等场景。

实现基础设施即代码的开源方案。该项目是一个开源的基础设施即代码工具,专注于自动化地创建、管理和部署本地和云服务基础设施。作为 Terraform 的一个分支,它由社区驱动,支持使用高级配置语法描述基础设施、生成执行计划和构建资源依赖图,从而减少人为操作失误,实现复杂变更的自动化。

极简的照片管理平台。这是一款用于自建云相册的 Web 应用,它拥有直观的用户界面和丰富的功能,支持自动整理照片、生成缩略图、共享相册、EXIF 解析和多用户管理。还提供了 iOS 应用,方便用户在手机上访问。
纯 Go 实现的 ClickHouse SQL 解析器。这是一款用 Go 实现的 ClickHouse SQL 解析器,兼容大多数 DML/DDL/Query 语句。它的代码简洁易懂,可作为 Go 开发者学习 SQL 解析器的入门项目。```go package main import (clickhouse "github.com/AfterShip/clickhouse-sql-parser/parser")query := "SELECT * FROM clickhouse"parser := clickhouse.NewParser(query)// Parse query into AST statements, err := parser.ParseStmts()if err != nil {return nil, err}```

支持各种流媒体协议的处理工具。这是一个用 Go 语言编写的库,支持 RTSP、WebRTC、HomeKit、FFmpeg、RTMP 等视频流协议的处理。在 FFMPEG 的加持下,它几乎能将任何媒体格式作为输入源,转换为适用于主流流媒体服务和浏览器的格式。

用 Go 生成样式美观的 PDF 文件。这一个 Go 语言开发的用于创建 PDF 文件的库,其灵感来源于 Bootstrap 框架。它允许你像使用 Bootstrap 创建网站一样,轻松编写和生成不同样式的 PDF 文件。

全新的 Nginx 在线管理平台。该项目是用 Go+Vue.js 构建的 Nginx 在线管理平台,它开箱即用、功能丰富,支持流量统计、在线查看 Nginx 日志、编辑 Nginx 配置文件、自动检查和重载配置文件等功能。
自动更新 Docker 容器的工具。该项目能够自动监测并更新正在运行的 Docker 容器。它会定期检查并拉取 Docker Hub 或私有镜像仓库中的最新镜像版本,并自动重启容器。适用于开发、测试和个人使用场景,但不建议在生产环境中使用。```docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \containrrr/watchtower```

友好的命令行 DNS 查询工具。该项目是用 Go 语言编写的命令行 DNS 客户端工具,安装简单且开箱即用。它提供了友好的命令行界面,可快速显示 DNS 记录信息,支持高亮显示、响应时间和多种 DNS 记录类型等,适用于网络诊断等场景。```# Simple DNS lookup doggo example.com# Query MX records using a specific nameserver doggo MX github.com @9.9.9.9# Use DNS over HTTPS doggo example.com @https://cloudflare-dns.com/dns-query# JSON output for scripting doggo example.com --json | jq '.responses[0].answers[].address'# Reverse DNS lookup doggo --reverse 8.8.8.8 --short```

更容易上手的 K8s 包管理器。这是一款提供直观图形界面和灵活命令行工具的 Kubernetes 软件包管理工具。它操作简单更容易上手,支持自动处理依赖、GitOps 和自动更新等功能,简化了繁琐的手动配置过程。
全面的 Go 语言工具函数库。这是一个高效且全面的 Go 语言工具函数库,包含 600 多个函数,涵盖字符串处理、切片操作、网络编程、并发、加解密、文件处理、时间/日期、流处理、迭代器等功能。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go package main import ("fmt""github.com/duke-git/lancet/v2/strutil")func main() {s := "hello"rs := strutil.Reverse(s)fmt.Println(rs) //olleh}```

多功能的虚拟浏览器工具。该项目是运行在 Docker 容器中的自托管虚拟浏览器环境,为用户提供安全、隔离和功能齐全的虚拟浏览器。此外,它还支持在线共享浏览器和实时互动演示,具备多人访问、管理员用户、文本聊天和双向文件传输等功能。

集成云存储的 SFTP 服务器。该项目是用 Go 编写的功能齐全、灵活可配置的 SFTP 服务器,支持 SFTP、SCP、FTP/S、WebDAV、HTTP/S 等多种文件传输协议,并兼容本地文件系统、S3、谷歌云存储等多种存储后端。此外,它还提供了 Web 界面,便于轻松创建和管理用户、文件夹、群组等资源。

交互式的 Dockerfile 调试工具。该项是基于 BuildKit 的交互式调试 Dockerfile 的工具,支持设置断点、单步执行和非 root 模式,并且可以在 VSCode 等编辑器中使用。

程序员专属的 SSH 聊天室。这是一个通过 SSH 连接的聊天室,用户无需安装客户端,仅需一条 SSH 命令即可登录。它支持私人消息、多聊天室、图片和代码高亮等功能,还可以集成第三方服务、自托管 SSH 聊天室。
Go 语言的表达式库。该项目是专为 Go 语言设计的表达式语言和求值引擎,支持丰富的算子和高级函数,具有安全、无副作用和静态类型检测等特点。表达式是一行由变量、运算符和函数组成的代码,它能够简化复杂的计算任务,多用于动态配置和业务规则引擎等场景。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go func main() {// 表达式code := `all(Tweets, {.Len <= 240})`program, err := expr.Compile(code, expr.Env(Env{}))if err != nil {panic(err)}env := Env{Tweets: []Tweet{{42}, {98}, {69}},}// 计算表达式output, err := expr.Run(program, env)if err != nil {panic(err)}fmt.Println(output)}```

快速查看磁盘使用情况的命令行工具。这是一个用 Go 语言编写的磁盘使用分析器,它能够快速扫描并展示文件和目录所占用的磁盘空间,支持 TUI(默认)、非交互和导出三种使用方式。

交互式的数据库命令行客户端。这是一个用 Go 编写的轻量级、交互式的 TUI 数据库客户端,它开箱即用、方便快捷,支持 PostgreSQL、MySQL、SQLite3 和 Oracle 数据库,不是桌面工具用不起,而是命令行的更有性价比。

分析 Go 编译后文件大小的工具。该项目通过逆向工程和反汇编,收集二进制文件中的地址,合并后计算出每个依赖在最终的二进制文件中所占大小,并通过可视化的方式展示出来。它可以用来分析 Go 程序编译后的文件体积,支持命令行和 Web 两种使用方式。

简单、快速的 Go WebSocket 库。该项目是用 Go 编写的 WebSocket 库,它提供了简洁明了的 API,具备高吞吐、低延迟、低内存占用、稳定可靠的特点,可用于高并发场景,支持上下文接管、自定义窗口大小和广播等功能。

基于 Postgres 的后台任务管理平台。该项目是基于 Go+Postgres 数据库开发的任务队列,它内置 Web 管理后台,支持自动重试、定时任务和优先级等功能。

快速开发事件驱动应用的 Go 库。这是一个能够高效处理消息流的 Go 库,即发布/接收消息并做出反应。它上手容易,支持 Kafka、RabbitMQ、HTTP 和 MySQL binlog 等消息中间件,适用于处理实时数据流、分布式事务和微服务通信等场景。来自 [@DeShuiYu](https://hellogithub.com/user/ZWJkOqsvYbPgD8p) 的分享```go// ...func main() {saramaSubscriberConfig := kafka.DefaultSaramaSubscriberConfig()// equivalent of auto.offset.reset: earliest saramaSubscriberConfig.Consumer.Offsets.Initial = sarama.OffsetOldest subscriber, err := kafka.NewSubscriber(kafka.SubscriberConfig{Brokers: []string{"kafka:9092"},Unmarshaler: kafka.DefaultMarshaler{},OverwriteSaramaConfig: saramaSubscriberConfig,ConsumerGroup: "test_consumer_group",},watermill.NewStdLogger(false, false),)if err != nil {panic(err)}messages, err := subscriber.Subscribe(context.Background(), "example.topic")if err != nil {panic(err)}go process(messages)// ...```

开源的内网安全扫描工具。该项目是用 Go 语言开发的内网扫描工具,提供了一键自动化全方位的漏洞扫描。它使用方便、功能全面,支持端口扫描、常见的服务器爆破、Web 应用漏洞扫描、NetBIOS 嗅探等功能。
让数字和时间更容易理解的 Go 语言库。这是一个提供人性化数字和时间的 Go 语言库,它通过提供格式化函数,帮助开发者将大小和时间等数字转化为更易于人类理解的形式,比如文件大小、相对时间、逗号分隔的数字、序数词等。来自 [@DeShuiYu](https://hellogithub.com/user/ZWJkOqsvYbPgD8p) 的分享```go fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB.fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago.```

专为苹果芯片打造的 Mac 性能监控工具。该项目用不到 1k 行的 Go 代码,实现了一个类似 top 命令的工具。它可以实时显示 Apple M 系列芯片的性能指标,包括 CPU、GPU 使用率、内存、网络和硬盘等信息。

现代化的终端文本编辑器。这个项目是用 Go 写的基于终端的文本编辑器,可作为 Nano 的替代品。它下载即用、无需配置、跨平台,支持多光标编辑、语法高亮、鼠标、插件扩展等功能,特别适合在 SSH 远程连接服务器时进行文本编辑工作。

非常漂亮的终端文件管理器。这是一个现代终端文件管理器,为命令行文件操作提供了一个直观且漂亮的界面。它默认采用 Vim 风格的快捷键操作,还支持插件和主题自定义。

生成代码图片的终端工具。该项目可以将代码片段和终端输出,转换成 PNG、SVG 和 WebP 格式的图片,它采用 Go 语言开发,特点是安装简单和易于使用,支持一条命令生成图片,也可以通过交互模式生成定制的图片。```# macOS or Linux brew install charmbracelet/tap/freeze# Arch Linux (btw)pacman -S freeze# Nix nix-env -iA nixpkgs.charm-freeze```

开源的分布式链路追踪平台。该项目是受到 Dapper 和 OpenZipkin 的启发,由 Uber 创建并开源的分布式调用链追踪平台。它可用于监控和诊断分布式应用(微服务),功能包括支持多语言、全链路追踪、上下文传递、性能指标、可视化和告警等。

GitHub Gist 的开源替代品。该项目将代码或文本片段存储于 Git 仓库中,用户可以通过 Git 命令或 Web 查看和修改内容,类似 GitHub 的 Gist 服务。它开源、可自托管,支持创建公开/私人片段、语法高亮、搜索代码、嵌入其它网站和修改历史等功能。

在线运行代码片段的 Go 服务。该项目提供了一个 API 服务,可以在线运行 Python、TypeScript、C、Go 等 30 种编程语言的代码片段,可用于在文档和教程中展示交互式的代码示例。

开源的项目管理和团队协作工具。这是一款开源、多语言、自托管的项目管理工具,兼容了 Trello 和 Notion 的特点。它支持看板、表格和日历等视图管理任务,并提供评论同步、文件共享、用户权限等功能。该工具还提供了适用于 Windows、macOS、Linux 系统的客户端。
美化控制台输出的 Go 库。这是一个用于美化表格、列表、进度条、文本等控制台输出的库,你可以用它输出精美的表格、多层级的列表以及多任务进度条等内容。

一款由 Go+Flutter 开发的高速下载器。这款下载工具后端用的是 Go 语言,支持 HTTP、BitTorrent、Magnet 等多种协议,并使用协程实现高速并发下载。前端部分采用 Flutter 开发,提供了适用于 Windows、macOS、Linux、Android、iOS 和 Web 等全平台的客户端。

一款 Go 写的企业级开源堡垒机。这是一个专为基础设施提供连接、身份验证、访问控制和安全审计的平台,它支持对内网的 Linux 服务器、Kubernetes 集群、Web 应用、PostgreSQL 和 MySQL 数据库的安全访问。该平台采用自动下发证书的方式进行认证,无需在目标机器上管理密码和 SSH Key。此外,用户可以方便地使用 ssh、mysql、kubectl 等远程连接工具,轻松接入受管理的资源。

获取网站 favicon 图标的服务。该服务使用 Go 语言编写,用于获取目标网站 favicon.ico 地址。它特别适用于导航类网站,因为它可以很方便地从源站点上获取图标,即使在找不到图标的情况下,也会返回一个站点名称首字母的灰色图标。
解决小数精度问题的 Go 库。该项目旨在解决浮点数类型在计算过程中,可能出现的精度丢失问题。它提供了一个名为 Decimal 的数据类型,支持常见的加法、减法、乘法和除法运算,保证结果不会丢失精度,同时还提供了四舍五入、取整和序列化等功能。```go package main import ("fmt""github.com/shopspring/decimal")func main() {price, err := decimal.NewFromString("136.02")if err != nil {panic(err)}quantity := decimal.NewFromInt(3)fee, _ := decimal.NewFromString(".035")taxRate, _ := decimal.NewFromString(".08875")subtotal := price.Mul(quantity)preTax := subtotal.Mul(fee.Add(decimal.NewFromFloat(1)))total := preTax.Mul(taxRate.Add(decimal.NewFromFloat(1)))fmt.Println("Subtotal:", subtotal) // Subtotal: 408.06 fmt.Println("Pre-tax:", preTax) // Pre-tax: 422.3421 fmt.Println("Taxes:", total.Sub(preTax)) // Taxes: 37.482861375 fmt.Println("Total:", total) // Total: 459.824961375 fmt.Println("Tax rate:", total.Sub(preTax).Div(preTax)) // Tax rate: 0.08875}```

基于 OpenCV 的 Go 语言计算机视觉库。OpenCV 是一个开源、跨平台的计算机视觉库,多用于做图像处理、视频采集和分析。该项目是 OpenCV 的 Go 语言封装库,让开发者可以使用 Go 语言调用 OpenCV 库,具有支持多平台、OpenCV 4+ 和 GPU 硬件加速等特性。```go package main import ("gocv.io/x/gocv")func main() {// 打开摄像头webcam, _ := gocv.OpenVideoCapture(0)// 新建 GUI 窗口window := gocv.NewWindow("Hello")img := gocv.NewMat()// 显示视频for {webcam.Read(&img)window.IMShow(img)window.WaitKey(1)}}```

快速、优雅地发布 Go 应用。这是一个 Go 项目打包、签名和发布的工具,支持自动发布到 GitHub、GitLab 和 Gitea 平台、创建 Docker 镜像、Linux 软件包和 Homebrew 等功能,可在本地运行也支持 CI/CD 系统,但免费版不支持构建 macOS 和 Windows 安装包。

一个跨平台、可定制的终端仪表盘。该项目提供了丰富的终端小部件,如按钮、进度条、图表等,可用于创建各种交互式终端工具。它支持 UTF-8 编码、鼠标事件和自定义布局等功能,能够快速构建出拥有好看界面的终端应用。

容易上手的代码发布平台。这是一个采用 Go + Vue.js 构建的 Web 部署平台,可一键部署、发布和回滚项目。支持基于角色的访问控制、监控、秒级定时任务、Xterm、LDAP 等功能,提供了完整的安装引导,即使是初学者也能轻松上手。

开源的邮件列表和营销平台。这是一个开箱即用的邮件营销平台,可以帮助你管理邮件订阅者、创建和发送邮件、分析营销数据。可查看邮件阅读率、链接点击率等,支持自托管适用于个人和企业。
一款强大的开源备份工具。该项目提供了简单、快速、安全的开源备份解决方案。它无需繁琐的配置,即可轻松完成备份和恢复操作。采用增量备份策略,备份数据经过加密和压缩处理,保障数据安全且节省空间,支持灵活的存储选择,包括本地磁盘和云存储。可设置自动备份时间,确保数据得到定期的备份保护。```$ restic --repo /tmp/backup backup ~/work enter password for repository:scan [/home/user/work]scanned 764 directories, 1816 files in 0:00[0:29] 100.00% 54.732 MiB/s 1.582 GiB / 1.582 GiB 2580 / 2580 items 0 errors ETA 0:00 duration: 0:29, 54.47MiB/s snapshot 40dc1520 saved```

无忧应对多编程语言不同版本的工具。这是一款跨平台的通用版本管理工具,通过命令行快速安装、切换编程语言的不同版本,并支持自定义源地址。相比于针对每种语言的独立版本管理工具(如 nvm、fvm、gvm 等),这个项目让开发者摆脱繁琐的学习和记忆过程,只需一个工具、一条命令,轻松搞定多编程语言版本管理。来自 [@Han Li](https://hellogithub.com/user/TV6tBSMzmZUWQqk) 的分享```$ vfox c node -> v20.10.0 java -> v11.0.12```

带 API 的电子邮件测试工具。这是一个小型、快速、多平台的电子邮件测试工具,它可以充当一个 SMTP 服务器,自带 Web 界面,支持模拟电子邮件接收、切换不同设备查看邮件等功能,还提供了可用于自动集成测试的接口。

Go 写的网站链接检查工具。该项目通过多线程和递归的方式,检查目标网站中所有页面的链接。它使用简单、速度快,支持 a、img、link、script 等多种标签。

OpenAI 接口管理和分发系统。该项目集成了各种大模型,并统一转化成了类似 OpenAI 接口的服务。它开箱即用、单文件,支持负载均衡、令牌管理、兑换码、用户分组、查看额度、邀请奖励等功能,可用于自建 ChatGPT 服务。

一款适用于 PC 的广告拦截器。该项目是采用 Go 语言 Wails 框架写的能够屏蔽各种广告的桌面工具。它的工作原理是设置一个代理,拦截所有应用的 HTTP 请求,从而阻止广告和跟踪行为的请求,支持 Windows、macOS 和 Linux 操作系统。

小型、独立的 Go Web 服务器。该项目是用 Go 编写的“快餐” Web 服务器,采用 BoltDB、Redis、MySQL 或 PostgreSQL 作为数据库,内置 Lua 解释器。所有功能全在一个独立可执行文件中,支持 Markdown 渲染、Lua 脚本、请求限制、用户和权限等。

一款交互式的“小抄”命令行工具。该项目可以创建、编辑、查看 *nix 系统命令的备忘录,比如常用命令的示例和解释。```cheat tar# To extract an uncompressed archive:tar -xvf '/path/to/foo.tar'# To extract a .gz archive:tar -xzvf '/path/to/foo.tgz'# To create a .gz archive:tar -czvf '/path/to/foo.tgz' '/path/to/foo/'# To extract a .bz2 archive:tar -xjvf '/path/to/foo.tgz'# To create a .bz2 archive:tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'```
为应用程序创建隔离环境的命令行工具。该项目可以创建一个可移植、隔离、用于开发的独立 shell,无需 Docker 和虚拟机。比如你的项目使用 Python 和 Go 语言,用这个工具仅需一条命令就能初始化一个独立的开发环境。```# 安装curl -fsSL https://get.jetpack.io/devbox | bash# 初始化devbox init# 安装 Python 和 Go devbox add python2 go_1_18# 激活devbox shell```

一款高星的功能即服务框架。该项目用容器的方式运行 Serverless 函数,让功能即服务(FaaS)变得简单。它可以轻松地将函数和微服务部署到 Kubernetes,支持自动扩缩容、自带 Web 管理平台、Dockerfile 和多种编程语言。
好用的数据库迁移/变更工具。该项目是用 Go 写的数据库迁移(migrate)工具,帮你自动创建 SQL 迁移文件并管理版本,支持 MySQL、MariaDB、PostgreSQL、SQLite、Neo4j、ClickHouse 等不同类型的数据库。```$ migrate -source file://path/to/migrations -database postgres://localhost:5432/database up 2```
Go 写的轻量级分布式缓存库。该项目是由 Golang 官方开源的库,它实现了一个无需部署的分布式缓存。支持当查询未命中缓存时仅一个进程填充缓存(防穿透和雪崩)、热点数据自动扩展等功能,但不支持更新和删除数据(LRU 控制内存),所以仅适用于某些特定场景。

好用的跨平台备份工具。适用于 Windows、Linux 和 macOS 的备份/还原工具,它能够将指定的文件和目录加密压缩后生成快照,然后上传到远程服务器或云存储,实现远程备份数据的功能,开箱即用支持命令行和 GUI 两种使用方式。

带 AI 功能的开源私人云相册。该项目是用 Go 语言写的在线私人相册,它稳定、部署方便,支持浏览/备份图片、按地点/时间线浏览照片、移动端自动备份照片,以及人脸识别、图片自动分类等功能,可用来搭建私人相册管理你的照片。
简单易用的 Golang 工具库。该项目把 HTTP 服务、日志、热重启、验证器、编码等十几种开发中经常写的功能,封装成了一个库,拿来即用提高开发效率。来自 [@神经蛙9dyXx](https://hellogithub.com/user/cGatNeI9U83s2wV) 的分享```go func main() {// 需要验证的数据data := "我是需要验证的数据,我的作用是做用户名"// 开始验证数据,不能为空,必须包含字母name, err := zvalid.Text(data, "用户名").Required().HasNumber().HasLetter().String()if err != nil {zlog.Debug("验证失败", err)}data = "我是需要验证的数据,我的作用是做用户名,我有字母 A"name, err = zvalid.Text(data, "用户名").Required().HasLetter().String()zlog.Debug("用户名是:", name)// 初始化一个对象,并绑定需要验证的字符串// zvalid.New().Verifi("username","用户名").String()}```

纯 Go 写的简单、可靠的分布式任务队列。这是一个基于 Redis 的轻量级异步任务队列,它会为每个任务启动一个 goroutine,支持任务失败重试、优先级队列、定时任务、唯一任务等功能。
一个对开发者友好的 Go 时间处理库。这是一个功能丰富、容易上手的 Go 时间库,支持时间转换、时间差、时间旅行、星座、季节、农历、多语言等功能。```go lang := carbon.NewLanguage()lang.SetLocale("zh-CN")c := carbon.SetLanguage(lang)if c.Error != nil {// 错误处理log.Fatal(err)}c.Now().AddHours(1).DiffForHumans() // 1 小时后c.Now().AddHours(1).ToMonthString() // 八月c.Now().AddHours(1).ToShortMonthString() // 8月c.Now().AddHours(1).ToWeekString() // 星期二c.Now().AddHours(1).ToShortWeekString() // 周二c.Now().AddHours(1).Constellation() // 狮子座c.Now().AddHours(1).Season() // 夏季```

国产的轻量级服务器监控工具。这是一款名为“哪吒”的服务器监控面板,它安装简单、开箱即用,支持监控多个服务器的系统状态、SSL 证书状态、报警通知、流量监控、设置定时任务等功能,适用于 Linux、Windows、macOS、OpenWRT 等主流系统。

Go 语言的分布式 ID 生成库。该项目是索尼开源的分布式唯一 ID 生成器,灵感来自知名的 Twitter 雪花算法(Snowflake)。它比 Snowflake 慢,但拥有更长的寿命,可以在更多的机器上工作,适用于更大的分布式集群。
更好用的轻量级 Go 语言 XML 库。虽然 Go 语言内置了处理 XML 的库,但在使用时必须按照嵌套层级定义结构体非常繁琐。这个项目的设计灵感来源于 Python 语言的 ElementTree 库,可以在无需定义结构体的情况下灵活的读取、生成 XML 文档。来自 [@两双筷子sqldc](https://hellogithub.com/user/5dGtvaZ6H3L4QMY) 的分享```go doc := etree.NewDocument()doc.CreateProcInst("xml", `version="1.0" encoding="UTF-8"`)doc.CreateProcInst("xml-stylesheet", `type="text/xsl" href="style.xsl"`)people := doc.CreateElement("People")people.CreateComment("These are all known people")jon := people.CreateElement("Person")jon.CreateAttr("name", "Jon")sally := people.CreateElement("Person")sally.CreateAttr("name", "Sally")doc.Indent(2)doc.WriteTo(os.Stdout)```
Go 语言设计模式的实例代码。该项目是作者阅读《研磨设计模式》一书的读书笔记,并用 Go 语言实现了书中涉及的 23 个设计模式。

检查目录和文件命名风格的工具。这是一款 Go 编写的目录和文件名 Lint 工具,它依赖少、速度快,可通过 yml 配置文件自定义检测规则和忽略目录,适用于 Git Hooks、GitHub Action、Docker Image 等多种场景。```ls:.js: snake_case.ts: snake_case | camelCase.d.ts: PascalCase.html: regex:[a-z0-9]+ignore:- node_modules```

一款开箱即用的 WebP 服务器。WebP 是谷歌开发的一种为了提升图像加载速度的图片格式,该项目是用 Go 写的 WebP 服务,无需二次开发就能实现将 JPG、PNG、BMP、SVG 等格式的图片,转化成 WebP 格式的服务,能够有效地减小图片体积、节省带宽、提升图片加载速度。
强大的 Go 语言压缩库。该项目包含了多种压缩算法,支持实时压缩算法 zstandard、Snappy 优化版压缩算法 S2 等,还可用来替代 gzip、zip、zlib 等标准库。
飞书文档转化成 Markdown 的工具。这是一个 Go 写的小工具,可以下载飞书文档为 Markdown 文件。它无需安装下载即用,支持命令行、Docker 和在线三种使用方式。

在终端发邮件的工具。这是一款用 Go 写的命令行发邮件的工具,它支持 TUI 和命令行两种使用方式,还以可以通过管道和其它工具结合,实现例如 AI 编写邮件等功能。```pop

一款快速提取网页信息的工具。该项目可以快速爬取网页上的 URL 地址、JS 文件里的 API 接口等信息,支持批量抓取、深入抓取、安全抓取等模式。
基于 Docker 的生成 PDF 文件服务。它支持通过 Docker 启动一个服务,该服务可以通过 API 与 Chromium 和 LibreOffice 进行交互。让你可以通过调用接口,轻松地将网页、HTML、Markdown、Word、Excel 等格式的文档转换为 PDF 文件。```curl \--request POST 'https://demo.gotenberg.dev/forms/chromium/convert/url' \--form 'url="https://sparksuite.github.io/simple-html-invoice-template/"' \-o my.pdf```
Go 语言的高性能 HTTP 请求路由器。该项目结构简洁,核心代码仅三个文件。它通过 Radix tree 数据结构,实现了高效的路由处理。值得一提的是,著名的 Gin 框架也使用了它。```go package main import ("fmt""net/http""log""github.com/julienschmidt/httprouter")func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {fmt.Fprint(w, "Welcome!\n")}func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name"))}func main() {router := httprouter.New()router.GET("/", Index)router.GET("/hello/:name", Hello)log.Fatal(http.ListenAndServe(":8080", router))}```

一款命令行演示工具。这款命令行工具可以让你在终端中轻松创建和演示幻灯片,它开箱即用、支持 Markdown 语法。

一款强大的代码搜索平台。该项目能够对代码库进行语义索引和分析,支持正则表达式搜索、输入搜索条件时的自动补全、类似 IDE 的跳转到定义和引用。它可以用于构建公司内部的代码搜索平台,帮助程序员完成跨项目的代码查找、代码审查、代码追踪等。
专为“小场面”而生的 Go 编译器。这是一个基于 LLVM 的小型 Go 编译器,它能够将 Go 代码编译成可运行在开发板、物联网、WebAssembly 等场景的程序。

现代化、开源的 Linux 服务器运维管理面板。这是一款 Go 写的 Linux 服务器的在线管理系统,它安装简单、安全可靠,同时集成了 WordPress 等应用、域名绑定、SSL 证书配置、备份等功能,支持快速建站。

随时准备好编码的云开发环境。这是一个提供在线开发环境的 K8s 应用程序,通过配置文件可以快速地为 GitHub、GitLab 上的项目,创建一个集成了在线 IDE、库、依赖项等工具的在线开发环境。

OpenAI 的本地替代品。一个实现了在个人电脑上运行 LLM 模型,并集成了服务接口和在线聊天界面的项目。虽然效果无法和 GPT-4 媲美,但它开箱即用且免费,支持 Vicuna、Alpaca、GPT4ALL 等模型。```# Clone LocalAI git clone https://github.com/go-skynet/LocalAI cd LocalAI# (optional) Checkout a specific LocalAI tag# git checkout -b build# Download gpt4all-j to models/wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j# Use a template from the examples cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/# (optional) Edit the .env file to set things like context size and threads# vim .env# start with docker-compose docker-compose up -d --pull always# or you can build the images with:# docker-compose up -d --build# Now API is accessible at localhost:8080 curl http://localhost:8080/v1/models# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "ggml-gpt4all-j","messages": [{"role": "user", "content": "How are you?"}],"temperature": 0.9}'# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}```

一条命令在本机启动 Kubernetes 集群的工具。一个可以在本地轻松运行 K8s 集群的工具,它支持标准的 Kubernetes 功能,可作为本地开发 Kubernetes 应用程序的工具,适用于 macOS、Linux 和 Windows 操作系统。

一款可视化路由跟踪工具。该项目默认使用 ICMP 协议发送 TraceRoute 请求,特点是显示经过路由器的 IP、地理位置和耗时,以及在地图上以可视化的方式显示路径。

轻巧的 Docker 实时日志查看工具。这是一个实时监控 Docker 日志的 Web 应用,打包成了一个非常小的 Docker 应用。它开箱即用、占用内存少、不存储任何日志文件,支持更加友好的日志展示、容器名称模糊搜索、正则表达式搜索日志等功能。

Go 写的行为验证码库。这是一个 Go 语言、简单易用、交互友好的行为验证码库,支持随机验证文本和点选式验证码。采用展示验证码、采集用户行为、验证行为数据的流程,整个过程用户只需点击操作就能完成验证。

模拟 K8s 集群的工具。它可以在几秒钟内搭建一个由数千个节点组成的 Kubernetes 集群,整个过程仅占用非常少的资源,轻松实现在本机上学习、测试和开发 K8s 集群应用。

一款监控硬盘运行状况的仪表板。这是 smartd 的 WebUI 平台,smartd 是一个守护进程,它能够监视拥有 S.M.A.R.T.(自我监测、分析及报告技术) 规范的硬盘。该项目基于 smartd 实现了硬盘各项指标的可视化界面,并增加了告警、自定义阈值等功能。

连接 SQL 和 AI 框架的工具。该项目能够将类似 SQL 的代码,编译成可运行在 K8s 集群的工作流,实现只写 SQL 就能得到 AI 引擎训练/预测的结果。支持 MySQL、MariaDB、TiDB、Hive 等数据库,以及 TensorFlow、Keras 等框架。来自 [@松果](https://hellogithub.com/user/EFn7Z3e6r0cIpLS) 的分享```sql SELECT * FROM iris.train TO TRAIN DNNClassifier WITH model.hidden_units = [10, 10], model.n_classes = 3, train.epoch= 10 COLUMN sepal_length, sepal_width, petal_length, petal_width LABEL class INTO sqlflow_models.my_dnn_model;```

一款用 Go 编写的命令行 RSS 阅读器。它简单易用隐蔽性强,支持预览内容、浏览器打开链接、自定义快捷键、主题、单词高亮等功能。
Go 语言源码安全检查工具。该项目通过扫描 Go 代码的 AST 检查源代码是否存在安全问题,能够发现源码中硬编码密码、XSS 和 SQL 注入等问题。
能够管理远程仓库的容器镜像的工具。它能够查看远程仓库的容器镜像信息,以及执行复制、同步、删除等操作,支持 docker.io、quay.io、私有仓库等。```$ skopeo inspect docker://registry.fedoraproject.org/fedora:latest{..."Architecture": "amd64","Os": "linux","Layers": ["sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0"],"LayersData": [{"MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip","Digest": "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0","Size": 71355009,"Annotations": null}],"Env": ["DISTTAG=f37container","FGC=f37","container=oci"]}```

一款优雅的 Go 语言解释器。它是一个纯 Go、仅依赖标准库实现的 Go 解释器,拥有简单易用的 API,完全支持 Go 编程语言规范,以及 Go 1.18 和 1.19 版本。```go package main import ("github.com/traefik/yaegi/interp""github.com/traefik/yaegi/stdlib")func main() {i := interp.New(interp.Options{})i.Use(stdlib.Symbols)_, err := i.Eval(`import "fmt"`)if err != nil {panic(err)}_, err = i.Eval(`fmt.Println("Hello Yaegi")`)if err != nil {panic(err)}}```

一款基于 P2P 的智能镜像和文件分发工具。它提供了高效、稳定、安全的基于 P2P 技术的文件分发和镜像加速系统,能够提高大规模文件传输的效率和速率,最大限度地利用网络带宽,适用于应用分发、缓存分发、日志分发和镜像分发等领域。

简单的 gRPC 压测工具。一款用 Go 开发的专门用来压测 gRPC 服务的命令行工具,它使用简单、高效、支持自定义参数。

带黑魔法的 Go HTTP 客户端。该库默认就很智能,比如自动解码成 UTF-8 以避免乱码、根据 Content-Type 自动解析响应、自动检测服务器端并选择最优的 HTTP 协议、自动重试等,除此之外还提供了强大且便捷的调试功能。```go package main import ("github.com/imroc/req/v3")func main() {req.DevMode() // Treat the package name as a Client, enable development mode req.MustGet("https://httpbin.org/uuid") // Treat the package name as a Request, send GET request.req.EnableForceHTTP1() // Force using HTTP/1.1 req.MustGet("https://httpbin.org/uuid")}```

将 SQL 转成类型安全的 Go 代码的工具。它可以将输入的 SQL 语句,自动转化成类型安全、可读的操作数据库的 Go 代码,支持 MySQL、PostgreSQL 和 SQLite 数据库。
构建分布式 Key-Value 数据库的教程。介绍了如何用 Go 语言实现一个高可用、可水平扩展、支持分布式事务的键-值存储服务。

一种可将文本转换为图表的脚本语言。该项目是一种图表脚本语言,可将文本转换为图表。你只需描述想要的图表,它就会生成对应的图像。```shell echo 'x -> y' > input.d2 d2 -w input.d2 out.svg```
类似 cURL 但用于 gRPC 的工具。一款实现与 gRPC 服务器交互的命令行工具,可以轻松请求 gRPC 服务,就像 gRPC 版的 cURL 一样好用。```# 安装brew install grpcurl# 使用grpcurl grpc.server.com:443 my.custom.server.Service/Method```

一款云原生物联网开发框架。这是一个生产级别的物联网平台,它可以将物联网(IoT)设备,封装成 K8s 的最小的可部署的计算单元(pod),直接将设备的能力和数据通过 API 开放出来,让物联网应用的开发变得更加简单。```shell cd shifu# 在集群中安装 Shifu kubectl apply -f pkg/k8s/crd/install/shifu_install.yml```

一起写作并建立一个社区。这是一个 Go 写的博客平台,除了能够创建基于 Markdown、极简的独立博客之外,还可以建立类似博客园的博客社区。

一款 Go 写的应用引擎。通过该项目最快几分钟,就能从零构建出一套系统,适合用于开发接口服务、管理后台、数据可视化平台、自建低代码平台等系统。

一款开源的问答社区。采用 Go 语言编写的问答社区,支持积分、提问、回答、标签等功能,部署简单。
Go 语言实现的 B-树 数据结构。由谷歌开源的 B-树 Go 语言实现,代码整洁、注释丰富,推荐阅读源码。B-树 这种数据结构,能够让查找数据、顺序访问、插入及删除操作,都在对数时间内完成,多用于数据库和文件系统。

一款命令行的代码片段管理工具。该项目可以通过命令行界面,快速创建和管理代码片段。支持快捷键、搜索、代码高亮、自定义颜色等功能,操作简单方便。

适用于多种 shell 的终端提示个性化工具。该项目内置多款主题开箱即用,支持 Windows、Linux、macOS 三个系统上的 PowerShell、Bash、Zsh 等多种 shell,自动补全你输入的每个命令。
Raft 算法的 Go 语言实现。Raft 是一种分布式一致性算法(共识算法),常用于分布式集群内的任意节点,在某种状态转换上保持一致。

一款由 Google 开源的容器监控工具。它可以实时统计容器运行时占用的资源,包括 CPU 利用率、内存使用量、网络传输等信息。提供了 Web 可视化页面,能方便用户分析和监控容器运行状态,支持包括 Docker 在内的几乎所有类型的容器。```sudo docker run \--volume=/:/rootfs:ro \--volume=/var/run:/var/run:ro \--volume=/sys:/sys:ro \--volume=/var/lib/docker/:/var/lib/docker:ro \--volume=/dev/disk/:/dev/disk:ro \--publish=8080:8080 \--detach=true \--name=cadvisor \--privileged \--device=/dev/kmsg \gcr.io/cadvisor/cadvisor:$VERSION```
可直接用 SQL 查询数据文件的命令行工具。通过该项目无需将数据导入数据库,就能用 SQL 查询文件内的数据,可执行模糊查询、计数、排序等命令,支持 JSON、CSV、Excel、Parquet、YAML 等类型的文件。还可以搭配其它命令行工具(jq),实现更丰富的功能。来自 [@总钻风](https://hellogithub.com/user/PDzxTYajWgimyF9) 的分享```shell$ dsq testdata/userdata.parquet 'select count(*) from {}' | jq[{"count(*)": 1000}]```

立刻将 JSON 转化为 Go 类型定义的工具。这是一个用 JavaScript 写的在线小工具,可以直接将输入的 JSON 转成对应的 Go 类型定义。

仅一个文件的开源后端。将 SQLite 数据库、接口服务、登录认证、管理后台等服务器端的功能,做成一个开箱即用的可执行文件。让原本不懂后端开发的用户,也可以通过用户界面快速构建起接口服务。

用 Go 重新实现的 supervisord 。开源项目 supervisord 作为 Python 项目中常用的进程管理工具,深受广大开发爱好者的喜欢。但如果在非 Python 环境的情况下,用起来就不是那么顺手啦,所以作者用 Go 重写了 supervisord,编译后可以方便地运行在任何环境下。```$ cat supervisor.conf[program:test]command = /your/program args$ supervisord -c supervisor.conf```
用于解析环境变量的 Go 语言库。一般情况下项目启动时需要的配置参数,都是通过环境变量传递的。该项目就是 Go 语言用来解析环境变量的库,它简单、体积小、零依赖。```go package main import ("fmt""time""github.com/caarlos0/env/v6")type config struct {Home string `env:"HOME"`Port int `env:"PORT" envDefault:"3000"`Password string `env:"PASSWORD,unset"`IsProduction bool `env:"PRODUCTION"`Hosts []string `env:"HOSTS" envSeparator:":"`Duration time.Duration `env:"DURATION"`TempFolder string `env:"TEMP_FOLDER" envDefault:"${HOME}/tmp" envExpand:"true"`}func main() {cfg := config{}if err := env.Parse(&cfg); err != nil {fmt.Printf("%+v\n", err)}fmt.Printf("%+v\n", cfg)}```

免费的 Kubernetes 教程。K8s 作为云原生时代的必备技能之一,多少得会一些。该教程侧重于实战引导,用 Go 写的项目作为演示对象,从最基础的容器定义开始,逐一讲述 pod、deployment、service、ingress 等资源,直到用 helm 打包部署一套完整服务。

强大的 Kubernetes API 流量查看工具。如果把 k8s 比作操作系统,那它就是 k8s 上的 tcpdump,使用起来就像 Chrome 开发者工具一样简单直接,能够让 k8s 上微服务之间的网络通信一览无遗。
Go 语言的网页自动化和爬虫库。该项目是 Go 语言封装的 DevTools 协议库,实现用 Go 语言操作浏览器,自动化之前需要手动完成的操作,比如:爬取客户端渲染的页面、端到端测试、自动填写表单、模拟点击等操作。项目包含丰富的示例代码,改改就能上手使用。```go package main import ("github.com/go-rod/rod")func main() {page := rod.New().MustConnect().MustPage("https://hellogithub.com")page.MustWaitLoad().MustScreenshot("a.png")}```

一款全面的容器安全扫描工具。目前最流行的开源容器镜像漏洞扫描工具,拥有速度快、精准度高、依赖检测、机密检查、对 CI 友好等特点。它不仅安装简单而且容易上手,仅需一条命令,即可发现镜像存在的安全漏洞。```shell# 安装docker pull aquasec/trivy:0.33.0# 运行trivy image [YOUR_IMAGE_NAME]```

当下最流行的 Go CLI 框架。功能强大且极易上手的 Go 语言 CLI 库,可用于快速构建命令行程序,被 K8s、Hugo、GitHub CLI 等众多知名 Go 项目所采用,支持自动提示、自动构建项目、嵌套子命令等功能。```go var rootCmd = &cobra.Command{Use: "hugo",Short: "Hugo is a very fast static site generator",Long: "A Fast and Flexible Static Site Generator built with love by spf13",Run: func(cmd *cobra.Command, args []string) {// Do Stuff Here},}func Execute() {if err := rootCmd.Execute(); err != nil {fmt.Println(err)os.Exit(1)}}```

一条命令查看二进制文件。用于查看和处理二进制文件的命令行工具,安装简单使用方便,支持 mp4、flac、mp3、jpeg 等多种格式的文件。

一款浏览器数据导出工具。能够导出本地浏览器的密码、历史记录、Cookie、书签、下载记录、localStorage 等数据的命令行工具,支持多平台下的多种主流浏览器。

实时展示 Go 程序运行时指标的 Web 应用。该项目通过图表可视化的方式,实时展示 Go 程序运行时的堆、对象、Goroutines、MSpan/MCache 等信息。```go mux := http.NewServeMux()statsviz.Register(mux)```

极简的 feed 订阅工具。该项目的“简”是由内而外,内部代码部分不使用 Web 框架和 ORM 仅采用 Go+PostgreSQL+JS 实现,界面朴实无华、功能精简实用,支持快速自建、源管理、自动获取内容、快捷键、用户系统等,这一切不多不少刚刚好。

腾讯开源的配置平台。面向资产及应用的企业级配置管理平台,拥有主机管理、组织架构管理、通用权限管理、操作审计等功能。该项目的代码审核很严格,此举不仅保证了项目的代码质量,还提高了代码的可读性,推荐阅读源码。

简单易用的家庭云系统。只需一键即可安装在 NAS、树莓派等各种家庭智能设备上,让你可以随时随地管理个人数据和设备。
可能是最知名的 Go 爬虫框架。它拥有友好的 API 和丰富代码示例,短时间内即可上手。性能方面单核能达到 1K 请求/秒,还可以轻松管理请求方式、间隔和最大并发数,功能强大且优雅。```go func main() {c := colly.NewCollector()// Find and visit all links c.OnHTML("a[href]", func(e *colly.HTMLElement) {e.Request.Visit(e.Attr("href"))})c.OnRequest(func(r *colly.Request) {fmt.Println("Visiting", r.URL)})c.Visit("https://go-colly.org/")}```
简单易用的 DDNS 工具。众所周知域名解析中域名对应的是固定 IP,但是本地机器的 IP 一般是动态的,所以无法完成域名解析实现公网访问。动态 DNS(DDNS) 技术就是用来解决动态 IP 的域名解析问题,该项目能够自动获取你本机的公网 IP,并自动更新到域名服务商,从而实现公网访问本地机器。

开源的云原生监控系统。支持 Docker 等多种部署方式,集数据采集、监控告警、可视化为一体的企业级监控平台。借助高性能时序库,可以满足数亿时间线的采集、存储和告警分析的场景。该项目已在上千家企业部署落地,经历了各种生产环境的检验。

一款静态应用程序安全测试(SAST)工具。它可以检测项目中是否包含密码、API Key、token 等信息,还能够轻松整合到 Git Hook 和 GitHub Action,实现提交代码时自动检测,通过告警和阻止 push 等方式,有效地防止敏感信息泄漏。

一种用于实时通信的开放式协议。该项目是基于 HTTP 和 SSE 的一种协议,然后用 Go 语言实现的实时推送服务。相较于 WebSocket 协议它使用起来更加简单,客户端发起订阅就和请求普通的 HTTP 接口一样,而且在 HTTP/2 下还可以双向通信。

用 Go 写的 GUI gRPC 客户端。作者在调试 gPRC 接口时,发现没有类似 postman 趁手的 gPRC 客户端,所以就自己动手写了一个然后开源了。

Go DDD 示例项目。该项目通过一个预约系统的示例,展示了如何在 Go 项目中实现领域驱动设计(DDD)和读写分离架构(CQRS)。
编写可维护 Go 代码的建议。《Go 语言最佳实践》一文的中文翻译版。

多功能主机管理平台。Go 写的主机管理 Web 平台,支持 shell 和远程桌面管理 Linux、Windows 和 macOS 系统的主机。

Go 写的开源音乐服务器。该项目可以用来搭建自己的音乐网站,功能丰富支持中文界面、专辑封面、多用户、各种音频格式、播放列表等功能,而且硬件要求低即使是在树莓派上也能流畅地运行。

一个 Go 写的轻量级社区。采用 Gin+Vue 实现的微社区,界面清爽拥有话题、发布短内容、评论等功能。

多用户的屏幕分享服务。该项目可以快速启动一个在线共享屏幕的服务,让用户无需安装任何软件,仅使用浏览器就能分享自己的屏幕画面。它基于网页实时通信(WebRTC) 实现,由 STUN/TURN 协议完成内网穿透和浏览器端对端的连接,既实用又有源码可以学习。
高性能 goroutine 池。实现了大规模下的 goroutine 调度和复用,从而节省资源提高执行效果。还有如任务提交、动态调整 pool 大小、查询运行状态等实用接口

命令行 JSON 浏览工具。看似简单却十分实用的 JSON 命令行查询工具,支持流式和交互式两种查询方式

开源的 API 测试工具。支持丰富的网络协议,涵盖接口测试、性能测试等测试类型的测试工具- 多种网络协议:支持 HTTP(S)/HTTP2/WebSocket/RPC 等- 多格式可选:测试用例支持 YAML/JSON/go test/pytest 格式- 双执行引擎:同时支持 Golang/Python 两个执行引擎- 一键部署:一条命令在 macOS/Linux/Windows 完成安装部署- 网络性能采集:在场景化接口测试的基础上,可额外采集网络链路性能指标

轻量级全文搜索引擎。Go 语言下的轻量级搜索引擎,支持中文搜索自带 Web 管理界面

提供登陆界面的身份访问管理平台。提供中文界面的用户管理后台,支持多种第三方登录、单点登录以及手机/邮箱验证码、找回密码等功能

由 Go 语言实现的推荐系统引擎。无需具备推荐系统相关知识,就能轻而易举地搭建推荐系统。开发者只需将用户信息、物料信息和互动数据(例如点赞、收藏等)导入系统,Gorse 就会自动训练模型为每个用户生成推荐

纯 Go 开发的流媒体服务器。完备的直播服务器,支持多种常见编码格式和 RTMP、RTSP、HLS 等协议

平铺的监控工具。安装简单配置方便的“监控墙”,所有监控指标以平铺的方式展示,美观且一目了然。支持 Linux、macOS 和 Windows 主流操作系统

低延时流式边缘计算框架。它基于 QUIC(快速 UDP 互联网连接)协议实现,有效地提高了数据传输率和稳定性,实现在复杂网络环境下数据依然可以超低时延传输和处理。原生支持多地域分布式的部署模式,使得终端用户可就近访问节点,保证数据传输的低延时。适用于开发实时交互的应用,比如在线协作 SaaS、元宇宙、AR/VR、云游戏、物联网 IoT 等
Go 语言的数据处理库。该库提供了类似 Python 语言 Pandas 库的功能,以及 Series 和 DataFrames 的数据结构,支持用列的方式高效地处理数据```go type User struct {Name string Age int Accuracy float64}users := []User{{"Aram", 17, 0.2},{"Juan", 18, 0.8},{"Ana", 22, 0.5},}df := dataframe.LoadStructs(users)fmt.Println(df)// Output:// [3x3] DataFrame//// Name Age Accuracy// 0: Aram 17 0.200000// 1: Juan 18 0.800000// 2: Ana 22 0.500000//```
Go 的高性能多语言分词库。它是结巴分词的 Go 语言实现,支持中文和接入 ES 等功能```go text = "《复仇者联盟3:无限战争》是全片使用IMAX摄影机拍摄制作的的科幻片."// use DAG and HMM hmm := seg.Cut(text, true)fmt.Println("cut use hmm: ", hmm)// cut use hmm: [《复仇者联盟3:无限战争》 是 全片 使用 imax 摄影机 拍摄 制作 的 的 科幻片 .]```

英雄联盟对局先知工具。免费合法不封号,原理是基于 LOL 客户端接口获取用户数据,实现开局前对玩家信息分析和打分

图解 TLS 连接。用在线交互的方式讲解 TLS 的全过程,从建立 TLS 1.2 客户端发送 ping 再到接收 pong,详细到每一个字节。[在线尝试](https://tls.ulfheim.net/)

在线文件管理工具。在浏览器上管理 FTP、SFTP、Git、S3、MySQL、Dropbox 等服务中的文件和数据,支持编辑文件、图片管理、视频转码、Office 文档、全文搜索等功能

Go 原生图表库。支持折线图、柱状图、饼图等```go package main import ("os""github.com/wcharczuk/go-chart/v2")func main() {graph := chart.Chart{Series: []chart.Series{chart.ContinuousSeries{XValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},YValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},},},}f, _ := os.Create("output.png")defer f.Close()graph.Render(chart.PNG, f)}```
离线查询 IP 地理信息和 CDN 服务提供商的命令行工具```$ nali 1.2.3.4 1.2.3.4 [澳大利亚 APNIC Debogon-prefix网络]```

快速且易扩展的 Go 代码检查工具。它比 golint 更快、更灵活,深受广大 Go 开发者的喜爱

用于横向扩展 MySQL 数据库的集群系统。基于 Go 语言的并发特性,它能够轻松处理数千个连接。还可以根据配置好的规则,自动优化影响数据库性能的查询,运维方面支持自动处理主故障转移和备份等功能

Go 语言的交互式 REPL 命令行工具```# 安装go get github.com/d4l3k/go-pry go install -i github.com/d4l3k/go-pry# 运行go-pry -i="fmt,math,strconv"```

自动生成 Go 语言测试代码的工具。该项目基于表驱动测试法(TableDrivenTests)自动生成测试代码,表驱动测试法是创建一张数据表格,每一行为输入和预期输出值,然后用这张表格的数据测试代码

用 Go 写的系统监控命令行工具。重点是带实时折线图,看起来比较炫酷

采用 Go 编写的开源对象存储服务。支持存储图片、视频、日志等文件,还拥有方便操作的 Web 管理后台。虽然轻量却有着不错的性能,同时采用 RS code 编码算法实现即使丢失一半的硬盘,依旧可以找回数据。适用于大数据、机器学习等场景- 高性能:单个文件最大支持 5T,读写速率最高可以达到 55Gb/s 和 35Gb/s- 可扩展:不同集群可以组合,支持跨越多个数据中心- 云原生:支持容器化、基于 K8S 的编排、多租户- 对接多种后端存储:支持 S3、DAS、 NAS、Google 等云存储

用 SQL 的方式查询多个数据源的命令行工具。支持用 SQL 查询 CSV、JSON 文件和多种数据库中的数据,甚至可以在它们之间自由 JOIN```octosql "SELECT * FROM ./myfile.json"octosql "SELECT * FROM ./myfile.json" --describe # Show the schema of the file.octosql "SELECT invoices.id, address, amount FROM invoices.csv JOIN db.customers ON invoices.customer_id = customers.id ORDER BY amount DESC"octosql "SELECT customer_id, SUM(amount)FROM invoices.csv GROUP BY customer_id"```

有代码变动就会自动重启服务的 Go 工具。在开发 Go Web 项目时,每次修改后都需要手动编译、重启服务,这个工具会在文件和目录发生变动后,自动编译并重启服务,大大提高了开发效率

高性能 POSIX 共享文件系统。像使用本地存储一样高效使用海量云端存储,可同时被多台主机同时挂载读写

监控和管理 K8s 集群的命令行工具。它安装简单功能齐全,命令行交互的操作方式可以轻松地解决日常问题

使用 Docker 容器作为节点,在本地快速运行起 Kubernetes 集群的工具。通过该工具可以快速创建媲美 k8s 原生的本地环境,而且占用资源相对较少启动速度快。多用于本地开发和测试 k8s 原生组件,不能用于线上环境

用于查看进程和连接的流量情况的命令行工具。界面简洁美观,支持进程、Socket 等不同视角查看流量数据

用 Go 编写的轻量级 Web 服务器。它相较于 Apache、Nginx 这些知名 Web 服务器,独特点在于提供了编译好的可执行文件,实现了真正的开箱即用。无需任何配置即可拥有免费的 HTTPS、自动把 Markdown 文件转化成 HTML 等人性化的功能。如果是搭建中小型的 Web 服务,它完全够用而且省时省心

可以让任意两台计算机,安全方便地传输文件和文件夹的工具。轻松实现端到端加密的跨平台文件传输,还支持多文件传输、传输中断和恢复等功能

真正开源的 MongoDB 替代品。它底层采用 PostgreSQL 作为存储引擎,用 Go 语言实现了 MongoDB 协议,所以几乎兼容所有的 MongoDB 库,迁移起来毫无负担。如果你用不到 MongoDB 的高级功能,还受限于它的开源协议,那么这个项目可作为 MongoDB 的开源替代方案。它才刚刚起步,建议观望一段时间或做足测试再用于生产环境

Go 的集合支付库。支持微信、支付宝、PayPal、QQ 支付

简单轻量级的评论引擎。任何需要评论的页面,都可以通过 remark42 快速实现评论功能。功能丰富包括登陆、多层嵌套回复、删除评论、投票、禁止用户评论、图片上传等功能

国内大佬开源的 Go 语言 RPC 框架。框架入门轻松能够快速上手,性能优于 grpc-go 而且众多国内大厂都在用

每天学习一个 Go 语言库。内容包含标准库和三方库,每个库对应一篇介绍和上手的文章

基于 Go 语言实现的在线客服系统,采用 Gin+MySQL+JWT+WebSocket 等技术栈实现

基于 Go 实现的轻量级即时通讯(IM)项目。具有高性能、易扩展、安装简单、私有化部署等特性,同时包含多种客户端 SDK。从服务器到客户端一体的开源即时通讯(IM)解决方案

自动识别视频语音生成字幕文件的工具。采用 Go+walk 开发所以仅支持 Windows 系统,原理是请求在线语音转文字的服务,超出免费额度需付费。另外还加入了导出字幕文件和翻译功能

用来搞定 Go 应用中配置的库。支持多种配置文件类型、监控并重新加载配置文件、远程读取配置系统等```go viper.SetConfigName("config") // 配置文件名,不包括后缀viper.SetConfigType("yaml") // 配置文件的后缀viper.AddConfigPath("/etc/appname/") // 查找配置文件的目录viper.AddConfigPath("$HOME/.appname") // 支持查找多个目录// 异常处理if err := viper.ReadInConfig(); err != nil {if _, ok := err.(viper.ConfigFileNotFoundError); ok {// 如果没有找到配置文件} else {// 找到了配置文件,但出现了其他错误}}```

基于 Go 语言实现的轻量级定时任务管理平台。功能:- Web 管理界面- 定时任务可精确到秒- 任务失败可重试,超时强制停止- 账户权限控制- 等等

作者学习 Go 过程中实践的 Go 代码集合。包含了 Go 语言实用三方库、微服务、数据库、算法等代码片段,虽然内容丰富但缺少分类和梳理。就算这样还是要推荐给寻找 Go 进阶之路的小伙伴,因为内容真的很好

可水平拓展、高性能的分布式时序数据库,支持海量数据存储以及快速并行查询和计算。已在饿了么内部使用,存储了全量的监控数据。每天增量写入 TB 量级,共计 PB 级的数据

基于 Go 的流量 录制/回放 工具。实现在不影响线上服务的前提下,线下采用线上的真实请求和参数进行测试。特别适合线上重要服务重构后的回归测试,真实流量的测试有助于提早发现问题,避免重大事故

Go 语言实现的分布式事务管理器。优雅的解决了微服务架构下幂等、空补偿、悬挂等分布式事务难题,提供了简单易用、高性能、易水平扩展的分布式事务解决方案,除 Go 外还有 Python、PHP、Node.js 等语言的客户端```go// 具体业务微服务地址const qsBusi = "http://localhost:8081/api/busi_saga"req := &gin.H{"amount": 30} // 微服务的载荷// DtmServer为DTM服务的地址,是一个url saga := dtmcli.NewSaga("http://localhost:8080/api/dtmsvr").// 添加一个TransOut的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransOutCompensate"Add(qsBusi+"/TransOut", qsBusi+"/TransOutCompensate", req).// 添加一个TransIn的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransInCompensate"Add(qsBusi+"/TransIn", qsBusi+"/TransInCompensate", req)// 提交saga事务,dtm会完成所有的子事务/回滚所有的子事务err := saga.Submit()```

企业级一站式 PaaS 平台。基于 Kubernetes 以应用为中心的 DevOps 且支持微服务治理的多云架构,可以让复杂业务的开发、运维、监控和问题诊断变得更简单、更高效。能减轻使用不同的工具混搭技术底座和云平台的运维难度,同时还有漂亮、简单易用的界面设计

轻量级、高性能、支持集群的 IM 和实时推送服务。纯 Golang 实现支持广播消息、房间推送、安全验证和多协议支持等功能,还有基于 Kafka 的异步消息推送

Go 语言的静态网站生成器。静态网站生成器就是在本地把内容文件生成静态网页(HTML+CSS),然后把生成好的页面上传到服务器的工具。这种工具能够帮你轻松且快速地上线网站,而用户仅需选择喜欢的主题,便可以专注于内容创作。Hugo 作为最流行的静态网站生成器之一,拥有丰富的插件和主题,就算没有编程基础也能帮你快速制作出满意的博客或者网站

各大网站热门头条的聚合网站。[在线预览](https://mo.fish/)

能够搜“一切”的模糊搜索命令行工具。它能够搜文件、历史命令、进程、git 提交记录等信息,支持预览内容、整合到 Vim/Neovim 编辑器,而且搜索速度极快

用 Go 写的 GitLab 命令行工具。通过它除了能够在命令行管理项目、issues、合并提交之外,还能够查看 CI 的运行状态```api: Make authenticated REST/GRAPHQL auth: Manage glab's authentication state issue: Work with GitLab issues label: Manage labels on remote mr: Create, view and manage merge requests ci: Work with GitLab CI pipelines and jobs release: Manage GitLab releases repo: Work with GitLab repositories and projects```
用 Go 语言写的 Redis 服务器。它实现了 Redis 通信协议并兼容 redis-cli 客户端,包含 5 种常用的数据结构和命令比如:TTL、发布订阅、地理位置以及 AOF 持久化等,Go 的初学者可以通过该项目能够学习到关于 TCP、通信协议实现、常用的数据结构等知识,Web 开发学烦了?换一个口味,写个 Redis 作为实战项目吧
适合新手学习 Go 语法的开源项目。学习一门编程语言最好的方法就是动手写,该仓库拥有 1000 多个 Go 语法的问题,让你可以跟着练并附有答案
可设置固定数量协程的 goroutine pool 库。通过这个项目可实现 goroutine 重复使用,从而避免过度创建 goroutine 而造成的内存占用过多等问题```go package main import ("io/ioutil""net/http""runtime""github.com/Jeffail/tunny")func main() {numCPUs := runtime.NumCPU()pool := tunny.NewFunc(numCPUs, func(payload interface{}) interface{} {var result []byte// TODO: Something CPU heavy with payload return result})defer pool.Close()http.HandleFunc("/work", func(w http.ResponseWriter, r *http.Request) {input, err := ioutil.ReadAll(r.Body)if err != nil {http.Error(w, "Internal error", http.StatusInternalServerError)}defer r.Body.Close()// Funnel this work into our pool. This call is synchronous and will// block until the job is completed.result := pool.Process(input)w.Write(result.([]byte))})http.ListenAndServe(":8080", nil)}```

一个强大的 TUI(文本用户界面)框架。Bubble Tea 非常适合构建复杂交互的终端应用程序,同时还能让命令行程序变得多彩和炫酷

支持多种存储服务的云文件桌面管理工具。开箱即用,功能丰富- 拖拽上传、目录上传、流式上传处理- 客户端直传和限速下载- 视频、图像、音频、文本、Office 文档在线预览

用于追踪加密货币行情的命令行工具。界面仿照 htop 支持类似 Vim 的快捷键,程序员摸鱼神器。[在线体验](https://cointop.sh/)

一款查看磁盘空间情况的命令行工具,足以代替 df 命令。它上手简单使用方便,界面简洁且友好同时支持 Linux、macOS 和 Windows 操作系统

一个完全用 Go 写的 Key-Value 数据库。rosedb 适合在找 Go 实战项目的小伙伴们,因为项目代码简洁、注释清晰,配上作者录制的讲解视频。你可以从中学到 Go 相关的知识- 实用的高级特性,比如:goroutine、chan、mutex- 数据结构及算法相关知识,比如:链表、哈希表、跳表等- 操作系统的一些知识,特别是文件系统和内存映射
LeetCode 刷题集合项目。项目从 Go 语言入门讲起,总结了一套刷题模板和解题套路,示例代码为 Go 语言

基于 Go 实现的向 iOS 设备推送消息的服务。手机上安装好配套的 iOS 应用,然后以 Docker 的方式部署完服务,就可以通过一条命令推送指定消息到 APP 上,是不是很方便吖```# 发送文本消息$ curl --form-string "text=hello" "http://:/v1/sender/"# 发送文本文件$ cat message.txt | curl -H "Content-Type: text/plain" --data-binary @- "http://:/v1/sender/"```

Go 语言的 2D 游戏引擎库。通过它可以轻松地用 Go 语言制作出支持多平台的 2D 游戏,项目中还包含很多示例代码,帮助你快速上手

Go 语言的图像处理库。支持:调整大小、旋转、剪切、亮度调整等功能,示例代码:```go// 调整dstImage128 := imaging.Resize(srcImage, 128, 128, imaging.Lanczos)// 锐化dstImage := imaging.Sharpen(srcImage, 0.5)```
用 Go 写的 JSON 数据查询工具。该工具安装方便,语法简单容易上手,实用示例代码很多比如:```# 查询 test.json 文件中,所有国家的名称cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))'["Poland","United States","Germany"]```

该项目可以让你在本地调试 GitHub Actions 脚本。GitHub Actions 是 GitHub 提供的仓库自动工作流程功能,用户可以利用 GitHub 提供的免费计算机资源轻松实现 CI/CD,还可以用来做很多有意思的事情。但是在编写 actions 脚本时,想调试脚本或得到运行结果,只能 push 到远程仓库等待运行结束,没有办法在本地调试和查看结果。有了 act 这个项目,就可以在本地轻松调试 actions 啦,是不是很棒
简单易用高性能的 Go DNS 库。示例代码:```go package main import ("github.com/miekg/dns""net""os""log""fmt")func main() {config, _ := dns.ClientConfigFromFile("/etc/resolv.conf")c := new(dns.Client)m := new(dns.Msg)m.SetQuestion(dns.Fqdn(os.Args[1]), dns.TypeMX)m.RecursionDesired = true r, _, err := c.Exchange(m, net.JoinHostPort(config.Servers[0], config.Port))if r == nil {log.Fatalf("*** error: %s\n", err.Error())}if r.Rcode != dns.RcodeSuccess {log.Fatalf(" *** invalid answer name %s after MX query for %s\n", os.Args[1], os.Args[1])}// Stuff must be in the answer section for _, a := range r.Answer {fmt.Printf("%v\n", a)}}```
漂亮的 Go Printf 开源三方库。示例代码:```go package main import ("fmt""github.com/kr/pretty")func main() {type myType struct {a, b int}var x = []myType{{1, 2}, {3, 4}, {5, 6}}fmt.Printf("%# v", pretty.Formatter(x))}Output:[]pretty_test.myType{{a:1, b:2},{a:3, b:4},{a:5, b:6},}```
纯 Go 实现的多种图像处理算法库。示例代码:```go package main import ("github.com/anthonynsimon/bild/effect""github.com/anthonynsimon/bild/imgio""github.com/anthonynsimon/bild/transform")func main() {img, err := imgio.Open("input.jpg")if err != nil {fmt.Println(err)return}inverted := effect.Invert(img)resized := transform.Resize(inverted, 800, 800, transform.Linear)rotated := transform.Rotate(resized, 45, nil)if err := imgio.Save("output.png", rotated, imgio.PNGEncoder()); err != nil {fmt.Println(err)return}}```

封装 Apple/Mac 接口的 Go 库。用它仅在 80 行代码内就能写出个 macOS 菜单栏「番茄时钟」应用,[查看源码](https://github.com/progrium/macdriver/blob/main/examples/pomodoro/main.go#L1)

一个基于 Gin+Vue 实现的后台管理系统。看项目名字就知道它为什么而生!该项目的作者还做了配套的免费教学视频,找 Go 实战项目的同学可以学起来了

基于 Go 的开源实时性能分析平台。仅需在源码中添加几行代码,pyroscope 就能帮你找出代码的性能问题、CPU 使用过高的原因,还有丰富的图表和调用树展示。支持 Go、Python、Ruby 编程语言,[中文说明](https://github.com/pyroscope-io/pyroscope/blob/main/translations/README.ch.md)

用 Go 实现迷你 Docker,包含 Docker 核心功能的开源项目。该项目仅用 Linux 系统接口实现了类似容器的功能,这些能够帮助你更好地了解容器的工作方式。如果你想更深入地理解容器,就参考本项目写一个迷你 Docker 吧

一款 Go 语言的调试工具。如果你还在像我一样用 `fmt.Println` 调试 go 的代码,就试试这个工具吧。万星的开源项目可不是开玩笑的,它上手简单并且支持多种方式调用,助你快速找到 Bug

用 Go 实现的基于 SQLite 轻量级、分布式关系数据库。如果你对分布式数据库的原理及实现感兴趣的话,这个项目真的是你入门这方面的不二之选,这个项目用 SQLite 作为存储引擎,让你可以把更多的精力放在理解分布式的知识上,尝试阅读下这个项目的文档,相信你会对它感兴趣的。设计图如下:

基于 Go 语言的 HTTP 压测工具。目前市面上的压测工具已经很多了,但是今天推荐的这款惊艳到我点是下面这条命令执行后的效果(vegeta+jaggr+jplot),让我们一起来感受下吧```bash echo 'GET http://localhost:8080' | \vegeta attack -rate 5000 -duration 10m | vegeta encode | \jaggr @count=rps \hist\[100,200,300,400,500\]:code \p25,p50,p95:latency \sum:bytes_in \sum:bytes_out | \jplot rps+code.hist.100+code.hist.200+code.hist.300+code.hist.400+code.hist.500 \latency.p95+latency.p50+latency.p25 \bytes_in.sum+bytes_out.sum```

一款 Go 语言跨平台 UI 库。想用 Go 写图形界面应用的小伙伴,快速上手:```安装$ go get fyne.io/fyne运行一个 demo$ go get fyne.io/fyne/cmd/fyne_demo/$ fyne_demo```
Go 写的机器学习框架。来,跑个模型试试吧:```cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/knnclassifier go run knnclassifier_iris.go```

一个可靠的 Go 语言 Web 和 RPC 框架。就算是 Go 新手基于该框架,也可以快速写出高性能可扩展的微服务。示例代码:```go func main() {flag.Parse()var c config.Config conf.MustLoad(*configFile, &c)ctx := svc.NewServiceContext(c)server := rest.MustNewServer(c.RestConf)defer server.Stop()handler.RegisterHandlers(server, ctx)server.Start()}```

支持鼠标操作和管理 K8s 的命令行工具。对比 k9s 命令行工具,可以不用去记那么多快捷键,直接用鼠标操作。解决公司不使用 rancher 和 dashboard 管理 K8s,只能通过堡垒机访问的场景。使用该工具只需要终端和鼠标,当然用到搜索功能时还是需要键盘的 😂

一个采用 Go 语言编写的免费、跨平台的文件同步工具。它不需要安装,只需要下载对应系统的压缩包解压后就可以直接运行和使用。拥有命令行、Web 和桌面程序多种操作模式,同时支持内网和互联网的文件同步,可以用来搭建私有网盘。又一个代替付费网盘的选择,如果考虑到昂贵的宽费用。可以把 syncthing 做为局域网下手机、电视和电脑共享文件的开源解决方案

能够实时展示分析的压力测试工具。现在压测工具有很多,这款的亮点在于可以在终端实时展示压测过程的曲线。一条命令搞定启动:`ali 地址`

基于 Gin + Vue + Element UI 前后端分离的工单系统。该系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等功能, 帮助减少跨部门之间的沟通,提升工作效率与工作质量,减少不必要的工作量与人为出错率

用 Go 语言画架构图的工具。想画架构图不知道用什么工具?会 Go 的小伙伴可以试试这个库,通过编写 Go 代码来绘制架构图,接口使用方便,但文档太简单了。示例代码:```go d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))if err != nil {log.Fatal(err)}dns := gcp.Network.Dns(diagram.NodeLabel("DNS"))lb := gcp.Network.LoadBalancing(diagram.NodeLabel("NLB"))cache := gcp.Database.Memorystore(diagram.NodeLabel("Cache"))db := gcp.Database.Sql(diagram.NodeLabel("Database"))dc := diagram.NewGroup("GCP")dc.NewGroup("services").Label("Service Layer").Add(gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 1")),gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 2")),gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 3")),).ConnectAllFrom(lb.ID(), diagram.Forward()).ConnectAllTo(cache.ID(), diagram.Forward())dc.NewGroup("data").Label("Data Layer").Add(cache, db).Connect(cache, db)d.Connect(dns, lb, diagram.Forward()).Group(dc)if err := d.Render(); err != nil {log.Fatal(err)}```

Go 语言写的终端游戏 Scorched Earth。它让我想起了“百战天虫”这款游戏,有同龄人吗?一起来回味下

基于 Gin+Vue+Element UI 的前后端分离权限管理系统。文档齐全、还有视频教程适合新手学习,特点:- 遵循 RESTful API 设计规范- 基于 Gin Web API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪 ID 等)- 支持 Swagger 文档- 等等

一款 Go 插件化的基础框架。我只知道它是个 Go 微服务框架,基于它可以快速构建微服务。示例代码如图所示:
Go 语言的时间工具库。项目简单、代码易懂,示例代码丰富:```go import "github.com/jinzhu/now"time.Now() // 2013-11-18 17:51:49.123456789 Mon now.BeginningOfMinute() // 2013-11-18 17:51:00 Mon now.BeginningOfHour() // 2013-11-18 17:00:00 Mon now.BeginningOfDay() // 2013-11-18 00:00:00 Mon now.BeginningOfWeek() // 2013-11-17 00:00:00 Sun now.BeginningOfMonth() // 2013-11-01 00:00:00 Fri now.BeginningOfQuarter() // 2013-10-01 00:00:00 Tue now.BeginningOfYear() // 2013-01-01 00:00:00 Tue now.WeekStartDay = time.Monday // Set Monday as first day, default is Sunday now.BeginningOfWeek() // 2013-11-18 00:00:00 Mon now.EndOfMinute() // 2013-11-18 17:51:59.999999999 Mon now.EndOfHour() // 2013-11-18 17:59:59.999999999 Mon now.EndOfDay() // 2013-11-18 23:59:59.999999999 Mon now.EndOfWeek() // 2013-11-23 23:59:59.999999999 Sat now.EndOfMonth() // 2013-11-30 23:59:59.999999999 Sat now.EndOfQuarter() // 2013-12-31 23:59:59.999999999 Tue now.EndOfYear() // 2013-12-31 23:59:59.999999999 Tue now.WeekStartDay = time.Monday // Set Monday as first day, default is Sunday now.EndOfWeek() // 2013-11-24 23:59:59.999999999 Sun```

基于 Go 实现的跨平台 PostgreSQL 数据库管理工具。通过本地起服务+浏览器的方式解决了跨平台的问题,启动命令:```三种方式:参数:pgweb --host localhost --user myuser --db mydb URL:pgweb --url postgres://user:password@host:port/database?sslmode=[mode]Socket:pgweb --url "postgres:///database?host=/absolute/path/to/unix/socket/dir"```
简化 go-gin 框架注册路由方式,自动生成 Swagger/Markdown 文档。示例代码:```go type ReqTest struct {UserName string `json:"user_name" binding:"required"` // 带校验方式}type Hello struct {}// Hello [grpc-go](https://github.com/grpc/grpc-go) 模式// @Router /hello_ruter [post,get]func (s *Hello) Hello(c *gin.Context, req ReqTest) (*ReqTest, error) {fmt.Println(req)return &req,nil}func main() {base := ginrpc.New(ginrpc.WithGroup("xxjwxc"))router := gin.Default()base.Register(router, new(Hello)) // 对象注册 like(go-micro)router.Run(":8080")}```
关于 Go 程序设计语言内部实现原理的讲解。[中文翻译](https://github.com/go-internals-cn/go-internals)

《LeetCode Cookbook》是帮助开发者在 LeetCode 上做题,提供解题思路和代码的项目。目前已经收录了 500+ 道题的题解和代码,代码都是 runtime beats 100%,代码全部都是用 Go 语言实现。[在线阅读](https://books.halfrost.com/leetcode)
基于 Go 实现的直播服务项目
Golang 程序员面试中的问题和解答集合。该项目目前完成了大部分的数据结构和算法部分,准备相关面试的小伙伴可以阅读学习起来了

能够把终端执行的命令展示到网页上的工具。安装和运行命令如下:```安装:go get github.com/yudai/gotty运行:gotty [options] []```

可能是 Go 目前最受欢迎的第三方日志库。日志首先要能让人看懂,其次是程序易于处理日志包含的内容,logrus 也许能让你轻松快速实现上述两点

Go 的 websocket 三方库。看看它和标准库的对比,你就知道为什么它会出现在本期月刊中了
起中文名工具,去吧!算名先生

Goroutine 的命令行监控工具

一款基于 Go 开发的部署方便、使用简单且强大的分布式文件系统

gRPC 的 Web 页面调试工具。该项目提供交互式的调试界面,让你开发 gRPC 的时候如虎添翼
一个基于 Go 的静态博客部署到云存储的工具。静态博客不论是部署在 GitHubPages 还是 Netlify 等平台都存在国内访问速度慢的问题,解决这个问题最好的办法就是部署在国内的云存储,如腾讯云 COS、阿里云 OSS、七牛云等。借助该工具可以快速上传到上述云存储平台,加快你的静态博客访问速度```bash# 安装curl -sSf http://uptoc.saltbo.cn/install.sh | sh# 使用uptoc --driver oss --region cn-beijing --access_key xxx --access_secret xxx --bucket demo-bucket /opt/blog/public```

Go 写的高颜值、开源 SQL 审核平台

基于 Go 的分布式爬虫管理平台。支持 Python、Node.js、Go、Java、PHP 等多种编程语言以及多种爬虫框架

高性能 Go HTTP 三方库。性能是标准库 `net/http` 数倍,关于它是怎么做到的可以通过源码学习一下。进阶的路就在面前,往前走不走看你自己喽
Go 语言刷 LeetCode。[在线阅读](https://leetcode.gin.sh/)
展示当前系统运行了哪些 Go 程序的工具,同时支持深入分析的参数```# 展示当前运行的所有 Go 程序$ gops 983 980 uplink-soecks go1.9 /usr/local/bin/uplink-soecks 52697 52695 gops go1.10 /Users/jbd/bin/gops 4132 4130 foops * go1.9 /Users/jbd/bin/foops 51130 51128 gocode go1.9.2 /Users/jbd/bin/gocode# 某一个 Go 程序的详细信息$ gops parent PID: 5985 threads: 27 memory usage: 0.199%cpu usage: 0.139%username: jbd cmd+args: /Applications/Splice.app/Contents/Resources/Splice Helper.app/Contents/MacOS/Splice Helper -pid 5985 local/remote: 127.0.0.1:56765 :0 (LISTEN)local/remote: 127.0.0.1:56765 127.0.0.1:50955 (ESTABLISHED)local/remote: 100.76.175.164:52353 54.241.191.232:443 (ESTABLISHED)```

瞥一眼你的“私人管家”,终端个人信息面板。安装简单,还可通过配置文件设置你想看到的信息。设置可能需要花一些时间,但最终效果还是很可以的
用 Go 在 7 天时间内实现 Web 框架、分布式缓存等应用的实战教程

GitHub 官方基于 Go 语言开发的命令行 GitHub 工具。用它可以在终端中执行 GitHub 的常用的管理 Issue、切分支、Clone 等操作
一款支持解析、查询 JSON/YAML/XML/CSV 数据的 Go 三方开源库。示例代码:```go package main import "github.com/thedevsaddam/gojsonq"func main() {const json = `{"name":{"first":"Tom","last":"Hanks"},"age":61}`name := gojsonq.New().FromString(json).Find("name.first")println(name.(string)) // Tom}```

一款 MySQL 数据库转 Go struct 的工具。支持:- 命令行、界面方式生成- YML 文件灵活配置- 自动生成快捷操作函数- 支持索引、外键等

一个 Go 编写的服务状态展示页项目。通过该项目可以快速搭建起一个展示服务可用状态、服务质量的页面

一款高性能、功能丰富的 Go Web 框架。特点:- 模块化、松耦合设计- 模块丰富,开箱即用- 简便及可维护性为宗旨- 详尽的开发文档及示例- 完善的本地中文化支持- 等等
简单易用的 Go 语言各种数据结构和算法,并封装成了一个库,开箱即食。示例代码:```go type Stack interface {Push(value interface{})Pop() (value interface{}, ok bool)Peek() (value interface{}, ok bool)containers.Container// Empty() bool// Size() int// Clear()// Values() []interface{}}```

Go 模块安装代理工具。还在因为安装 Go 项目依赖失败而抓耳挠腮吗?快试试这个项目吧
Go 高性能异步并发线程池。接口调用简单、支持错误返回、无论排队多少任务,都不会阻止提交任务。可用于控制并发访问、并发执行。示例代码:```go package main import ("fmt""time""github.com/xxjwxc/gowp/workpool")func main() {wp := workpool.New(10) //设置最大线程数for i := 0; i < 20; i++ { //开启20个请求ii := i wp.Do(func() error {for j := 0; j < 10; j++ { //每次打印0-10的值time.Sleep(1 * time.Second)}return nil})}wp.Wait()fmt.Println("down")}```

Postgres 数据库性能分析工具,把 `EXPLAIN ANALYZE` 结果通过火焰图展示

基于 Go 语言实现的支持交互模式的 gRPC 客户端,让调试、测试 gRPC API 更加容易

纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 rpc 通讯,使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 docker 一件构建,安装运行十分方便,推荐作为学习项目
Uber 内部的 Go 风格规范。[中文翻译版](https://github.com/xxjwxc/uber_go_guide_cn)

无需配置,执行一条命令让本地的开发环境实现 HTTPS 的工具。效果如下:```bash$ mkcert -install Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥The local CA is now installed in the system trust store! ⚡️The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨Created a new certificate valid for the following names 📜- "example.com"- "*.example.com"- "example.test"- "localhost"- "127.0.0.1"- "::1"The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅```
基于 Go 语言的高性能大缓存库。在 Ubuntu 18.04 LTS,机器配置 i7-6700K CPU @ 4.00GHz with 32GB of RAM 上性能测试结果:```go version go version go1.13 linux/amd64 cd caches_bench; go test -bench=. -benchmem -benchtime=4s ./... -timeout 30m goos: linux goarch: amd64 pkg: github.com/allegro/bigcache/v2/caches_bench BenchmarkMapSet-8 12999889 376 ns/op 199 B/op 3 allocs/op BenchmarkConcurrentMapSet-8 4355726 1275 ns/op 337 B/op 8 allocs/op BenchmarkFreeCacheSet-8 11068976 703 ns/op 328 B/op 2 allocs/op BenchmarkBigCacheSet-8 10183717 478 ns/op 304 B/op 2 allocs/op BenchmarkMapGet-8 16536015 324 ns/op 23 B/op 1 allocs/op BenchmarkConcurrentMapGet-8 13165708 401 ns/op 24 B/op 2 allocs/op BenchmarkFreeCacheGet-8 10137682 690 ns/op 136 B/op 2 allocs/op BenchmarkBigCacheGet-8 11423854 450 ns/op 152 B/op 4 allocs/op BenchmarkBigCacheSetParallel-8 34233472 148 ns/op 317 B/op 3 allocs/op BenchmarkFreeCacheSetParallel-8 34222654 268 ns/op 350 B/op 3 allocs/op BenchmarkConcurrentMapSetParallel-8 19635688 240 ns/op 200 B/op 6 allocs/op BenchmarkBigCacheGetParallel-8 60547064 86.1 ns/op 152 B/op 4 allocs/op BenchmarkFreeCacheGetParallel-8 50701280 147 ns/op 136 B/op 3 allocs/op BenchmarkConcurrentMapGetParallel-8 27353288 175 ns/op 24 B/op 2 allocs/op PASS ok github.com/allegro/bigcache/v2/caches_bench 256.257s```

基于 Golang 语言的数据可视化与管理平台。特性如下:- 🚀高生产效率:10 分钟内做一个好看的管理后台- 🎨主题:默认为 adminlte,更多好看的主题正在制作中,欢迎给我们留言- 🔢插件化:提供插件使用,真正实现一个插件解决不了问题,那就两个- ✅认证:开箱即用的 rbac 认证系统- ⚙️框架支持:支持大部分框架接入,让你更容易去上手和扩展

基于 Go 实现的终端吃豆人游戏

阿里开源的用于 redis 数据同步的工具。原理图如下:

一个速度快、专门用于输出 JSON 格式日志的库。还在为解析不规则的日志而烦恼吗?有了 zerolog 你可以跳起来了!当然它还有低效但可在控制台输出漂亮日志的模式,快去试试吧。示例代码:```go package main import ("github.com/rs/zerolog""github.com/rs/zerolog/log")func main() {zerolog.TimeFieldFormat = zerolog.TimeFormatUnix log.Info().Msg("hello world")}// Output: {"time":1516134303,"level":"info","message":"hello world"}```

生成 GitHub 星图的项目
该项目是作者在学习 Go 过程中,对 Go 源码以及涉及到的相关的计算机基础知识的心得与总结。适合 Go 学习者阅读与学习。快来和作者一起深入了解 Go 源码,了解背后的计算机理论和 Go 的设计思想
谷歌出品的 GitHub API Go 语言版本。如果你需要做一个 GiHhub 相关的产品后端,这个可以省去很多功夫,而且还可以学习谷歌工程师写的 Go 项目、设计接口的思路。示例代码:```go import "github.com/google/go-github/v27/github" // 启用的 go module (GO111MODULE=on 或者不在 GOPATH 里)import "github.com/google/go-github/github" // 没启用 go module 时client := github.NewClient(nil)// 获取用户 "willnorris" 所在的所有组织orgs, _, err := client.Organizations.List(context.Background(), "willnorris", nil)```

一个后端采用 Go 语言的电子表格 Web 应用程序,支持 Python 编程语言处理数据,结果运行即可见。它旨在提供一个集成的工作流程,用于加载、清理、操作和可视化数据。可在线使用,对于用 Python 等处理数据的数据工程师而言,就是一款神器。之前就很好奇石墨文档怎么做的,这下可以学习下了,电子表单是一个比较复杂的问题,该项目有很多可以学习的地方。安装:```bash git clone https://github.com/ricklamers/gridstudio # clone 项目cd gridstudio && ./run.sh # 直接运行# 然后访问 http://127.0.0.1:8080 用户名:admin 密码:admin```

一个用 Go 语言模拟简单计算机 CPU 的项目。只有 Go 语言的函数,没有硬件的模块,从与非门直到一台能做加减运算和显示的迷你虚拟计算机。这些是计算机最底层、基础的东西,虽然是使用 Go 语言模拟,而不是用硬件打造而。但是计算机的基本结构,运行的基本原理都显示的非常清楚。对于新手,既能了解 CPU 原理,也会发现编程语言除了能写软件之外的其他有趣用处。安装命令:```bash make # 构建项目make test # 测试./bin/simulator -bin _programs/brush.bin # 运行虚拟机```

命令行 UI 库。提供了类似 HTML canvas 的 API 用来在终端中绘制 UI,使得内容可以分块展示,甚至可以在某些终端中支持点击事件。如果你想做一个 redis-cli 或者其它炫酷、支持点击事件的命令行 UI 程序。但是又不想陷入手绘 UI 的困境,该库可以帮你解决这些烦恼

带命令行 UI 的 docker 管理工具。可以通过点点点来管理 docker,却又不需要装 rancher 这样的企业级容器管理平台
一个基于 Golang 语言的 HTTP 路由库。由于支持各种正则匹配路由,使得对应处理函数复用率大大提高。相比于 Gin、beego 等框架,这个项目基本上跟标准库的 `http.ServeMux` 和 `mux.Router` 保持一致,比标准库更强大的是它支持的正则匹配路由、自定义保留字段、嵌套路由等功能。示例代码:```go func main() {r := mux.NewRouter()r.HandleFunc("/", HomeHandler)r.HandleFunc("/products", ProductsHandler)r.HandleFunc("/articles", ArticlesHandler)http.Handle("/", r)}r := mux.NewRouter()r.HandleFunc("/products/{key}", ProductHandler)r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler)r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler)```

一款功能强大、轻量级的内网穿透代理服务器。支持 TCP 和 UDP 流量转发、支持内网 HTTP 代理、内网 socks5 代理、snappy 压缩、站点保护、加密传输、多路复用等功能。拥有 web 图形化管理,集成多用户模式。可以自搭建内网穿透代理服务,用来替代付费的内网穿透服务。又不像其他类似项目依赖命令行,它有图形页面。安装:```go get -u github.com/cnlh/nps go build cmd/nps/nps.go # 服务端程序go build cmd/nps/npc.go # 客户端程序```

基于 Golang + Qt5 的百度网盘不限速客户端。对比之前命令行版本的百度盘客户端,该项目拥有图形界面,更加友好、方便、易于使用,到 [release 页面](https://github.com/peterq/pan-light/releases)下载运行即可使用

k8s 系列的容器间关系依赖可视化组件,通过图的方式解释微服务之间复杂的相互依赖关系。同类目前只有 scope 对于微服务之间的依赖的 debug 是非常有意义的。由于是用图的方式表示,意味着可以用图算法找最短路径、聚类、把耦合紧密的服务合并。通过计算图密度,还能揭示微服务之间的联系紧密。安装如下:```# 安装sudo curl -L git.io/scope -o /usr/local/bin/scope sudo chmod a+x /usr/local/bin/scope scope launch# 最后访问 http://localhost:4040```
Go 的分布式爬虫框架。示例代码:```go func main() {geziyor.NewGeziyor(&geziyor.Options{StartURLs: []string{"http://quotes.toscrape.com/"},ParseFunc: quotesParse,// exporter 可以用来把最终结果存成各种格式,例如 json Exporters: []geziyor.Exporter{exporter.JSONExporter{}},}).Start()}// 请求的结果直接进了一个管道处理函数,这样的函数可以串联起来,爬虫和清洗二合一// 这样拆分爬虫逻辑,某些逻辑也可以重用func quotesParse(g *geziyor.Geziyor, r *geziyor.Response) {r.HTMLDoc.Find("div.quote").Each(func(i int, s *goquery.Selection) {g.Exports a").Attr("href"); ok {g.Get(r.JoinURL(href), quotesParse)}}```

一个基于 Go 语言实现的报警和处理报警系统。它以发请求或者手动添加方式进行告警,支持短信、电话、发邮件等通知方式。集成了一个看板,基本上算是开箱即用。安装命令如下:```docker run -it --rm -p 8081:8081 goalert/all-in-one访问本地 8081 端口,用户名 admin,密码 admin123```

一个类似 Siri 的开源语音助手,目前只支持英文。开源的语音助手并不多,而且涉及的问题很复杂,现在有了它就可以基于这个项目做一些有趣的小应用
一个封装好的 OS 三方库,解决了 Go 使用 OS 标准库错误处理的麻烦。如果没有它,打开一个文件查找一个关键字再统计下数量,你至少会需要 2-3 个异常处理的逻辑。有了它,只需要:```go numErrors, err := script.File("test.txt").Match("Error").CountLines()// 等同于 grep Error test.txt | wc -l```

一个让 Go 可以创建、操作 Office Word、Excel、Powerpoint 三件套的库。示例代码:```go dox := document.New()doc.X().Background = wordprocessingml.NewCT_Background()doc.X().Background.ColorAttr = &wordprocessingml.ST_HexColor{}doc.X().Background.ColorAttr.ST_HexColorRGB = color.RGB(50, 50, 50).AsRGBString()```

具有区块链特性的去中心化 SQL 关系型数据库。可以提供 DBaaS 服务,去中心化存储保证用户隐私。[中文文档](https://developers.covenantsql.io/docs/zh-CN/intro),MacOS 系统可以通过 `brew install cql` 直接安装

基于 [dive](https://github.com/wagoodman/dive) 分析 docker 镜像,界面化展示了镜像每层的变动(增加、修改、删除等)、用户层数据大小等信息。便捷获取镜像信息和每层镜像内容的文件树,可以方便地浏览镜像信息。对于需要优化镜像体积时非常方便

Gameboy 模拟器,还可以通过 socket 远程玩```# 下载git clone https://github.com/HFO4/gameboy.live.git# 运行cd gameboy.live go build -o gbdotlive main.go# 命令说明Usage of gbdotlive:-G Play specific game in Fyne GUI mode # 用 Fyne GUI 模式玩游戏,会弹出一个窗口-c config # 配置文件路径Set the game option list config file path-d Use Debugger in GUI mode # GUI 的 debug 模式-f FPS Set the FPS in GUI mode (default 60) # FPS 设定-g Play specific game in GUI mode (default true) # 是否默认启动 GUI-h This help # 显示帮助-m Turn on sound in GUI mode (default true) # GUI 模式下是否有声音-p port Set the port for the cloud-gaming server (default 1989) # 默认监听端口,可以用 Telnet 玩-r ROM # 游戏 ROM 的路径Set ROM file path to be played in GUI mode-s Start a cloud-gaming server # 启动服务器,用 Telnet 玩```
成为 Go 开发者的学习路线图,[中文版](https://github.com/Alikhll/golang-developer-roadmap/blob/master/i18n/ReadMe-zh-CN.md)
一个易用的 HTTP Request 包。它封装了 Go 的 HTTP 标准库,提供了简洁优雅的 API。可以更轻松的发送HTTP 请求,解决了 Go 标准库自定义 HTTP 请求,操作 headers、cookies 时繁琐的步骤。类似于 Python 的 Requests 和 urllib 的区别。示例代码:```go resp, err := nic.Get("http://example.com", nil)if err != nil {log.Fatal(err.Error())}fmt.Println(resp.Text)```

炫酷的 redis 命令行图形界面工具
Go 语言实现的作业调度工具包。适用于需要任务调度的场景,能够让初学者学到 time、reflect 等标准库的用法,[中文文档](https://github.com/prprprus/scheduler/blob/master/README-zh.md)
eBay 开源的分布式图数据库,少数依然支持 SparQL 的图数据库

哔哩哔哩开源的一套 Go 微服务框架,包含大量微服务相关框架及工具。解决了 gin 在微服务场景下的一些适配和微服务本身的一系列生态,[快速开始](https://github.com/bilibili/kratos/blob/master/doc/wiki-cn/quickstart.md)

基于 Go 语言编写的 memcache 和 redis&cluster 的代理及集群管理平台。致力于提供自动化高可用的缓存服务解决方案。自带图形界面的缓存集群管理程序,[安装步骤](https://github.com/bilibili/overlord/blob/master/doc/wiki-cn/platform-deploy.md)
自动缩减 docker 镜像的体积的工具。大幅度缩减 docker 镜像的体积,方便分发,使用命令 `docker-slim build --http-probe your-name/your-app`。比如 Node.js 镜像缩减后的对比:```from ubuntu:14.04 - 432MB => 14MB (缩减了 30.85 倍)from debian:jessie - 406MB => 25.1MB (缩减了 16.21 倍)from node:alpine - 66.7MB => 34.7MB (缩减了 1.92 倍)```

基于 API 的简单图床应用。整合了主流图床的 API,并且做了一个 GUI 用来管理,[安装](https://github.com/aimerforreimu/AUXPI/wiki/%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC)简单
一个高可用的分布式键值数据库,k8s 全家桶标配的注册与发现服务。它采用 raft 一致性算法,基于 Go 语言实现。可以通过该项目了解、学习 raft 的实际应用场景```# 使用 etcd 的客户端存取键值对$ etcdctl put mykey "this is awesome"$ etcdctl get mykey```

一个基于 Docker 的持续集成平台,使用 Go 语言编写
通过单元测试学习 Go 语言。下载仓库源码后,进入对应目录。每一个小文件夹就是一个对应的 Go 项目,在里面`go test`即可运行单元测试。由于是测试驱动开发,所以需要在你改动代码之后跑通单元测试才算学会通过。每一个对应的文件夹都有相应 Markdown 文字教程,比较浅显易懂。而且还有[中文版](https://studygolang.gitbook.io/learn-go-with-tests)
Go 语言的性能分析工具,可以用来调试 Go 程序的内存泄露、goroutine 泄露之类的问题。使用方法:```# 安装$ go get -u github.com/google/pprof# 生成一个profile文件$ pprof -top [你的golang程序二进制文件] profile.pb.gz# 生成火焰图$ pprof -web [你的golang程序二进制文件] profile.pb.gz```
该项目演示了如何用 Go 编写一个可以提供超过一百万个 websockets 连接、运行内存小于 1GB 的服务器。`setup.sh` 是用来创建 websocket 客户端的,`destroy.sh` 则用来销毁客户端

企业级开源持续集成系统。支持横向扩展、自带 UI、常用的持续集成构建等功能

终端 Docker 管理工具,自带一个终端界面。使用该工具可以方便的通过界面管理 docker 不用再记那些命令。安装命令:```# Homebrew$ brew tap skanehira/docui$ brew install docui# go get$ go get -d github.com/skanehira/docui$ cd $GOPATH/src/github.com/skanehira/docui$ GO111MODULE=on go install```

Golang 代码生成对应的 echarts 可视化图表。实例代码:```go// example.go package main import ("log""math/rand""os""time""github.com/chenjiandongx/go-echarts/charts")var nameItems = []string{"衬衫", "牛仔裤", "运动裤", "袜子", "冲锋衣", "羊毛衫"}var seed = rand.NewSource(time.Now().UnixNano())func randInt() []int {cnt := len(nameItems)r := make([]int, 0)for i := 0; i

Golang 的命令行色彩使用库。拥有丰富的色彩渲染输出、通用的 API 方法、兼容 Windows 系统

批量管理 Git 仓库的命令行工具

钓鱼网站生成工具。该工具会根据给定的模版生成一个钓鱼网站,然后在该网站输入的用户名密码等敏感信息会被记录
根据 SQL 和配置文件生成接口的工具。与传统的 SQL 生成 RESETful API 的工具不同,这个工具允许你自定义一些 API 的前、后处理,Auth 之类的行为。启动命令 `sqler -config=path to config file`,配置示例:```adduser {// 参数校验validators {user_name_is_empty = "$input.user_name && $input.user_name.trim().length > 0"user_email_is_empty = "$input.user_email && $input.user_email.trim(' ').length > 0"user_password_is_not_ok = "$input.user_password && $input.user_password.trim(' ').length > 5"}bind {name = "$input.user_name"email = "$input.user_email"password = "$input.user_password"}methods = ["POST"]// 权限校验authorizer = <<JS(function(){log("use this for debugging")token = $input.http_authorization response = fetch("http://requestbin.fullcontact.com/zxpjigzx", {headers: {"Authorization": token}})if ( response.statusCode != 200 ) {return false}return true})()JS exec = <<SQL INSERT INTO users(name, email, password, time) VALUES(:name, :email, :password, UNIX_TIMESTAMP());SELECT * FROM users WHERE id = LAST_INSERT_ID();SQL}```

通过动态二维码传输数据,如:传输文件等

每晚 11 点会自动发送 PTT 论坛(台湾最大论坛) Beauty 板块前 3 名的小姐姐图片。[点击订阅](https://www.daily-beauty.xyz/)

Golang debug 库,自动打印变量类型并且格式化输出

Golang tldr 客户端。对比之前推荐过的 Python 版本客户端,Golang 版本速度更快、交互友好、且支持选择搜索结果的展示样式。每当你想要用 tar 解压缩,但是记不住具体参数的时候,tldr 可以拯救世界

一个命令行工具,用来组合、生成表情的 gif 动图。支持多种模式:旋转、抖动、鬼畜等,可以组合出很魔性的表情
命令行压缩和解压缩工具。终于不用再记 `tar -czvf` 了,使用命令:```# Syntax: arc archive [archive name] [input files...] 压缩$ arc archive test.tar.gz file1.txt images/file2.jpg folder/subfolder# Syntax: arc unarchive [archive name] [destination] 解压缩$ arc unarchive test.tar.gz```
Go Modules 下载代理服务,解决国内 Go 装包的痛。妈妈再也不用担心我因为装不上依赖库而不吃饭,使用步骤:```$ export GO111MODULE=on$ export GOPROXY=http://127.0.0.1:3000$ git clone https://github.com/athens-artifacts/walkthrough.git$ cd walkthrough$ go run .go: downloading github.com/athens-artifacts/samplelib v1.0.0 The 🦁 says rawr!```

用来探索 docker 镜像每一层文件系统,以及发现缩小镜像体积方法的命令行工具。启动命令:`dive 镜像名`

该工具通过抓包截取项目中的数据库、redis 请求解析成相应的语句。便于调试,不要修改代码,直接嗅探项目中的数据请求。使用说明如下:```=======================================================================[使用说明]go-sniffer [设备名] [插件名] [插件参数(可选)][例子]go-sniffer en0 redis 抓取redis数据包go-sniffer en0 mysql -p 3306 抓取mysql数据包,端口3306 go-sniffer --[命令]--help 帮助信息--env 环境变量--list 插件列表--ver 版本信息--dev 设备列表[例子]go-sniffer --list 查看可抓取的协议=======================================================================[设备名] : lo0 : 127.0.0.1[设备名] : en0 : x:x:x:x:x5:x 192.168.1.3[设备名] : utun2 : 1.1.11.1=======================================================================```
SQL 自动优化和改写的工具。可以自动优化 MySQL 语法族,并且给出为什么要这样优化的理由。功能特点:- 跨平台支持- 目前只支持 MySQL 语法族协议的 SQL 优化- 支持基于启发式算法的语句优化- 支持复杂查询的多列索引优化(UPDATE、INSERT、DELETE、SELECT)- 等等```echo "select title from sakila.film" | ./soar# Query: 25807E6B94BEA72C★ ★ ★ ★ ☆ 80分SELECT title FROM sakila. film## 最外层SELECT未指定WHERE条件* **Item:** CLA.001* **Severity:** L4* **Content:** SELECT语句没有WHERE子句,可能检查比预期更多的行(全表扫描)。对于SELECT COUNT(\*)类型的请求如果不要求精度,建议使用SHOW TABLE STATUS或EXPLAIN替代。```
把命令行的输出 stdout 和 stderr 重定向为一个 websocket 服务的工具。运行步骤如下:1. 安装命令:`brew install websocketd`2. 创建 count.sh 内容如下3. 运行 count.sh,命令:`./count.sh`4. 启动一个 websocket server,命令:`websocketd --port=8080 ./count.sh`5. 创建 html 文件,代码如下6. 点击打开 count.html 文件,查看效果```count.sh 文件内容如下#!/bin/bash for ((COUNT = 1; COUNT// helper function: log message to screen function log(msg) {document.getElementById('log').textContent += msg + '\n';}// setup websocket with callbacks var ws = new WebSocket('ws://localhost:8080/');ws.onopen = function() {log('CONNECT');};ws.onclose = function() {log('DISCONNECT');};ws.onmessage = function(event) {log('MESSAGE: ' + event.data);};```
一个极易安装、运行快速、安装简单、使用体验良好的自建 Git 服务。采用 Go 作为后端语言,支持 Linux、 macOS、Windows 等,[在线Demo](https://try.gitea.io/)。安装步骤如下:```$ git clone https://github.com/go-gitea/gitea$ cd gitea$ TAGS="bindata" make generate all$ ./gitea web```
Facebook GraphQL 协议的 Go 语言版本。相比之前的其它 GraphQL 库,通过反射结构体的 tag 可以自动生成 schema 给前端,更加便于开发。示例代码:```go// Friend is a small struct representing a person.type Friend struct {FirstName string Last string `graphql:"lastName"` // use a custom name Added time.Date `graphql:"-"` // don't expose over graphql}// FullName builds a friend's full name.func (f *Friend) FullName() string {return fmt.Sprintf("%s %s", f.FirstName, f.Last)}// registerFriend registers custom resolvers on the Friend type.//// Note: registerFriend wouldn't be necessary if the type only// had the default struct field resolvers above.func registerFriend(schema *schemabuilder.Schema) {object := schema.Object("Friend", Friend{})// fullName is a computed field on the Friend{} object.object.FieldFunc("fullName", Friend.FullName)}```
微信网页版 API 的 Go 实现。支持模拟微信网页版的登录、联系人、消息收发、机器人回复等功能。示例代码片段:```go func main() {// 创建session, 一个session对应一个机器人// 二维码显示在终端上session, err := wxweb.CreateSession(nil, nil, wxweb.TERMINAL_MODE)if err != nil {logs.Error(err)return}// 注册插件, 所有插件默认是开启的faceplusplus.Register(session)replier.Register(session)switcher.Register(session)gifer.Register(session)// 你也可以自己选择关闭插件里的handler(消息处理器)session.HandlerRegister.DisableByName("faceplusplus")// 登录并接收消息if err := session.LoginAndServe(false); err != nil {logs.Error("session exit, %s", err)}}```
Go 的微信支付 SDK。微信系的 SDK,填补 Go 在微信支付开发界的空白。支持刷卡支付、统一下单、查询订单、撤销订单、关闭订单等。示例代码如下:```go// 创建支付账户account1 := wxpay.NewAccount("appid", "mchid", "apiKey", false)account2 := wxpay.NewAccount("appid", "mchid", "apiKey", false)// 新建微信支付客户端client := wxpay.NewClient(account1)// 设置证书account.SetCertData("证书地址")// 设置支付账户client.setAccount(account2)// 设置http请求超时时间client.SetHttpConnectTimeoutMs(2000)// 设置http读取信息流超时时间client.SetHttpReadTimeoutMs(1000)// 更改签名类型client.SetSignType(HMACSHA256)```

自带文件浏览器的网盘服务。支持功能:文件浏览、文件生成分享链接、批量上传、文件夹创建等服务、用户系统。安装步骤如下:1. 安装:`docker pull filebrowser/filebrowser`2. 配置:配置文件在 `/etc/config.json`,数据库在 `/etc/database.db`3. 启动```docker run \-v /path/to/sites/root:/srv \-v /path/to/config.json:/config.json \-v /path/to/database.db:/database.db \-p 80:80 \filebrowser/filebrowser```4. 访问:然后访问 `http://localhost` 即可,默认是 80 端口,改端口的话修改 `config.json` 文件
一个可用于内网穿透的高性能的反向代理应用,支持 tcp、udp、http、https 协议。有时想要让其他人(外网)通过域名访问或者测试我们在本地搭建的 web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能。例如:微信公众号开发、slack bot 开发等,[中文文档](https://github.com/fatedier/frp/blob/master/README_zh.md)

Golang 写的 NES 模拟器。现在可能已经没人玩 NES 游戏了,不过可以了解下怎么写模拟器、如何用 Go 模拟 CPU 和 GPU```1. 安装go get github.com/fogleman/nes 2. 运行nes [rom文件的路径]```

开源、免费的分布式图数据库。如果你在构建用户关系系统,图数据库绝对是比关系型数据库更好的选择。通过 SPARQL 查询一个用户相关的其他用户会比 SQL 快百倍。自带图形界面、RDF 导入工具等必备工具。安装:`curl https://get.dgraph.io -sSf | bash`

嵌入在 Git 中的分布式 bug 追踪、管理系统。用来管理 git 项目的 bug,这些信息会被存在 `.git` 文件夹里,所以其他人克隆也能看到 bug,不需要而外的存储系统。基本命令:```# 安装go get github.com/MichaelMure/git-bug# 创建新 bug git bug new# 把 bug 推送到远程git bug push []# 列出现有的 bug git bug ls```

终端里的 Git 客户端。该客户端启动比各路 GUI 客户端快N倍,功能基本一致。安装 `go get github.com/jesseduffield/lazygit`,然后 `lazygit` 启动。Ready?Go!
Golang 版的 rsync,与 rsync 不同的是 rclone 可以将文件同步到各种云服务的存储桶或 CDN 服务上```# 安装$ curl https://rclone.org/install.sh | sudo bash# 例如同步本地文件夹到 AWS S3 存储桶$ rclone sync /home/local/directory remote:bucket```
还在为兼容不同的云平台 SDK 而烦恼吗?go-cloud 通过封装不同云平台的接口,向用户提供统一的 API。例如:阿里云和腾讯云的存储桶 API 不一样,但是通过 go-cloud 的封装,可以使用统一的 API 调用
无闻出品的《Go 编程基础》教程
监听 MySQL binlog 的库,可以用来把主库 MySQL 的变化同步到 Redis、elasticsearch 等。同时提供了一个类似阿里 canal 的工具库,监听并解析 binlog 变化。让管理数据和了解数据状态变得更加轻松
Go 夜读,该项目每周四晚上更新 Go 源码阅读以及线下技术讨论。难得的中文 Golang 源码解析,包含文档和YouTube 视频,干货满满
腾讯信鸽 push v3 版的 Golang SDK。支持函数式配置项、标签推送、全平台推送、批量推送等

该项目能够方便的把 Golang 项目包装成 MacOS 可以直接运行的软件。可以用来把自己写的小工具包装成一个其他人可以直接下载并双击使用的软件。提供自定义 logo、名字,分分钟发布自己的 Golang 软件。使用步骤如下:```shell# 1.安装命令$ go get github.com/machinebox/appify# 2.封装命令$ appify -name "My Go Application" -icon ./icon.png /path/to/bin```
通用SQL命令行客户端。支持以下所有数据库和协议:| 数据库 (scheme/driver) | 协议别名 [real driver] ||------------------------------|---------------------------------------|| Microsoft SQL Server (mssql) | ms, sqlserver || MySQL (mysql) | my, mariadb, maria, percona, aurora || Oracle (ora) | or, oracle, oci8, oci || PostgreSQL (postgres) | pg, postgresql, pgsql || SQLite3 (sqlite3) | sq, sqlite, file |```安装方法1. 根据你的系统下载最新的 binary 2. 解压缩出 `usql` 或者 `usql.exe`3. 把binary放到你的 `$PATH` (Linux/macOS) 或 `%PATH%` (Windows)路径下4. 然后就可以用`usql`链接到你喜欢的SQL数据库啦~```
《关于 Go 性能优化的思考》概述了编写高性能 Go 代码的最佳实践。[中文](https://github.com/dgryski/go-perfbook/blob/master/performance-zh.md)
Golang 分布式的连接池,协程池。内含 Redis Client 连接池实现,特点如下:- 提供下游的高可用访问,投票机制摘除下游不健康节点- 最小健康比、最大冷却时长可配置- 每个下游节点对应一个 channel,保证负载均衡- 提供连接池状态监控接口包括总连接数、每个 IP 的连接数

实现像 python 一样的交互式编程,同时整合了 Jupyter Notebook。效果如下:
一款基于 Go 语言的简洁、高性能的分布式游戏服务框架。[快速上手文档](https://github.com/liangdas/mqant/wiki),作者阐述了自己为什么选用 Go 作为开发语言和一些设计思路
Go 知识图谱
Go 编写的快速、简单、干净的视频下载程序。支持哔哩哔哩、YouTube 视频网站```$ annie -c cookies.txt https://www.bilibili.com/video/av20203945/Site: 哔哩哔哩 bilibili.com Title: 【2018拜年祭单品】相遇day by day Type: video Stream:[default] -------------------Quality: 高清 1080P60 Size: 220.65 MiB (231363071 Bytes)# download with: annie -f default "URL"16.03 MiB / 220.65 MiB [==>----------------------------] 7.26% 9.65 MiB/s 19s```

[好雨](http://www.rainbond.com/)开源的生产级无服务器 PaaS。用于为云原生应用的整个交付流程提供生产级支持,包括基础设施管理、容器化改造、微服务架构转型、DevOps 工作流落地、混合云多云管理等

采用 Go 语言开发的团队通讯服务项目,可用于自行搭建服务。为团队带来跨 PC 和移动设备的消息收发、文件分享,搜索等功能的通讯服务平台
用 Go 语言写的解析器,包含诸多语言特性。入门实践项目,适合新手熟悉 Go 语言和语言解析器入门

实现了类 top 命令展示效果的 docker 容器监控工具

Go 语言最受欢迎的 Web 框架之一,具有:高性能、便于扩展、轻量的特点,示例代码:```go package main import "github.com/labstack/echo"func main() {e := echo.New()e.GET("/", callback)e.Logger.Fatal(e.Start(":3000"))}func callback(ctx echo.Context) error {return ctx.HTML(200, "你好 echo")}```

开源分布式 NewSQL 数据库,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。具备如下核心特性:- SQL支持 (TiDB 是 MySQL 兼容的)- 水平线性弹性扩展- 分布式事务- 跨数据中心数据强一致性保证- 故障自恢复的高可用

访问控制开源库,支持 ACL/RBAC/ABAC 等访问控制模型,支持 MySQL/NoSQL 等存储方式
Golang 实现 JSON Web Tokens (JWT)

操作 XLSX 文件,支持 Microsoft Excel™ 2007 以更高版本
非官方的 Aliyun Go语言 SDK 支持API:ECS, OSS, DNS, SLB, RDS, RAM, MNS, STS, SLS, MQ, Push, OpenSearch, DM, Container Service
Go 语言实际项目应用的技术分享

用 SQL 的语法搜索文件,酷吧
Go 的 [UUID](http://baike.baidu.com/item/UUID) 包
Poseidon 系统是奇虎 360 开源的一个日志搜索平台,可以在数百万亿条、数百 PB 大小的日志数据中快速分析和检索特定字符串。

DHT 实现了 BitTorrent DHT 协议,它包含两种模式,标准模式和爬虫模式。标准模式遵循 DHT 协议,你可以把它当做一个标准的 DHT 组件。爬虫模式是为了嗅探到更多 torrent 文件信息,它在某些方面不遵循 DHT 协议。 基于爬虫模式,你可以打造你自己的 BTDigg,[演示地址](http://bthub.io/)
Go 示例代码,[在线浏览](https://gobyexample.com/)

sshtron 是通过 SSH 运行的多人贪吃蛇游戏,命令行输入:`ssh sshtron.zachlatta.com`,无需安装等待几秒即可进行游戏(因为服务器在国外,很卡😅)

wuzz 是用于调试 HTTP 请求的交互式命令行工具,可以用来检查和修改请求。常用操作如下:| Keybinding | Description || :--------- | :------ || Ctrl+R | 发送请求 || Ctrl+C | 退出 || Ctrl+K,Shift+Tab | 前视图 || Ctlr+J,Tab | 下一个视图 || Ctrl+H,Alt+H | 打开/关闭历史 || Down | 向下移动一条视图线 || Up | 向上移动一条视图线 || Page down | 向下移动一个视图页 || Page up | 向下移动一个视图页 || F2 | 跳转到 URL || F3 | 跳转到查询参数 || F4 | 跳转到 HTTP 方法 || F5 | 跳转到请求体 || F6 | 跳转到 header || F7 | 跳转到搜索 || F8 | 跳转到响应 header || F9 | 跳转到响应体 |

Bitbar 是可以将任何(自己或别人写好的)脚本的**输出**到 Mac OS 的状态栏上。同时,支持自定义更新频率。例如:定时获取比特币的价格、HelloGitHub 项目的 star 数量,使用步骤如下:1. 运行该程序,选择脚本所在目录2. 确保脚本的有执行权限,赋予执行权限的命令:`chmod +x script.sh`3. 选择 `Refresh all`,刷新使之生效
百度云开源的边缘计算平台,可将云计算能力拓展至用户现场,提供临时离线、低延时的计算服务,包括设备接入、消息路由、消息远程同步、函数计算、视频接入预处理、AI推断等功能
Negroni 是一个很地道的 Web 中间件,它不是一个框架,是为了方便使用 net/http 而设计的一个库而已。[中文介绍](https://github.com/urfave/negroni/blob/master/translations/README_zh_cn.md)
kingshard 是一个由 Go 开发高性能 MySQL Proxy 项目,kingshard 在满足基本的读写分离的功能上,致力于简化 MySQL 分库分表操作;能够让 DBA 通过 kingshard 轻松平滑地实现 MySQL 数据库扩容。
Go 的 vim 配置

也许是世界上最快的 UDP 传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。
一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架,齐全的文档(中文),丰富的使用案例。[官网地址](https://beego.me)

悟空引擎是一个高度可定制的全文搜索引擎,[为什么要有悟空引擎](https://github.com/huichen/wukong/blob/master/docs/why_wukong.md),[入门教程](https://github.com/huichen/wukong/blob/master/docs/codelab.md),这个项目的搜索引擎原理如下:

GitHub 开源的在线修改表结构工具。目的是解决一个经常碰到的问题:不断变化的产品需求会不断要求更改 MySQL 表结构。gh-ost 通过一种影响小、可控制、可审计、操作简单而且安全的方式来改变线上表结构。[中文简介](http://www.infoq.com/cn/news/2016/08/GitHub-MySQL-gh-ost?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global)

用 Go 写的一款极易搭建的自助 Git 服务,支持所有平台。就像 GitLab 一样的服务,但是 GitLab 是基于 ruby 语言的。另外:完善的中文文档、支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。[中文介绍](https://github.com/gogits/gogs/blob/master/README_ZH.md)

Pholcus 是 Go 写的重量级爬虫,纯 Go 语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有 Web、GUI、命令行三种操作界面,功能齐全、强大。[使用手册](https://pholcus.gitbooks.io/docs/content/),使用展示如图: