Go学习路线

API 服务和工具

图形语言

GraphJin - 用于 Postgres 的即时 GraphQL API。无需代码,将 GraphQL 编译为 SQL。

MTProto

MTProto - 在纯 Go 上编写的 Telegram API 的完整本实现。

天文学

go-fits - FITS(灵活图像传输系统)格式图像和数据读取器astrogo/fitsio - Pure Go FITS(灵活图像传输系统)格式图像和数据读取器/写入器cosmo - 常见宇宙学的宇宙距离和时间计算(Friedmann-Lemaître-Robertson-Walker 度量)。gonova - libnova的包装器 -- 天体力学、天体测量学和天体动力学库meeus - Jean Meeus 随着“天文算法”的实现novas - 海军天文台矢量天文测量软件 (NOVAS) 的接口utdfgo - 航天器 UTDF 数据包读取器和解码器

构建工具

beku - 在用户环境(GOPATH 或供应商目录)中管理包的库和程序colorgo -着色go 构建输出dogo - 监控源文件的变化并自动编译和运行(重启)fileembed-go - 这是一个命令行实用程序,用于获取大量源文件,并将它们嵌入到 Go 包中gb - Go 的(另一个)构建工具,重点是多包项目gg - 一个小型的多 golang 项目 env/make 管理工具。GG - Go in Go 的构建工具Godag - Go 编译器集合的前端goenv - goenv 提供 Go 版本和 Go 工作区管理工具gopei - 适用于 Unix / Linux 的简单 Go 编译器和 LiteIDE 安装程序,它添加了许多功能,如 github 支持和演示器。go-pkg-config - pkg-config 的轻量级克隆goscons - Go 的另一组 SCons 构建器go-server - 敏捷服务器框架。gotgo - 实现“泛型”的实验性预处理器gows - Go 工作区管理器goxc - 一个专注于交叉编译、打包、版本控制和分发的构建工具GVM - GVM 提供了一个管理 Go 版本的接口Realize - 具有文件观察器、输出流和实时重新加载的 Go 构建系统。使用自定义路径运行、构建和观察文件更改。SCons Go Tools - 一组构建器,可以轻松地在 SCons 中编译 Go 项目Task - 一个任务运行器 / Make 的简单替代方案

缓存

cache2go - 具有过期功能和访问计数器的并发安全缓存库cache - Go 的 LevelDB 风格 LRU 缓存,支持非 GC 对象缓存。go-cache - Go 的内存键:只存储/缓存(类似于 Memcached)库,适用于单机应用程序golibs/cache - 一个很小的缓存包gomemcached - go 中的 memcached 服务器gomemcache - 一个 memcached 客户端go-slab - go 的Slab 分配器。groupcache - 缓存和缓存填充库,旨在在许多情况下替代 memcachedlibmemcache - 使用 memcache 协议的快速客户端和服务器库memcached-bench - 内存缓存是服务器的基准工具memcached - 快速的 memcache 服务器,支持超过可用 RAM 持久性和缓存大小memcache - 转到 memcached 客户端,从 YouTube Vitess 分叉rend - 管理数据分块和 L1/L2 缓存的 memcached 代理YBC 绑定- YBC 库的绑定为快速进程内 blob 缓存提供 APIg2cache - 协调的本地和外部两级缓存方案

云计算

aws-sdk-go - 适用于 Go 编程语言的 AWS 开发工具包。Docker - Linux 容器运行时。由 dotCloud 开发。适用于 Go 的Enduro/X ASG应用服务器。为分布式事务处理提供应用服务器和中间件设施。支持基于微服务的应用架构。由 ATR Baltic 开发。Flamingo - 轻量级云实例上下文化器。gocircuit - 一种分布式操作系统,位于数据中心部署中多台机器上的传统操作系统之上。它提供了一个干净统一的抽象,将整个硬件集群视为一个单一的、单一的计算资源。由 Tumblr 开发。gosync - 用于将数据同步到 S3 和从 S3 同步数据的包。juju - 由 Canonical 开发的编排工具(部署、配置和生命周期管理)。Kubernetes - 来自 Google 的容器集群管理器。基于 liblxc 的LXD守护进程提供 REST API 来管理容器mgmt - 由@purpleidea(红帽员工)和 mgmt 社区开发的下一代配置管理工具(并行、事件驱动、分布式系统)。rclone - “用于云存储的 rsync” - Google Drive、Amazon Drive、S3、Dropbox、Backblaze B2、One Drive、Swift、Hubic、Cloudfiles、Google Cloud Storage、Yandex FilesShipBuilder - ShipBuilder 是一个极简的开源平台即服务,由 Jay Taylor 开发。swift - Swift / Openstack Object Storage / Rackspace 云文件的 Go 语言接口Tsuru - Tsuru 是由 Globo.com 开发的开源多语言云计算平台即服务 (PaaS)。

命令行选项解析器

argcfg - 使用反射从命令行参数填充结构中的字段autoflags - 从配置结构填充 go 命令行应用程序标志cobra - 现代 go CLI 交互的指挥官,支持命令和 POSIX/GNU 标志cli - 用于实现命令行界面的 Go 库。cmdline - 一个简单的解析器,支持短选项和长选项、默认值、参数和子命令。command - 将子命令添加到您的 CLI,提供帮助和使用指南。docopt.go - 用 Go 编程语言实现的 docopt。flaq - 命令行选项解析库,符合 POSIX/GNU 标准,支持结构标记以及 Go 的标志方法。getopt - Go 风格的全功能传统(BSD/POSIX getopt)选项解析getopt - 另一个用于 Go 的 getopt 库。这个就像 Python 的一样。gnuflag - GNU 兼容的标志解析;与flag基本兼容。go-commander - 使用命令和子命令、参数检查和上下文使用帮助简化 Go 命令行界面的创建。从“go”工具代码分叉。go-flags - go 的命令行选项解析器go-getoptions - 受 Perl 的 GetOpt::Long 灵活性启发的 Go 选项解析器.goopt - 用于解析命令行标志的 getopt 克隆go-options - Go 的命令行解析库mellium.im/cli 用于解析现代 CLI 应用程序的库,包括可能具有自己的标志和内置帮助系统的子命令。旨在使用最少的 API。options - 自记录 CLI 选项解析器opts.go - 轻量级 POSIX 和 GNU 风格的选项解析pflag - Go 的标志包的直接替代品,实现了 POSIX/GNU 风格的 --flags。subcommands - 一个并发的、经过单元测试的子命令库uggo - 另一个选项解析器,提供类似 gnu 的选项解析。这个包装(嵌入)flagset。它还提供基本的管道检测(像 ls 这样的命令在通过管道传输时表现不同)。writ - 具有全面测试覆盖率的灵活选项解析器。它的意思是“只是工作”并且不碍事。

命令行工具

amqp-message-remover - 通过正则表达式模式从 AMQP 队列中删除不需要的消息Arduino-cli - Arduino CLI 是一种一体化解决方案,提供构建器、板/库管理器、上传器、发现以及使用任何 Arduino 兼容板和平台所需的许多其他工具。awless - 亚马逊网络服务(AWS)的强大命令行界面。锅炉- 一个极快的 CLI 工具,用于从样板模板创建项目。box-cli-maker - 为您的 CLI 制作高度定制的 Box。comb-go - Golang 实现的 CLI 工具,用于管理CloudComb资源。coshell - GNU 'parallel' 的替代品。dasel - 使用命令行中的选择器查询和更新数据结构。与jq / yq相当,但支持 JSON、YAML、TOML 和 XML,运行时依赖为零。DevTodo2 - 每个项目的小型命令行任务列表管理器。dsio - Google Cloud Datastore 的命令行工具。efs2 - 一个非常简单的配置管理工具,由愚蠢的 shell 脚本提供支持。enumeration - 简单的枚举代码生成。fzf - 命令行模糊查找器gich - 用 Go 编写的跨平台实用程序gister - 从命令行管理你的 github gistgit-time-metric - 简单、无缝、轻量级的 Git 时间跟踪gmail2go - 简单的 gmail 多帐户 cli 邮件检查器go-amqp-sniffer -侦听AMQP 交换并将消息流式传输到 mongoimport 兼容的 JSON 中的标准输出gocreate - 从模板创建文件的命令行实用程序。godocdoc - 启动 godoc 并在浏览器中将其打开到当前目录中的项目。gojson - 用于操作 JSON 以用于开发 Go 代码的命令行工具。golor - golor 是一个用于 golang 源代码着色的命令行工具GoNote - 命令行 SimpleNote 客户端。gopass - 具有 git 同步功能的命令行密码管理器GoPasswordCreator - 创建随机密码的小工具Grozilla - 具有恢复功能的文件下载器实用程序。JayDiff - 用 Go 编写的 JSON diff 实用程序。jsonpp - 一个快速的命令行 JSON 漂亮的打印机。lsp - 一种更人性化的替代方案lsltst - 在您的终端中查看您选择的最新消息passhash - 用于创建安全密码哈希的命令行实用程序passman - 命令行密码管理器pdfcpu - PDF 处理器。pjs - 漂亮的打印和快速搜索 JSON 数据结构。project - 非常简单的 CLI 工具,用于从样板模板设置新项目。redis-view - 树状工具可帮助您探索 redis 服务器中的数据结构remote-torrent - 一个简单的工具,用于远程下载 Torrent 并通过 HTTP 全速检索文件,而不受 ISP Torrent 限制restic - 一个快速、高效和安全的备份程序runtemplate - 一个非常简单的用于执行 Go 模板的命令行工具,对于与go generate.runtemplate - 用于执行 Go 模板以支持为您的类型生成 Go 代码的简单工具。sift - 快速而强大的开源替代品greptecla - 命令行编辑库Terracognita - 从现有的云提供商(反向 Terraform)读取并生成您的基础设施作为 Terraform 配置上的代码。wlog - 一个简单的日志记录界面,支持跨平台颜色和并发。wmenu - 一个易于使用的 cli 应用程序菜单结构,提示用户做出选择。mani - 帮助您管理多个存储库的 CLI 工具

压缩

brotli - Brotli 算法的绑定。compress - 更快地替换 gzip、zip、zlib、deflate。dgolzo - LZO 绑定。go-lzo - Pure-Go LZO 压缩器/解压器,忠实地翻译了 C 代码库。dictzip - 随机访问dictzip格式文件的读写器。fast-archiver - 对大量小文件具有快速性能的替代归档工具。gbacomp - 用于(解)压缩与 GBA BIOS 兼容的数据的 Go 库。go-lz4 - LZ4 无损压缩算法的端口。go-lzss - 在 Go 中实现 LZSS 压缩算法。go-sevenzip - 包 Sevenzip 实现对 7-zip 档案的访问(包装 LZMA SDK 的 C 接口)。go-zip - C 库 libzip 的包装器,提供修改现有 ZIP 档案的能力。lz4 - 高性能,并发 LZ4 实现。lzma - Go 的压缩/lzma 包。pgzip - 多核 gzip,与标准库兼容。ppmd-go - LZMA SDK 库的 Golang 绑定。(仅绑定 PPMD)s2 - 高吞吐量 Snappy 扩展。snappy-go - 谷歌在 Go 中的 Snappy 压缩算法。yenc - yenc 解码器包。zappy - 包 zappy 实现了 zappy 基于块的压缩格式。它旨在结合良好的速度和合理的压缩。zstd - Pure Go Zstandard 压缩/解压缩。

并发和 Goroutines

grpool - 轻量级 Goroutine 池。pool - Go 消费者 goroutine 池,可轻松处理 goroutine + 节省时间。tunny - 一个 goroutine 池。worker - 一个简单轻量级的并发作业框架。

配置文件解析器

awsenv - 一个小二进制文件,用于为配置文件加载 Amazon (AWS) 环境变量code.soquee.net/env— 从.env或类似文件中加载环境变量,或从任何文件中加载环境变量io.Reader并填充本地环境。confl - nginx 配置语法,宽松,编码/解码,自定义编组configor - 支持 YAML、JSON、TOML、Shell 环境的 Golang 配置工具fig - 用于从文件和环境变量(带有验证和默认值)读取配置的微型库。flagfile - 向标准库标志包添加解析和序列化支持(添加 --flagfile 选项)gcfg - 将 INI 风格的配置文件读入 Go 结构体;支持用户定义的类型和小节globalconf - 毫不费力地坚持并从 ini 配置文件中读取标志值goconf - 配置文件解析器goconfig - 基于结构自省的配置,支持环境变量、命令行参数等。hjson - 人类 JSON,人类的配置文件格式。宽松的语法,更少的错误,更多的评论。hocon - 使用 HOCON(一种人性化的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。jsonconfig - 具有注释支持的 JSON 配置文件解析器koanf - 轻量级,可扩展的库,用于在 Go 应用程序中读取配置。内置对 JSON、TOML、YAML、env、命令行的支持。lib/ini - 包 ini 实现了 Git 配置文件语法定义的 INI 文本格式的读写。lib/ssh/config - 包配置提供 ssh_config(5) 解析器和 getter。properties - 用于读取和写入属性文件的库scribeconf - Facebook Scribe 服务器配置文件解析器汤姆:go-toml-config - 基于 TOML 的 Go 配置go-toml - TOML 语言的 Go 库gp-config - 具有基本和反射 API 的 TOML 语法子集toml-go - 一个易于使用的 Toml 格式的 Go 解析器toml - 用于 Go 反射的 TOML 解析器tom-toml - 用于 Go 的 TOML 解析器,支持注释/格式化程序/应用。

uConfig - 一种无偏见、可扩展和可插入的配置管理。支持 YAML、TOML、JSON、Env vars、K8s DAPI 等。viper - 一个完整的配置解决方案,支持 YAML、TOML 和 JSON 以及与命令行标志的集成亚姆:yaml - 由 Canonical 提供的对 Go 语言的 YAML 支持goyaml - LibYAML to Go 的一个端口go-yaml - 对 Go 语言的 YAML 支持

控制台用户界面

ansi - 轻松创建 ansi 转义代码字符串和闭包以格式化、着色控制台输出ansiterm - pkg 驱动响应 ANSI 转义序列的纯文本控制台cons - 用于构建交互式控制台工具的简单包。gnureadline - GNU Readline 绑定go-ansiout - 另一个用于命令行应用程序的 ANSI 转义码序列工具。gockel - 文本终端的 Twitter 客户端gocui - 旨在创建控制台用户界面的极简库gocurse - NCurses 的绑定gocurses - NCurses 包装器go-ibgetkey - “热键”类型的用户输入包,用于处理命令行应用程序中的击键。go.linenoise - Linenoise 绑定(简单易读的提示,可选历史记录,可选选项卡完成)goncurses - 一个 ncurses 库,包括表单、菜单和面板扩展gopass - 允许输入密码而不回显到屏幕go-pullbarz - 类似于 DOS 时代 Lotus 123 中的花式“灯条”菜单。依赖于 go-ibgetkey 和 go-ansiout。go.sgr - 终端/控制台颜色和文本装饰(粗体、下划线等)。go-stfl - STFL的薄包装,基于 ncurses 的小部件工具包goterminal - 一个 go 库,可让您在终端上编写然后重新编写文本,以更新进度。它也适用于 Windows!go-web-shell - 远程 web shell,实现 net/http 服务器。igo - 一个简单的交互式 Go 解释器,基于 exp / eval 构建,具有一些 readline 改进oh - 用 Go 编写的 Unix shellpty - 获取伪终端设备readline - GNU-Readline 类库的纯 go 实现tcell - Tcell 是一个备用终端包,在某些方面类似于 termbox,但在其他方面更好。termbox-go - ncurses 的极简替代品,用于构建基于终端的用户界面termios - 终端支持termon - Go 的简单终端控制界面。uilive - uilive 是一个实时更新终端输出的 Go 库。uiprogress - 在终端应用程序中呈现进度条的库。uitable - 使用表格数据提高终端应用程序可读性的库。yandex-weather-cli - Yandex 天气服务的命令行界面

持续集成

goveralls - 集成Coveralls.io连续代码覆盖率跟踪系统。工作服- 用于工作服等工具的多包 go 项目coverprofile

加密货币

Skycoin - Skycoin 是一种用 Go 编写的下一代加密货币。Skycoin 并非旨在为比特币添加功能,而是通过提高简单性、安全性和去除所有不必要的东西来改进比特币

密码学

BLAKE2b - BLAKE2b 哈希函数的 Go 实现cryptogo - 一些有用的与密码学相关的函数,包括填充(PKCS7、X.923)、带有随机盐和 IV 的 PBEcryptoPadding - 在 Go 中实现的块填充方案dkeyczar - Google'e Keyczar 加密库的 Go 端口dkrcrypt - 韩文分组密码:SEED 和 HIGHTdskipjack - SKIPJACK 加密算法的 Go 实现go-cs - 并发 ssh 客户端。go-ed25519 - Floodberry 的 ed25519-donna 的 CGO 绑定。快速批量验证。go-hc128 - HC-128 的 Go 实现,一种 eSTREAM 流密码go-jose - JOSE 标准的 Go 实现go- lioness - 使用 Chacha20 和 Blake2b 的雌狮宽块密码go-minilock - minilock 文件加密系统的 Go 实现。GoSkein - Go 的 Skein 哈希和 Threefisch 加密的实现go-sphinxmixcrypto - Sphinx 混合网络加密数据包格式操作keccak - keccak (SHA-3) 实现ketama.go - libketama 风格的一致性哈希kindi - 加密命令行工具openssl - 用于 go 的 openssl 绑定otrcat - 使用 Off-The-Record 协议进行通信的通用命令行工具scrypt - Colin Percival 的 scrypt 密钥推导函数的 Go 实现secureio - 易于使用的 XChaCha20 加密包装器,用于io.ReadWriteCloser使用 ECDH 密钥交换算法、ED25519 签名和 Blake3+Poly1305 校验和/消息身份验证。也是一个多路复用器。simpleaes - AES 加密变得简单siphash - SipHash:一个快速的短输入伪随机函数SRP - SRP:安全远程密码 - 在 Go 中的实现ssh-vault - 使用 ssh 密钥加密/解密themis - 用于保护敏感数据的多平台高级加密库:具有前向保密性的安全消息传递,安全数据存储 (AES256GCM);适合构建端到端的加密应用程序Tiger - Tiger 加密哈希算法whirlpool - 漩涡加密散列算法

数据处理

automi - 在 Go 频道上编写流程和集成流Gleam - 快速、高效且可扩展的分布式 map/reduce 系统,DAG 执行,在内存或磁盘上,独立或分布式运行。Glow - Glow 是一个易于使用的分布式计算系统,类似于 Hadoop Map Reduce、Spark、Flink、Storm。gostatsd - Statsd 服务器和库。Heka - 实时数据和日志文件处理引擎。Kapacitor - 处理、监控和警报时间序列数据的框架。parapipe - FIFO 管道,它在每个阶段并行执行,同时保持消息和结果的顺序pipe - golang 中支持的几种函数式编程(Map/Reduce/Filter)proto - 使用通道作为结果流的 Go 的 Map/Reduce/Filter 等。棘轮- 用于在 Go 中执行数据管道 / ETL 任务的库。推荐- 推荐引擎。rrd - rrdtool 的绑定。XConv - 在类型(基本类型、结构、数组、切片、映射等)之间转换任何值

数据结构

收藏

集合- 几种常见的数据结构data-structures -数据结构的集合(ArrayList、SortedList、Set、AVL Tree、Immutable AVL Tree、B+Tree、Ternary Search Trie、Hash Table(Separate Chaining)、Linear Hash Table)ps - 持久化数据结构Tideland golib - 收藏图书馆

哈希表

bimap - 一个简单的双向映射实现gohash - 实现集合和映射的简单链表哈希表go-maps - Go 映射到接口

列表

fs2/mmlist - 内存映射列表。GoArrayList - GoArrayList 是 Java 类 ArrayList 的 Go 语言替代品,具有几乎所有功能。goskiplist - Go 中的跳过列表实现。itreap - 一个不可变的有序列表,内部是一个 treap。ListDict - 用于 Go 的 Python 列表和字典skip - 快速位置可寻址的有序映射和多映射。Skiplist - 快速可索引的有序多图。skiplist - 跳过列表实现。高度可定制且易于使用。skiplist - 从 Redis 的 Sorted Sets 移植的 Skiplist 数据结构。stackgo - 基于切片的快速堆栈实现。

队列

fifo_queue - 简单的 FIFO 队列figo - 具有可选线程安全版本的简单 fifo 队列。go.fifo - 简单的自动调整线程安全的 fifo 队列。gopqueue - 容器/堆顶部的优先队列go-priority-queue - 具有传统优先级队列接口的易于使用的堆实现。golibs/stack - 一个 LIFO 和 ringbuffer 包gringo - 使用精简的无锁环缓冲区实现的极简队列heap - 一种通用的堆包,无需将元素interface{}来回转换。queued - 一个简单的网络队列守护进程queue - 基于 Redis 的队列管理器

图表

图- 基本图算法库图- 各种树、图和网络算法的实现groph - 一个纯 Go 图形和算法库

disjoint -不相交集(具有路径压缩的联合查找算法)golang-set - Go 的完整线程安全和不安全集实现。goset - 一个简单的、线程安全的 Set 实现set - 为 Go 设置数据结构

树木

b - 包 b 实现了带有延迟页面拆分/连接和 O(1) 枚举的 B+树。通过简单的文本替换,可以轻松生成专门用于用户定义的键和值类型的 B+树的源代码。btree - 包 btree 实现了具有固定大小键的持久 B 树, API 包装器(vk.com 俄罗斯社交网络)WUID - 极快的唯一编号生成器,比 UUID 快 10-135 倍。Wukong - 用 Go 编写的高度可扩展的全文搜索引擎。xdg - XDG 基本目录规范和 XDG 用户目录的 Go 实现。xplor - p9p acme 的文件树浏览器yubigo - Yubikey OTP 验证和身份验证 API 客户端。

音乐

gmask - 为 Csound 改编 Cmask 实用程序go-csnd6 - 绑定到 Csound6 APIgo-csperfthread - 绑定到 Csound6 API 的 CsoundPerformanceThread 辅助类go-libshout - 绑定 libshoutgompd - MPD(音乐播放器守护程序)的客户端界面launchpad - Novation Launchpad 的 Go 客户端portmidi - 绑定 libportmidi

联网

域名系统

bitz - BitMessage 客户端节点和库dingo - Go 中的 DNS 客户端,通过 HTTPS 支持 Google DNSdns - Go 中的客户端和服务器实现dns - Go 中的 DNS 库dnsimple - DNSimple API 的接口dnss - DNS 安全代理,支持 DNS over HTTPS 和 GRPCdomainerator - 将单词列表和后缀 / TLD 组合到域名中并检查它们是否已注册的命令行工具。dyndnscd - 一个可配置的 dyndns 客户端GeoDNS - 地理感知权威 DNS 服务器grong - 小型权威 DNS 名称服务器hostsfile - /etc/hostsfile 反向查找 IP => 名称lib/dns - 客户端或服务器的 DNS 库,支持 UDP、TCP 和 DNS over HTTPSmdns - Go 的多播 DNS 库rescached - DNS 解析器缓存守护进程

FTP

ftp4go - Go 的 FTP 客户端,作为标准 Python FTP 客户端库的端口启动ftp - 包 ftp 提供了 RFC 959 中定义的最小 FTP 客户端ftps - FTPS 协议的实现goftp - FTP 客户端库

HTTP

apiproxy - 具有可配置缓存超时的 HTTP/REST API 代理繁荣- HTTP(s)基准测试工具,Apache Benchmark替代品Ddosify - 用 Golang 编写的高性能负载测试工具eventsource - 服务器发送的 net/http 服务器事件。fasthttp - Go 的快速 HTTP 包gbench - 受 Apache Benchmark 和 Siege 启发的 HTTP(s) 负载测试和基准测试工具。gobench - HTTP/HTTPS 负载测试和基准测试工具go-curl - 支持 go func 回调的 libcurl 绑定goproxy - 一个可编程的 HTTP 代理。gostax - 用于 XML (StAX) 的流 APIhandlers - 有用的 HTTP 中间件的集合。HTTPLab - HTTPLabs 可让您检查 HTTP 请求并伪造响应。httpmock - 轻松模拟来自外部资源的 HTTP 响应httptail - 工具将 stdout/stderr 推送到 http 分块sling - 用于创建和发送 API 请求的 Go HTTP 客户端库。压力- 替换 ApacheBench(ab),支持事务请求,支持命令行和包引用到 HTTP 压力测试工具。

IMAP

go-imap - 客户端和服务器的 IMAP 库。go-imap - IMAP 客户端库go-imap - IMAP4rev1 客户端的实现,如 RFC 3501 中所述

即时通讯

gobir - 具有通道管理、可见支持和 go 文档查询功能的可扩展 IRC 机器人goexmpp - XMPP 客户端实现goirc - 基于事件的有状态 IRC 客户端框架go-irc - 简单的 IRC 客户端库gorobot - 模块化 IRC 机器人go-xmpp - XMPP 客户端库hanu - 编写 Slack 机器人的框架ircflu - 支持命令、脚本和网络钩子的 IRC 机器人irc.go - 去 IRC 机器人框架mellium.im/xmpp 一个低级 XMPP 客户端和服务器库,专注于良好的文档和干净、可用的 APISirius - [链接已断开] 用 Go 编写的快速且超轻量级的聊天服务器xmpp-client - 具有 OTR(非记录)支持的 XMPP 客户端

NNTP

go-nntp - 用于 go 的 NNTP 客户端和服务器库

协议缓冲区

gogoprotobuf - Protocol Buffers 的另一个 Go 实现,但带有扩展和代码生成插件。golang_protobuf_extensions - 支持流消息编码和解码的协议缓冲区扩展。goprotobuf - Google 协议缓冲区的 Go 实现protorpc - 用于 Go 和 C++ 的 Google Protocol Buffers RPC

同步

replican-sync - Go 中的 rsync 算法实现Rsync - Rsync 算法作为 Go 库

远程登录

telnet - 包 telnet 为 Go 编程语言提供 TELNET 和 TELNETS 客户端和服务器实现,其风格类似于“net/http”库(这是 Go 标准库的一部分),包括对“中间件”的支持;TELNETS 是安全的 TELNET,具有基于安全 TLS(或 SSL)连接的 TELNET 协议。telnet - 与 Telnet 连接交互的简单界面telnets - TELNETS(安全 TELNET)协议的客户端。

虚拟网络

glibvnc - 使用 CGO 为 libvnc 库进行包装。

网络套接字

Gorilla WebSocket - WebSocket 协议实现lib/websocket - 用于编写 websocket 客户端和服务器的库(使用 epoll)websocketd - 将 STDIN/STDOUT 程序转换为 WebSockets 服务的 HTTP 服务器。还处理 HTML 和 CGI。ws-cli - WebSocket 命令行客户端wst - 一个简单的 WebSocket 测试器

零MQ

goczmq - CZMQv3 接口的包装器 -博客文章gozmq - 0mq (zeromq/zmq) 的绑定zmq2 - ZeroMQ (zmq, 0MQ) 版本 2 的 Go 接口。zmq3 - ZeroMQ (zmq, 0MQ) 版本 3 的 Go 接口。zmq4 - ZeroMQ (zmq, 0MQ) 版本 4 的 Go 接口。

杂项网络

betwixt - Betwixt 实现了用于设备管理和监控的 OMA 轻量级 M2M(LWM2M)协议canopus - CoAP 客户端/服务器实现 (RFC 7252)chunkedreader - 一个轻量级的库,用于从 TCP 流中读取连续的固定大小的消息。circle - 转到libcircle分布式队列 API 的接口createdend-go - Monitor jsdeferred/go-galib - 遗传算法库go-intset - 一个用于处理有界整数集的库,包括多个替代实现go-parse - 一个类似 Parsec 的解析库go-slices - 用于在 Go 中操作切片的辅助函数,就像官方的“strings”包提供的那样sh - 一个 shell/bash 解析器和格式化程序Shuffle - 在 Go 中实现 Fisher Yates shuffle(或 Knuth shuffle)。

资源嵌入

fileb0x - 将文件嵌入到 go 中的简单工具,专注于“定制”和易用性。go-bindata - 将任何文件转换为可管理的 Go 源代码的包。go-resources - 嵌入 Go 的非花哨资源。go.rice - go.rice 是一个 Go 包,它使处理 html、js、css、图像和模板等资源变得非常容易。植入- 植入允许从一系列目录(递归)嵌入静态资源。statics - 将静态资源嵌入到 go 文件中以进行单个二进制编译 + 与 http.FileSystem + 符号链接一起使用。

RPC

gowsdl - WSDL 代码生成gRPC - 支持 Go 的 Google 多语言 RPC 框架

扫描器和解析器生成器

ebnf2y - 用于将 EBNF 语法转换为 yacc 兼容的骨架 .y 文件的实用程序。flexgo - 可以生成 Go 代码的 flex 版本。fsm - FSM(NFA,DFA)实用程序。gocc - Go 编译器编译器golex - Lex/flex 类快速(DFA)扫描仪生成器。gopp - 去解析器解析器goyacc -Goyacc 是生成 Go 解析器的 yacc 版本。lexmachine - Golang词法分析框架Ragel - 状态机编译器y - 包 y 将 .y (yacc) 源文件转换为适合解析器生成器的数据。yy - yacc 到 yacc 编译器。

安全

acme - ACME 证书获取工具acra - SQL 数据库保护套件:强选择性加密、SQL 注入预防、入侵检测系统casbin - 支持 MAC、RBAC、ABAC 等访问控制模型的授权库docker-slim - 容器安全和优化gryffin - 雅虎的大型安全扫描仪!hyperfox - 用于代理和记录 LAN 上 HTTP 和 HTTPs 通信的安全工具lego - 让我们加密客户端和 ACME 库webseclab - Web 安全测试用例的示例集和构建新测试用例的工具包

仿真建模

Godes - 用于构建离散事件模拟模型的库

排序

冒泡排序-冒泡排序算法的最小实现鸡尾酒调酒器排序-鸡尾酒调酒器排序算法的最小实现funnelsort - 懒惰漏斗排序 - 一种缓存遗忘的排序算法Sortutil - Go 的嵌套、不区分大小写和反向排序。sortutil - Go 标准“sort”包的补充工具tarjan - 基于 Tarjan 算法的图循环检测功能timsort - 快速、稳定的排序,使用外部比较器或 sort.Interface

源代码管理

Gitfile - 用于安装 git repos 的轻量级包管理器go-deps - 分析并递归安装 Go 包 deps(库功能类似于go get)go-diff - go 语言的 diff 命令显示两个 go 源文件的语义差异。gogitver - 将 git 标签(版本字符串)嵌入到您的应用程序中go-many-git - 跨多个 git 存储库管理和运行命令go-pkgs - 在所有 GOPATH 树中查找所有匹配的包(库功能类似于go list all)go-vcs - 克隆并检查 VCS 存储库的版本(git 和 hg 支持)go-vcsurl - 宽松的 VCS 存储库 URL 解析库hggofmt - 带有钩子的 Mercurial/hg 扩展nut - Nut 是一种管理版本化 Go 源代码包的工具,称为“nuts”。vcstool - VCS 抽象工具

贮存

libStorage - 一个开源的、平台无关的、存储配置和编排框架、模型和 APIMinio - 与 Amazon S3 API 兼容的对象存储OpenEBS - 用于容器的容器化、开源块存储,紧密集成到 K8S 和其他环境中,并基于分布式块存储和存储控制容器化storage - Golang 面向应用的统一存储层

字符串和文本

allot - CLI 工具和机器人的占位符和通配符文本解析asciidoctor-go - 用于解析和转换 asciidoc 标记语言的本地 Go 模块。awk - Go 中简单的 AWK 风格的文本处理binarydist - 二进制差异和补丁黑色星期五- 降价处理器代号生成器- 用于命名软件版本的代号生成器columnize - 将切片或数组格式化为对齐的列csvplus -使用流畅的界面、惰性流操作、索引和连接扩展标准 Go编码 / csv包。csvutil - 一个重型 CSV 读写库。dgohash - 字符串散列函数的集合,包括 Murmur3 等柔雅系列-一个简单的CSS解析器和衬里在Go。dsv - 用于处理定界分隔值 (DSV) 的库。通量- golang 中的流畅正则表达式frontmatter - 用于检测和解码各种内容前端格式的 Go 库。genex - 正则表达式的扩展gettext-go - GNU 的 gettext 支持,用纯 Go 编写gettext - gettext 的Golang 绑定;功能完成,cgogoagrep - 使用预计算的快速模糊字符串匹配go-colortext - 更改控制台中文本和背景的颜色,适用于 Windows 和其他系统。go-guess - 为 libguess 封装goini - 解析 INI 文件的 go 库golorem - lorem ipsum 生成器go-migemo - go 的 migemo 扩展(日语增量文本搜索)Go-ngram用于 Go 的 N-gram 索引goregen - 用于从正则表达式生成随机字符串的 Go 库。goskirt - Go 的Upskirt markdown 库绑定gosphinx - Sphinx 独立全文搜索引擎的 Go 客户端界面govalidator - 字符串验证器和消毒器包gpKMP - 使用 Knuth Morris Pratt 算法在 Go 中进行字符串匹配韩文-方便的工具来操作韩文字符html2text - Golang HTML 到文本转换库实习生- 将字符串映射到符号以进行恒定时间比较kasia.go - HTML 和其他文本文档的模板系统kview - kasia.go 模板的简单包装器。它有助于模块化网站的内容Liquid - Shopify Liquid 模板的完整实现logparse - 最常见日志格式的解析器NTemplate - 嵌套模板parse - 使用反射来定义语法的 PEG 解析器peg - 解析表达式语法分析器鸽子- 用于 Go 的解析表达式语法 (PEG) 解析器生成器复数- 无需大惊小怪的复数形式,用于格式化可数和连续范围的值。polyglot - Go 的字符串翻译实用程序Pretty.go - go 值的漂亮打印raymond - Go 中完整的车把实现。rubex - 一个简单的正则表达式库,支持 Ruby 的正则表达式语法。它比正则表达式快。sanitize - 包 sanitize 提供了清理 html 和文本的功能。扫描器- 一种解析原始类型的文本扫描器,类似于 Java 的segment - Norvig 递归分词算法的实现sprig - Go 模板的模板函数。strftime - strftime 实现strit - 包 strit 引入了一种新类型的字符串迭代器,以及许多迭代器构造函数、包装器和组合器。strogonoff - Go 速记strutil - 用于计算字符串相似度和其他字符串实用函数的 Golang 指标。strutil - 包 strutil 收集补充标准字符串包的 utils。text - 文本段落换行和格式设置Tideland golib - 用于统计分析的 Stringex 包TySug - 关于键盘布局的替代建议。useragent - 用户代理字符串解析器xurls - 从文本中提取 url

测试

assert - 断言进行测试。assert - 方便的断言包。assert - 与本机 go 测试一起使用的基本断言库,带有用于自定义断言的构建块assert - 类似 JUnit 的断言,带有极好的错误消息biff - 分叉测试框架,BDD 兼容。charlatan - 为测试生成假接口实现的工具。code.soquee.net/testlog Alog.Logger代理 testing.T 上的 Log 函数,以便日志记录仅显示在失败的测试上,并在测试下分组。conex - 用于集成测试的 Docker 容器counterfeiter - 用于生成自包含和类型安全模拟的工具。downtest - 自动为 Go 包的所有已知下游消费者运行测试。ginkgo - Go 的 BDD 测试框架。go2xunit - 将“go test -v”输出转换为xunit XML 输出go-assert - 测试 Go 的实用程序。goautotest - 在进行代码更改时自动运行单元测试goblin - 最小且美观的 Go 测试框架Gocheck - 包含套件、夹具、断言、良好的错误报告等的丰富测试框架GoConvey - 基于浏览器的报告,使用go test,支持传统的 Go 测试,干净的 DSLgocov - 代码覆盖率测试/分析工具gomega - 银杏的首选匹配库。gomock - Go 的模拟框架。GoSpec - BDD 框架gospecify - 另一个 BDD 框架go-stat - Go 的高性能检测/分析go-tap - Go 中的 TAP(测试任何协议)解析器go-testdeep - 极其灵活的深度比较,扩展了测试包go-test-report - 捕获 go test 输出并将其解析为一个独立的 HTML 文件。gotestsum - 具有可定制和彩色输出的测试运行器gotest.tools - 一组用于编写可读测试的包gounit - 用于 Go 的xunitGSpec -富有表现力、可靠、并发和可扩展的Go 测试框架,可以有效地组织和验证软件的思维模型。httpexpect - 简洁、声明式且易于使用的端到端 HTTP 和 REST API 测试make.go.mock - 为 Go 接口和函数生成类型安全的模拟。mspec - BDD 框架,可让您首先使用自然 BDD 语言对代码进行存根和规范。muxy - 模拟真实世界的分布式系统故障。Nitro - 一个快速简单的 Go 分析器Pegomock - 基于golang/mock 的模拟框架,但使用与Mockito密切相关的 DSL 。具有集成收缩功能的基于属性的快速测试库terst - 一个简洁、易于使用的 Go 测试库test2doc - 从您的单元测试中为您的 go 单元生成文档。testfixtures - Rails 之类的测试装置,用于测试数据库驱动的应用程序。testflight - Go 中的无痛 http 测试Testify - 一组包,提供了许多工具来证明您的代码会按照您的预期运行。ut - 没有魔法的很棒的模拟。

转译器

c4go - 将 C 代码转换为 Go 代码。f4go - 将 Fortran 代码转换为 Go 代码。

验证

验证器- Go Struct 和 Field 验证,包括 Cross Field、Cross Struct、Map、Slice 和 Array 潜水验证- 简单的独立结构/键值验证

欢迎大家关注和探讨一下!!!