Go Wiki:项目
索引和搜索引擎
这些网站提供 Go 包的索引和搜索引擎
- pkg.go.dev - 任何 Go 开源包的文档浏览器。
- godocs.io - 一个简单的包文档浏览器(gddo 的分支,gddo 之前为现已停用的 godoc.org 提供软件)
- go-hardware - 用于在非标准硬件上使用 Go 的精选资源列表。
- go-patterns - Go 中常用的模式和习语。
- Go 代码质量报告 - 任何 Go 项目的代码质量摘要。
- Sourcegraph - 源代码索引、分析和搜索。
- Codeseek.com - 拥有大量 Go 博客的自定义搜索引擎。
已失效项目
如果您在此列表中找到已失效或损坏的项目,请将其标记为已失效,或在 #go-nuts IRC 频道中提及。
目录
- API 服务和工具
- 人工智能
- 天文学
- 构建工具
- 缓存
- 云计算
- 命令行选项解析器
- 命令行工具
- 压缩
- 并发和 Goroutines
- 配置文件解析器
- 控制台用户界面
- 持续集成
- 加密货币
- 密码学
- 数据库
- 数据处理
- 数据结构
- 日期
- 开发工具
- 分布式/网格计算
- 文档
- 编辑器
- 电子邮件
- 编码和字符集
- 错误处理
- 文件系统
- 游戏
- GIS
- 图形和音频
- GUI 和窗口小部件工具包
- 硬件
- 语言和语言学
- 日志记录和监控
- 机器学习和 AI
- 数学
- 微服务
- 其他
- 音乐
- 网络
- DNS
- FTP
- HTTP
- IMAP
- 即时消息
- NNTP
- Protocol Buffers
- rsync
- Telnet
- VNC
- WebSockets
- ZeroMQ
- 其他网络
- 操作系统接口
- 选项类型
- 其他随机玩具、实验和示例代码
- P2P 和文件共享
- 编程
- 资源嵌入
- RPC
- 扫描器和解析器生成器
- 安全
- 仿真建模
- 排序
- 源代码管理
- 存储
- 字符串和文本
- 测试
- 转译器
- Unix
- 未分类
- 验证
- 版本控制
- 虚拟机和语言
- Web 应用程序
- Web 库
- Windows
API 服务和工具
GraphQL
- GraphJin - 为 Postgres 提供即时 GraphQL API。无需代码,将 GraphQL 编译为 SQL。
MTProto
- MTProto - 完全用纯 Go 编写的 Telegram API 原生实现。
人工智能
- langchaingo - LangChainGo 是一个用于开发由语言模型驱动的应用程序的框架。
- go-openai - 用于 OpenAI API 的 Go 绑定。
天文学
- go-fits - FITS(灵活图像传输系统)格式图像和数据读取器
- astrogo/fitsio - 纯 Go FITS(灵活图像传输系统)格式图像和数据读取器/写入器
- cosmo - 用于常见宇宙学(弗里德曼-勒梅特-罗伯逊-沃克度量)的宇宙距离和时间计算。
- gonova - libnova 的包装器 - 天体力学、天体测量和天体动力学库
- meeus - Jean Meeus 编著的“天文算法”的实现
- novas - 与海军天文台矢量天体测量软件 (NOVAS) 的接口
- utdfgo - 航天器 UTDF 数据包读取器和解码器
构建工具
- beku - 用于管理用户环境(GOPATH 或供应商目录)中的包的库和程序
- colorgo - 为 go 构建输出添加颜色
- dogo - 监控源文件的更改并自动编译和运行(重新启动)
- fileembed-go - 这是一项命令行实用程序,用于获取多个源文件并将它们嵌入到 Go 包中
- gb - Go 的另一个构建工具,重点关注多包项目
- gg - 用于管理多个 Go 项目的微型环境/make 工具。
- GG - Go 中的 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 工具 - 一组构建器,使在 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 - 缓存和缓存填充库,旨在替代许多情况下的 memcached
- libmemcache - 使用 memcache 协议的快速客户端和服务器库
- memcached-bench - 用于 memcache 服务器的基准测试工具
- memcached - 快速的 memcache 服务器,支持持久性和超过可用 RAM 的缓存大小
- memcache - go memcached 客户端,从 YouTube Vitess 中分叉而来
- rend - 管理数据分块和 L1/L2 缓存的 memcached 代理
- YBC 绑定 - 为 YBC 库提供 API 以实现快速进程内 Blob 缓存的绑定
- g2cache - 一种协调的本地和外部两级缓存方案
云计算
- aws-sdk-go - 用于 Go 编程语言的 AWS SDK。
- Docker - Linux 容器运行时。由 dotCloud 开发。
- Enduro/X ASG 用于 Go 的应用程序服务器。为分布式事务处理提供应用程序服务器和中间件功能。支持基于微服务的应用程序架构。由 ATR Baltic 开发。
- flamingo - 轻量级云实例上下文。
- gocircuit - 一个分布式操作系统,它位于数据中心部署中多台机器上的传统操作系统之上。它提供了一个干净且统一的抽象,将整个硬件集群视为单个、整体的计算资源。由 Tumblr 开发。
- gosync - 一个用于将数据同步到 S3 以及从 S3 同步数据的包。
- juju - 编排工具(部署、配置和生命周期管理),由 Canonical 开发。
- Kubernetes - 来自 Google 的容器集群管理器。
- LXD 基于 liblxc 的守护进程,提供 REST API 来管理容器
- mgmt - 新一代配置管理工具(并行、事件驱动、分布式系统),由 @purpleidea (红帽员工)和 mgmt 社区开发。
- rclone - “云存储的 rsync” - Google Drive、Amazon Drive、S3、Dropbox、Backblaze B2、One Drive、Swift、Hubic、Cloudfiles、Google Cloud Storage、Yandex Files
- ShipBuilder - ShipBuilder 是一个极简主义的开源平台即服务,由 Jay Taylor 开发。
- swift - Go 语言与 Swift / Openstack 对象存储 / Rackspace 云文件接口
- Tsuru - Tsuru 是一个开源的多语言云计算平台即服务(PaaS),由 Globo.com 开发。
命令行选项解析器
- argcfg - 使用反射从命令行参数填充结构体中的字段
- autoflags - 从配置结构体填充 Go 命令行应用程序标志
- carapace - 用于 spf13/cobra 的命令参数完成生成器。
- charli - 小型、过程化、零反射 CLI 工具包,带帮助和完成。
- 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 的 flag 包的直接替换,实现了 POSIX/GNU 风格的 –flags。
- subcommands - 一个并发、单元测试的子命令库
- uggo - 另一个选项解析器,提供类似于 gnu 的选项解析。它包装(嵌入)flagset。它还提供了基本的管道检测(类似 ls 的命令在被管道传输时行为会有所不同)。
- xflags - Go 的表达性标志
- writ - 一个灵活的选项解析器,具有全面的测试覆盖率。它旨在“正常工作”并保持隐蔽。
命令行工具
- amqp-message-remover - 通过 regexp 模式从 AMQP 队列中删除不需要的消息
- Arduino-cli - Arduino CLI 是一个一体化解决方案,它提供构建器、板卡/库管理器、上传器、发现和使用任何 Arduino 兼容板卡和平台所需的许多其他工具。
- awless - Amazon Web Services (AWS) 的强大命令行界面。
- boilr - 一个快速创建项目(从样板模板)的 CLI 工具。
- carapace-bin - 多 Shell 多命令参数完成器。
- carapace-spec - 使用规范文件定义简单的完成。
- comb-go - 使用 Golang 实现的用于管理 CloudComb 资源的 CLI 工具。
- coshell - GNU ‘parallel’ 的直接替换。
- dasel - 使用命令行中的选择器查询和更新数据结构。类似于 jq / yq,但支持 JSON、YAML、TOML 和 XML,无需任何运行时依赖项。
- DevTodo2 - 一个小型命令行项目任务列表管理器。
- dsio - 用于 Google Cloud Datastore 的命令行工具。
- efs2 - 一个简单易用的配置管理工具,由愚蠢的 shell 脚本提供支持。
- enumeration - 简单的枚举代码生成。
- fzf - 一个命令行模糊查找器
- gich - 一个用 Go 编写的跨平台实用程序
- gister - 从命令行管理您的 github gists
- git-time-metric - 为 Git 提供简单、无缝、轻量级的计时跟踪
- gmail2go - 简单 Gmail 多账户 CLI 邮件检查器
- go-amqp-sniffer - 从 AMQP 交换机监听并以 mongoimport 兼容的 JSON 格式将消息流式传输到标准输出
- gocreate - 从模板创建文件的命令行实用程序。
- godocdoc - 启动 godoc 并将其在浏览器中打开到当前目录中的项目。
- gojson - 用于操作 JSON 的命令行工具,用于开发 Go 代码。
- golor - golor 是一个用于 Go 语言源代码着色的命令行工具
- GoNote - 命令行 SimpleNote 客户端。
- gopass - 具有 git 同步功能的命令行密码管理器
- GoPasswordCreator - 一个小型工具,用于创建随机密码
- Grozilla - 具有恢复功能的文件下载实用程序。
- JayDiff - 用 Go 编写的 JSON diff 实用程序。
- jsonpp - 一个快速的命令行 JSON 美化打印机。
- lsp - 比
ls
更人性化的替代品 - ltst - 在您的终端中查看您选择的最新新闻
- passhash - 用于创建安全密码哈希的命令行实用程序
- passman - 一个命令行密码管理器
- pdfcpu - PDF 处理器。
- pjs - 以快速的方式美化打印并搜索 JSON 数据结构。
- project - 一个非常简单的 CLI 工具,用于从样板模板设置新项目。
- redis-view - 一款类似树状结构的工具,帮助您探索 Redis 服务器中的数据结构
- remote-torrent - 一款简单的工具,用于远程下载种子文件,并通过 HTTP 以全速检索文件,无需 ISP 种子文件限制
- restic - 一款快速、高效且安全的备份程序
- runtemplate - 一款非常简单的命令行工具,用于执行 Go 模板,适用于与
go generate
一起使用。 - runtemplate - 一款简单的工具,用于执行 Go 模板,以支持为您的类型生成 Go 代码。
- sift - 一款快速且功能强大的开源替代
grep
的工具 - tecla - 命令行编辑库
- Terracognita - 从现有的云提供商读取(反向 Terraform),并生成您的基础设施代码作为 Terraform 配置。
- wlog - 一个简单的日志记录接口,支持跨平台颜色和并发。
- wmenu - 一个易于使用的 CLI 应用程序菜单结构,提示用户做出选择。
- mani - 一款 CLI 工具,帮助您管理多个仓库
压缩
- brotli - Brotli 算法的 Go 绑定。
- compress - gzip、zip、zlib、deflate 的更快速替代品。
- dgolzo - LZO 绑定。
- go-lzo - 纯 Go LZO 压缩/解压缩器,忠实地翻译了 C 代码库。
- dictzip - 用于以随机访问
dictzip
格式读取和写入文件的读取器和写入器。 - fast-archiver - 替代的归档工具,对大量小文件具有快速性能。
- gbacomp - 一个 Go 库,用于(解)压缩与 GBA BIOS 兼容的数据。
- go-lz4 - 将 LZ4 无损压缩算法移植到 Go 的端口。
- go-lzss - Go 中 LZSS 压缩算法的实现。
- go-sevenzip - 包七个 zip 实现对 7-zip 档案的访问(包装 LZMA SDK 的 C 接口)。
- go-zip - 一个围绕 C 库 libzip 的包装器,提供了修改现有 ZIP 档案的能力。
- lz4 - 高性能、并发 LZ4 实现。
- lzma - Go 的 compress/lzma 包。
- pgzip - 多核 gzip,与标准库兼容。
- ppmd-go - LZMA SDK 库的 Golang 绑定。(仅绑定 PPMD)
- s2 - 高吞吐量 Snappy 扩展。
- snappy-go - Google 的 Snappy 压缩算法在 Go 中。
- yenc - yenc 解码器包。
- zappy - 包 zappy 实现 zappy 基于块的压缩格式。它旨在结合良好的速度和合理的压缩率。
- zstd - 纯 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 - 包 config 提供 ssh_config(5) 解析器和获取器。
- nestext - 包 nestext 提供用于处理 NestedText(一种人性化的数据格式)的工具。
- properties - 用于读取和写入属性文件的库
- scribeconf - Facebook Scribe 服务器配置文件解析器
- toml:
- uConfig - 一个无意见、可扩展且可插拔的配置管理。支持 YAML、TOML、JSON、环境变量、K8s DAPI 等。
- viper - 一个完整的配置解决方案,支持 YAML、TOML 和 JSON,并与命令行标志集成
- yaml
控制台用户界面
- ansi - 轻松创建 ansi 转义代码字符串和闭包,以格式化、着色控制台输出
- ansiterm - 包,用于驱动响应 ANSI 转义序列的纯文本控制台
- box-cli-maker - 为您的 CLI 创建高度自定义的框。
- bubbletea - 一个功能强大的小型 TUI 框架
- cons - 一个用于构建交互式控制台工具的简单包。
- gnureadline - GNU Readline 绑定
- go-ansiout - 用于命令行应用程序的另一个 ANSI 转义代码序列工具。
- gockel - 用于文本终端的 Twitter 客户端
- gocui - 旨在创建控制台用户界面的极简主义库
- gocurse - Go 绑定,用于 NCurses
- gocurses - NCurses 包装器
- go-ibgetkey - 用于在命令行应用程序中处理按键的“热键”类型用户输入包。
- go.linenoise - Linenoise 绑定(简单易用的 readline,带有提示、可选历史记录、可选选项卡补全)
- goncurses - 一个 ncurses 库,包括表单、菜单和面板扩展
- gopass - 允许在不回显到屏幕的情况下键入密码
- go-pullbarz - 像 DOS 时代的 Lotus 123 中一样花哨的“光条”菜单。依赖于 go-ibgetkey 和 go-ansiout。
- go.sgr - 终端/控制台颜色和文本修饰(粗体、下划线等)。
- go-stfl - 一个围绕 STFL 的薄包装器,STFL 是一个基于 ncurses 的窗口部件工具包
- goterminal - 一个 Go 库,它允许您在终端上写入并重新写入文本,以更新进度。 它也适用于 Windows!
- go-web-shell - 远程 Web Shell,实现了 net/http 服务器。
- igo - 一个简单的交互式 Go 解释器,基于 exp/eval,并进行了一些 readline 改进。
- oh - 用 Go 编写的 Unix Shell。
- pty - 获取伪终端设备。
- readline - GNU-Readline 类型的库的纯 Go 实现。
- tcell - Tcell 是一个替代终端包,在某些方面类似于 termbox,但在其他方面更好。
- termbox-go - 一个极简主义的 ncurses 替代方案,用于构建基于终端的用户界面。
- termios - 终端支持。
- termon - Go 的简单终端控制界面。
- uilive - uilive 是一个 Go 库,用于实时更新终端输出。
- uiprogress - 一个库,用于在终端应用程序中渲染进度条。
- uitable - 一个库,使用表格数据提高终端应用程序的可读性。
- yandex-weather-cli - Yandex 天气服务的命令行界面。
持续集成
加密货币
- Skycoin - Skycoin 是一种用 Go 编写的下一代加密货币。 Skycoin 并非旨在为比特币添加功能,而是通过简化、安全性并剔除所有非必需部分来改进比特币。
密码学
- BLAKE2b - BLAKE2b 哈希函数的 Go 实现。
- cryptogo - 一些有用的与密码学相关的函数,包括填充(PKCS7、X.923)、带随机盐和 IV 的 PBE。
- cryptoPadding - 在 Go 中实现的块填充方案。
- dkeyczar - Google Keyczar 密码库的 Go 移植版。
- dkrcrypt - 韩国分组密码:SEED 和 HIGHT。
- dskipjack - 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 的 Lioness 宽分组密码。
- go-minilock - minilock 文件加密系统的 Go 实现。
- GoSkein - Skein 哈希和 Threefisch 密码的 Go 实现。
- 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 加密包装器,用于使用 ECDH 密钥交换算法、ED25519 签名和 Blake3+Poly1305 校验和/消息验证的
io.ReadWriteCloser
。 也是一个复用器。 - simpleaes - AES 加密变得简单。
- siphash - SipHash:一个快速短输入伪随机函数。
- SRP - SRP:安全远程密码 - Go 中的实现。
- ssh-vault - 使用 SSH 密钥加密/解密。
- themis - 用于保护敏感数据的跨平台高级密码库:具有前向保密的安全消息传递、安全数据存储 (AES256GCM); 适合构建端到端加密的应用程序。
- tiger - Tiger 密码哈希算法。
- whirlpool - Whirlpool 密码哈希算法。
数据处理
- automi - 在 Go 通道上组合流程和集成流。
- Gleam - 快速、高效、可扩展的分布式映射/归约系统,DAG 执行,内存中或磁盘上,独立或分布式运行。
- Glow - Glow 是一个易于使用的分布式计算系统,类似于 Hadoop Map Reduce、Spark、Flink、Storm。
- gostatsd - Statsd 服务器和库。
- Heka - 实时数据和日志文件处理引擎。
- Kapacitor - 用于处理、监控和告警时间序列数据的框架。
- parapipe - FIFO 管道,在每个阶段并行执行,同时保持消息和结果的顺序。
- pipe - Go 中的几个函数式编程支持(Map/Reduce/Filter)。
- proto - 使用通道作为结果流的 Go 的 Map/Reduce/Filter 等。
- ratchet - 一个用于在 Go 中执行数据管道/ETL 任务的库。
- regommend - 推荐引擎。
- rrd - rrdtool 的绑定。
- XConv - 在类型之间转换任何值(基本类型、结构体、数组、切片、映射等)。
数据结构
集合
- collections - 一些常见的数据结构。
- data-structures - 一组数据结构(ArrayList、SortedList、Set、AVL 树、不可变 AVL 树、B+树、三元搜索树、哈希表(分离链接)、线性哈希表)。
- ps - 持久数据结构。
- Tideland golib - 一个集合库。
- GoDS - 集合、列表、堆栈、映射、树、队列等等。
哈希表
列表
- fs2/mmlist - 内存映射列表。
- GoArrayList - GoArrayList 是 Go 语言对 Java 类 ArrayList 的替代,具有几乎所有功能。
- goskiplist - Go 中的跳跃列表实现。
- itreap - 一个不可变的有序列表,内部是一个树堆。
- ListDict - Go 的 Python 列表和字典。
- skip - 一个快速的基于位置寻址的有序映射和多映射。
- Skiplist - 一个快速的索引有序多映射。
- skiplist - 跳跃列表实现。 高度可定制且易于使用。
- skiplist - 从 Redis 的有序集合移植的跳跃列表数据结构。
- stackgo - 一个快速的基于切片的堆栈实现。
队列
- fifo_queue - 简单 FIFO 队列。
- figo - 一个简单的 FIFO 队列,具有可选的线程安全版本。
- go.fifo - 简单自动调整大小的线程安全 FIFO 队列。
- gopqueue - 容器/堆顶部的优先级队列。
- go-priority-queue - 一个易于使用的堆实现,具有传统的优先级队列接口。
- golibs/stack - 一个 LIFO 和环形缓冲区包。
- gringo - 一个使用简化无锁环形缓冲区实现的极简队列。
- heap - 一个通用的堆包,无需将元素转换为
interface{}
然后再转换回来。 - queued - 一个简单的网络队列守护程序。
- queue - 基于 Redis 的队列管理器
图
集合
- disjoint - 不相交集(带有路径压缩的并查集算法)
- golang-set - Go 的全线程安全和非安全集合实现。
- goset - 简单,线程安全的 Set 实现
- set - Go 的集合数据结构
树
- b - 包 b 实现带延迟页分裂/合并和 O(1) 枚举的 B+ 树。通过简单的文本替换,支持轻松生成针对用户定义的键和值类型的 B+ 树的源代码。
- btree - 包 btree 实现具有固定大小键的持久 B 树,http://en.wikipedia.org/wiki/Btree
- btree - 内存中(非持久)B 树实现,类似于 GoLLRB 的 API
- go-avltree - AVL 树(Adel’son-Vel’skii & Landis)添加了索引
- go-btree - 简单平衡树实现
- go-darts - Go 的双数组 Trie 系统
- GoLLRB - Google Go 中 2-3 平衡二叉搜索树的左倾红黑树 (LLRB) 实现
- go-merkle - 带有证明的 Merkle 化二元(搜索)树。
- go-radix,go-radix-immutable - 基数树实现。
- go-stree - 区间上范围查询的线段树实现
- gtreap - 持久堆实现。
- prefixmap - 基于 Trie 的简单前缀映射,用于基于字符串的键
- rbtree - 高性能红黑树,具有类似于 C++ STL 的 API,用于 set,map,multiset,multimap。
- rbtree - 另一个红黑树实现,具有类似 C++ STL 的 API
- rtreego - R 树库
- triego - 用于存储单词的简单 Trie 实现
其他
- aurora - 跨平台 Beanstalk 队列服务器控制台。
- bigendian - 二进制解析和打印
- deepcopy - 创建数据结构的深拷贝
- dgobloom - 布隆过滤器实现
- epochdate - 自 Unix 纪元以来的天数存储的紧凑日期
- etree - 轻松解析和生成 XML
- excelize - 用于读取和写入 Microsoft Excel (XLSX) 文件的 Go 库。
- fsm - 最小状态机,用于代替布尔值
- go-algs/ed - 广义编辑距离实现
- go-algs/maxflow - 使用最大流算法的能量最小化工具。
- gocrud - 用于处理任意深度数据结构的框架。
- go-extractor - Go 的 GNU libextractor 包装器
- Gokogiri - 轻量级 libxml 包装器库
- GoNetCDF - NetCDF 文件格式库的包装器
- goop - Go 的动态面向对象编程支持
- gopart- Go 中可索引的任何事物的类型无关分区。
- gotoc - 用 Go 编写的协议缓冲区编译器
- govalid - 数据验证库
- goxlsxwriter - 用于写入 XLSX (Excel) 文件的 libxlsxwriter 的 Golang 绑定
- goxml - libxml2 的薄包装器
- hyperloglog - 使用恒定内存估计集合基数的 HyperLogLog 和 HyperLogLog++ 算法的实现。
- itertools - 提供通用可迭代生成器函数以及类似于 itertools python 包的功能。
- jsonv - JSON 验证器
- libgob - 用于从其他语言生成 gobs 的低级库
- mxj - 从
map[string]interface{}
或 JSON 序列化/反序列化 XML 文档 - ofxgo - 用于查询 OFX 服务器和/或解析响应的库(以及示例命令行客户端)。
- Picugen - 通用哈希/校验和摘要生成器。
- simple-sstable - Go 中简单、无花哨的 SSTable 格式和实现。
- tribool - Go 的三元(三值)逻辑
- Tuple - Tuple 是一个 Go 类型,可以保存混合类型/值
- vcard - 用 Go 读取和写入 vcard 文件。RFC 2425(目录信息的 MIME 内容类型)和 RFC 2426(vCard MIME 目录配置文件)的实现。
- weightedrandom - 用于高效加权随机选择的库
- xlsx - 用于帮助从 Microsoft Office Excel XLSX 文件中提取数据的库。
数据库
另请参见 SQLDrivers 页面.
CockroachDB
- cockroachdb - 可扩展、可生存、强一致的 SQL 数据库
Hazelcast IMDG
- Hazelcast IMDG Go 客户端 - Hazelcast IMDG 的官方 Go 客户端实现,这是一个开源的内存数据网格。
MongoDB
- Mongo 驱动程序 - 官方 MongoDB Go 驱动程序
- MongoDB 导出器 - MongoDB 的 Prometheus 指标导出器
- mongobetween - 用 Golang 编写的轻量级 MongoDB 连接池
- rocks-stata - MongoDB 备份实用程序
MySQL
- Go-MySQL-Driver - Go 的 database/sql 包的轻量级且快速的 MySQL 驱动程序
- MyMySQL - 全部用 Go 编写的 MySQL 客户端 API。
- mysqlsuperdump - 生成 MySQL 数据库的部分和过滤的转储
- TiDB - 基于 Google 的 F1 设计的兼容 MySQL 的分布式数据库。
- vitess - 为网络扩展 MySQL 数据库
ODBC
PostgreSQL
code.soquee.net/migrate
一个用于生成、应用和列出 PostgreSQL 数据库迁移的库,使用与 Rust 的 Diesel 兼容的机制。- go-libpq - Go 的 database/sql 包的基于 cgo 的 Postgres 驱动程序
- go-pgsql - Go 的 PostgreSQL 客户端库
- kallax - PostgreSQL 类型安全 ORM
- pgsql.go - PostgreSQL 高级客户端库包装器
- pgx - Go PostgreSQL 驱动程序,与 database/sql 兼容,并具有用于更高性能和功能的本机接口
- pq - database/sql 的纯 Go PostgreSQL 驱动程序
- yoke - 带有自动故障转移和自动集群恢复的 Postgres 高可用性集群
QL
- ql - 纯 Go 嵌入式 (S)QL 数据库。
Redis
- godis - Redis 的简单客户端
- Go-Redis - Redis 键值存储的客户端和连接器
- go-redis - 基于 gomemcache 架构构建的 Redis 客户端
- Redigo - Go 的 Redis 客户端。
- redis - Go 的 Redis 客户端
- rueidis - 快速 Redis RESP3 客户端,支持客户端侧缓存和自动管道。
RethinkDB
- GoRethink - Go 的 RethinkDB 驱动程序
SQLite
- gosqlite3 - SQLite3 的 Go 接口
- gosqlite (fork) - gosqlite 的 fork
- gosqlite - Go 的简单 SQLite 绑定。
- go-sqlite - 一个数据库/sql 驱动程序和独立的 sqlite3 接口
- go-sqlite-lite - 一个简单的 Go SQLite 包。
- mattn 的 go-sqlite3 - 符合内置数据库/sql 接口的 sqlite3 驱动程序
Vertica
- vertica-sql-go - 一个纯 Go Vertica 数据库驱动程序。
ORM
- beedb - beedb 是 Go 的 ORM。它允许你将 Go 结构映射到数据库中的表
- ent - Go 的实体框架
- FilterXorm - 为 xorm 项目构建条件。
- go-modeldb - 一个围绕 sql.DB 的简单包装器,用于结构支持。
- gorm - Go 的 ORM 库,旨在开发友好
- gorp - Go 的 SQL 映射器
- go-firestorm - Cloud Firestore 的简单 Go ORM
- go-store - Go 的数据存储库,提供了一组与平台无关的接口来持久化和检索键值数据。
- hood - Go 的与数据库无关的 ORM。支持 Postgres 和 MySQL。
- lore - Go 的简单轻量级伪 ORM/伪结构映射环境。
- qbs - 通过结构查询。支持 MySQL、PostgreSQL 和 SQLite3。
- sqlboiler - 通过代码生成实现的数据库优先 ORM。
- sqlgen - Go 的 SQL 交互代码生成。
- structable - 结构到表的数据库映射器。
- xorm - Go 的简单而强大的 ORM。
- reform - 一个更好的 Go ORM,基于非空接口和代码生成。
- go-queryset - Go 的 100% 类型安全 ORM,具有代码生成和 MySQL、PostgreSQL、Sqlite3、SQL Server 支持。
键值存储
- bolt - 受 LMDB 启发的持久键值存储。
- dbm - 包 dbm(WIP)实现了一个简单的数据库引擎,混合了分层和/或键值引擎。
- fs2/bptree - 带有重复键支持的内存映射 B+ 树。适用于大量数据(即 +100 GB)。支持匿名和文件支持的内存映射。
- Diskv - 自制,磁盘支持的键值存储
- etcd - 用于共享配置和服务发现的高可用键值存储
- olric 分布式缓存和内存中的键值数据存储。它既可以用作嵌入式 Go 库,也可以用作语言无关的服务。
- gkvlite - 纯 Go,简单,有序,基于追加文件格式的原子键值持久化。
- gocask - 受 Riak Bitcask 启发的键值存储。可以用作 dbm 和其他 kv 存储的纯 Go 实现。
- goleveldb - 另一个用纯 Go 实现的 LevelDB 键值存储。
- kv - 另一个键值持久存储。原子操作,两阶段提交,自动崩溃恢复,……
- leveldb-go - 这是 LevelDB 键值数据库的实现。
- levigo - levigo 提供了创建和访问 LevelDB 数据库的能力。
- persival - 程序化,持久,伪键值存储
图形数据库
- cayley - 100% Go 图形数据库,灵感来自 Freebase 和 Google 知识图谱。
- Dgraph - 带有 GraphQL 风格 API 的快速、分布式图数据库。
- go-gremlin - Apache TinkerTop 图分析框架 (Gremlin 服务器) 的 Go 客户端。
NoSQL
- couchgo - Go 的最具功能的 CouchDB 适配器。仿照 couch.js。
- influxdb - 用于指标、事件和实时分析的可扩展数据存储
- Kivik - Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库。
- ledisdb - 一个高性能 NoSQL 类似 Redis。
- nodb - 一个纯 Go 嵌入式 Nosql 数据库,包含 kv、list、hash、zset、bitmap、set。
- tiedot - 一个使用 JSON 用于文档和查询的 NoSQL 文档数据库引擎;它可以嵌入到你的程序中,或者使用 HTTP 运行独立服务器,以提供 API。
其他
- cabinet - Go 的 Kyoto Cabinet 绑定
- camlistore - 终生使用的个人分布式存储系统。
- cdb.go - 创建和读取 cdb(“常量数据库”)文件
- CodeSearch - 索引和对大量源代码执行正则表达式搜索
- dbxml - Oracle Berkeley DB XML 的基本接口
- drive - Google Drive 命令行客户端
- Event Horizon - 用于命令查询职责分离和事件溯源 (CQRS/ES) 的工具包
- go-batcher - 在 Go 中轻松创建和使用批处理处理器
- go-clickhouse - 连接到 Yandex Clickhouse(列式数据库)
- go-db-oracle - GO 对 Oracle DB 的接口
- gographite - Go 中的 statsd 服务器(用于向 graphite 馈送数据)
- gokabinet - Go 的 Kyoto Cabinet DBM 实现绑定
- go-model - Go 的强大且易于使用的结构映射器和实用程序方法
- go-notify - GO 对 libnotify 的绑定
- goprotodb - 一个用于 Berkeley DB 的绑定,用于存储以协议缓冲区编码的记录。
- go-rexster-client - Go 客户端,用于 Rexster 图形服务器(TinkerPop 图数据库工具套件的一部分)
- goriak - Riak 数据库的数据库驱动程序(项目主页现在位于 bitbucket.org)
- goriakpbc - 使用 Riak 的 protobuf 接口的 Riak 驱动程序
- gotyrant - Tokyo Tyrant 的 Go 包装器
- go-wikiparse - 用于处理维基百科数据的 mediawiki 导出解析器
- hdfs - libhdfs 的 Go 绑定
- JGDB - JGDB 代表 Json Git 数据库
- mig - 基于 SQL 的简单数据库迁移
- mongofixtures - 用于清理 MongoDB 集合并向其中加载夹具的 Go 快速实用程序
- Neo4j-GO - Go 中的 Neo4j REST 客户端
- neoism - Neo4j 图数据库客户端,包括 Cypher 和事务支持。
- null - 用于处理 SQL 中空值的包
- Optimus Cache Prime - 具有 XML 网站地图的网站的智能缓存预加载器。
- piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎。
- pravasan - 简单的迁移工具(类似于 rake db:migrate,但更灵活)
- remapper - 用于将数据从一种类型转换为另一种类型的库
- riako - 用于与 Riak 数据库交互的高级实用程序方法
- sqlbuilder - 带有行映射的 SQL 查询构建器
- sqlf - 在 Go 中创建参数化 SQL 语句,sprintf 风格
- squirrel - Go 的流畅 SQL 生成
- Sublevel - 分隔同一 LevelDB 的不同部分
- Weed File System - 快速分布式键文件存储
- whisper-go - 用于处理 whisper 数据库的库
- xo - 用于为数据库生成惯用 Go 代码的 CLI
日期
- date - 用于处理日期的包。
- date - 用于日期、日期范围、时间跨度、周期和一天中的时间。
- goment - 受 Moment.js 启发的 Go 时间库
- gostrftime - 类似于 strftime(3) 的 time.Time 格式化
- hijri - 一个小型辅助库,用于根据伊斯兰历将伊斯兰日期转换为公历日期。
- now - Now 是 Go 的时间工具包。
- tai64 - tai64 和 tai64n 解析和格式化
- Tideland golib - Timex 扩展
- tuesday - 一个与 Ruby 的
Time.strftime
兼容的 Strftime 实现
开发工具
- cwrap - Go 的 C 库包装器(绑定)生成器。
- demand - 轻松下载、构建、缓存和运行 Go 应用程序。
- glib - GLib 类型系统的绑定
- go-callvis - 使用 dot 格式可视化 Go 程序的调用图。
- go-size-analyzer - 用于显示 Go 二进制文件每个依赖项大小的工具。
- gocog - 一种可以使用任何语言生成代码的代码生成器
- godepgraph - 为 go 包创建依赖关系图
- godev - 在源代码更改时重新编译和运行您的 Go 代码。还监视所有导入的更改。
- godiff - 带有彩色 html 输出的文件比较工具
- GoNB - 使用 Jupyter Notebooks 进行交互式 Go 编程。
- gonew - 用于创建新的 Go 项目的工具
- go-play - 用于尝试 Go 代码的 HTML5 网络界面。类似于 https://golang.ac.cn/doc/play,但运行在您的计算机上
- gore - 一个 Go REPL。具有行编辑、代码补全等功能
- gorun - 使 Go 源文件可以作为脚本使用。
- go-spew - 为 Go 数据结构实现了一个深度漂亮打印机,以帮助调试
- goven - 轻松将代码从另一个项目复制到您的项目中
- gowatcher - 通过监视目录自动重新加载指定的 go 程序。
- GoWatch - GoWatch 监视您的开发文件夹以查找修改后的文件,如果文件更改,它将重新启动该进程。
- goweb - 基于 Donald Knuth 和 Silvio Levy 的 CWEB 的 Go 的文摘编程工具。
- goyaccfmt - 自动重新格式化 Goyacc 源文件。
- hopwatch - Go 的简单调试器
- hsandbox - 用于快速尝试 Go 代码片段的工具
- Inject - Golang 中依赖注入的库(来自 Facebook)
- liccor - 用于更新 Go 源文件中许可证头的工具
- liteide - 用于 Go 的 go 自动构建工具和基于 qt 的 ide
- Livedev - Livedev 是一个开发代理服务器,它允许实时代码重新加载。
- Martian - 用于 E2E 测试的 HTTP 代理。
- nvm-windows - Windows 的 Node.js 版本管理器
- prettybenchcmp - 本地存储和比较基准历史记录。
- rerun - Rerun 监视您的二进制文件及其所有依赖项,以便在源代码更改时可以重新构建并重新启动。
- sling - 网络流量模拟器和测试自动化工具,通过 HTTP 或 TCP 协议发送文件请求,控制速率频率、并发连接数量、延迟、超时,并收集响应时间统计数据、平均值和百分位数。
- syntaxhighlighter - 与语言无关的代码语法高亮库
- toggle - 一个功能切换库,内置支持环境变量支持的切换。可插入后备引擎支持。
- trace - 一个简单的调试跟踪
Emacs 标签
分布式/网格计算
- celeriac - 用于添加支持在 Go 中与 Celery 工作程序、任务和事件进行交互和监视的库
- donut - 用于在 Go 中构建集群服务的库
- libchan - 通过网络的 Go 风格通道
- locker - 建立在 etcd 之上的分布式锁服务。
- dlock - 使用 gRPC 的本地 Go 分布式锁管理器(客户端和服务器)。
- mangos - 基于 nanomsg 的可扩展协议的实现
- redsync - 基于 Redis 的分布式互斥锁实现
- Skynet - Skynet 是一个分布式进程网格,旨在提供高度可扩展的 API 类型服务。
- Tideland golib - 包含一个 map/reduce 库
文档
- godocdown - 将包文档(godoc)格式化为 GitHub 友好的 Markdown
- golangdoc - Golang 的 Godoc,支持翻译。
- Mango - 从 Go 源代码自动生成 unix 手册页
- redoc - Redis 的命令文档
- sphinxcontrib-golangdomain - Sphinx 的 Go 域
- test2doc - 从您的单元测试为您的 go 单元生成文档。
编辑器
- A - 基于 Acme 的图形文本和二进制编辑器
- Conception - Conception 是一个实验性的研究项目,旨在成为一个现代的 IDE/语言包。 演示视频
- de - 一个具有 Acme 和 vi 功能的模态图形编辑器
- Gide - 在 go 本地 GoGi GUI 中构建的 Go IDE
- Go-bbpackage - 用于 Go 开发的 BBEdit 包
- goclipse - 用于 Go 的基于 Eclipse 的 IDE。
- Go conTEXT - 高亮插件
- godev - Go 语言的基于 Web 的 IDE
- godit - 一个用 Go 编写的类似 microemacs 的文本编辑器。
- gofinder - acme 的(代码)搜索工具
- go-gedit - gedit 的 Google Go 语言插件
- golab - go 本地应用程序构建器 - 基于 Web 的 Go ide
- Google Go for Idea - Intellij IDEA 的 Google Go 语言插件。
- micro - 一个现代且直观的基于终端的文本编辑器。
- tabby - 源代码编辑器
- T - 一个类似于 Acme/Sam 的文本编辑器。
- ViGo - 一个类似于 vim 的文本编辑器。
- Wide - 一个使用 Golang 的团队的基于 Web 的 IDE。
电子邮件
- chasquid - 用 Go 编写的 SMTP 服务器。
- gmail - 从 Gmail 帐户发送电子邮件的简单库,适用于不想处理协议细节的人。
- Gomail - 一个简单高效的用于发送电子邮件的包。
- go-mail - 电子邮件实用程序,包括 RFC822 消息和 Google Mail 默认值。
- go-ses - Amazon AWS 简单电子邮件服务 (SES) API 客户端
- go-simple-mail - “Golang 用于发送电子邮件的包。支持保持活动连接、TLS 和 SSL。易于批量 SMTP。”
- Hectane - 轻量级 SMTP 客户端,包括一个内置的邮件队列,该队列由磁盘存储支持。
- Inbucket - Inbucket 是一个电子邮件测试服务;它将接受任何电子邮件地址的邮件,并通过 Web 界面提供查看。
- mail.go - 解析电子邮件
- MailHog - 电子邮件测试服务,灵感来自 MailCatcher。
- MailSlurper - 一个方便的 SMTP 邮件服务器,适用于本地和团队应用程序开发。将邮件吸入虚无!
错误处理
code.soquee.net/problem
包 problem 为 HTTP API 实现错误,类似于 RFC7807 中描述的错误。- errgo - 错误跟踪和注释。
- errors - errors 使用文件和行号增强错误。
- errors - juju/errors 包提供了一种简单的方法来注释错误,而不会丢失原始错误上下文,并从错误中获取堆栈跟踪以返回到记录的位置。
- goerr - 允许创建独立(模块化)且可重用的错误处理程序。使用 Return(error) 和捕获 err := OR1(..) 的类似异常的 panic() recover() 机制
- hierr - 在层次结构中嵌套错误。
- panicparse - 有风格地解析恐慌。
- Space Monkey errors - Go 缺少的错误库 - 堆栈捕获、错误层次结构、错误标签
- Tideland golib - 详细的错误值
编码和字符集
- base58 - 人类输入友好的 base58 编码
- bencode-go - 编码和解码 BitTorrent 点对点文件共享协议使用的 bencode 格式
- bsonrpc - 用于 net/rpc 的 BSON 编解码器
- chardet - 从 ICU 移植的字符集检测库
- charmap - Go 中的字符编码
- codec-msgpack-binc 高性能且功能丰富的惯用 Go 库,提供对多种二进制序列化格式的编码/解码支持: msgpack
- colfer - 高性能二进制编解码器
- gobson - BSON(反)序列化器
- go-charset - 字符集之间的转换。原生 Go。
- go.enmime - Go 的 MIME 电子邮件解析库(原生)
- go-msgpack - Go 的综合 MsgPack 库,提供打包/解包和网络/RPC 编解码器支持(已弃用,推荐使用 codec)
- gopack - Go 的位打包库
- go-simplejson - 用于与任意 JSON 交互的 Go 包
- go-wire - 用于结构体和其他数据的二进制和 JSON 编解码器
- go-xdr - 按照 RFC 4506(已取代 RFC 1832 和 RFC 1014)中规定的外部数据表示 (XDR) 标准协议的纯 Go 实现。
- iconv-go - 带有 Reader 和 Writer 的 iconv 封装库
- magicmime – 带有 libmagic 的 Go 绑定,用于检测 MIME 类型
- Mahonia - Go 中的字符集转换库
- mimemagic - 基于文件内容自动检测 MIME 类型,无需外部依赖
- mimemagic - 基于 FreeDesktop.org 规范的纯 Go MIME 嗅探库/工具
- msgpack - Go 的 Msgpack 格式实现
- msgpack-json - 用于在 msgpack 和 json 之间转换的命令行工具
- nnz - 序列化为 JSON 和 SQL null 的字符串和整数基元
- storable - 编写 perl storable 数据
- TNetstring - tnetstrings(带标签的 Netstrings)
文件系统
- afero - Go 的文件系统抽象系统
- go.fs - 虚拟文件系统抽象层。
- poller - poller 包是一个文件描述符多路复用器。它允许对多个文件描述符进行并发读取和写入操作。
- vfsgen - 生成一个 vfsdata.go 文件,该文件静态地实现给定的虚拟文件系统。
游戏
- Bampf - 基于 Vu 3D 引擎的街机风格游戏。
- bloxorz - Bloxorz 基础关卡的求解器
- ChessBuddy - 用 Go、HTML5、WebSockets 和随机陌生人一起下棋!
- Fergulator - 使用 SDL 和 OpenGL 的 NES 模拟器
- FlappyBird - 用 golang 编写的简单 flappy bird 克隆。
- godoku - Go 数独求解器 - “通过通信共享” 的示例
- Gongo - 用 Go 编写的围棋程序
- gospeccy - ZX Spectrum 48k 模拟器
- Ludo Game - 在 Appengine 上由 Go 提供支持的 Ludo 棋盘游戏
- pinkman - 基于命令行的国际象棋界面,用于与 UCI 兼容的国际象棋引擎
- Pong - 用 golang 编写的简单 Pong 克隆
- pong-command - 类似 ping 的 pong 的笑话命令。
- Steven - Go 的 Minecraft 客户端
- ukodus - Go 的数独求解器
- WolfenGo - 使用 OpenGL 2.1 的 Go 中的 Wolfenstein3D 克隆
- GoChess - 在终端上与朋友一起下棋
- Ebitengine - Ebitengine 的简单 API 允许您快速轻松地开发可以在多个平台上部署的 2D 游戏。
GIS
- geojson - 用于快速轻松地创建 geojson 格式的 json 数据的 Go 包。 描述
- go-geom - 带有原生 Go GeoJSON 和 WKB 编码和解码的有效 Open Geo Consortium 风格的几何图形(正在开发中)
- go.geo - 面向在线地图的几何/地理库(作者已弃用,转而使用他的新 gis 库
orb
。) - go.geojson - GeoJSON 对象的编组和反编组
- gogeos - Go 库,用于空间数据操作和几何算法
- go-proj-4 - Cartographic Projections Library PROJ.4 的接口
- go-kml - Google Earth KML 生成
- go-polyline - Google 地图折线编码和解码
- orb - 2d 几何图形操作(长度、面积、多边形包含等),支持 geojson、wkb、mvt
- osm - 用于读取、写入和处理 OpenStreetMap 数据的通用库
- UTM - 双向 UTM-WGS84 转换器
- gdal - 为 GDAL 提供 Go 封装库
图形和音频
- accumimage -
image.NRGBA
和color.NRGBA
的变体,支持颜色的累加和平均 - AnsiGo - 用纯 Go 编写的简单 ANSi 到 PNG 转换器
- Arclight - Arclight 是一个用于渲染图像的工具
- bild - 纯 Go 的图像处理算法集合
- bimg - 使用 libvips 进行快速图像调整大小和转换的小型 Go 库
- blend - Go 的图像处理库和渲染工具包。
- bpg - Go 的 BPG 解码器。
- chart - 用于以不同输出格式生成常用图表(饼图、条形图、带状图、散点图、直方图)的库。
- cpio - CPIO 存档文件格式的读写器。
- draw2d - 该包提供了一个 API 用于在图像上绘制 2d 几何图形。该库在很大程度上受到了 postscript、cairo、HTML5 canvas 的启发。
- ebiten - 一个跨平台开源游戏库,您可以使用它通过简单的 API 为多个平台开发 2D 游戏。无需 cgo/c 编译器设置。
- egl - egl 绑定
- es2 - es2 绑定
- fastgallery - 一个快速静态图像和视频 Web 图库生成器
- fourcc - Go 实现的 FOURCC(四个字符代码)(4CC)标识符,用于媒体文件中的视频编解码器、压缩格式、颜色和像素格式。
- freetype-go - FreeType 的 Go 实现
- glfw 3 - GLFW 3 库的 Go 绑定
- glfw - 与用于打开窗口、创建 OpenGL 上下文和管理输入的多平台库的绑定
- glh - OpenGL 辅助函数,用于管理文本、纹理、帧缓冲区等
- gl - 使用 glew 的 OpenGL 绑定
- gltf - 用于编组和反编组 glTF 的库
- glu - 与 OpenGL 实用程序库的绑定
- glui - glfw 的包装器,用于简化显示图像
- gmask - Csound 的 Cmask 实用程序的 Go 适配
- goalsa - ALSA 捕获和播放的 Go 绑定
- go-cairo - cairo 图形库的 Go 包装器
- gocl - Go OpenCL (gocl) 绑定,支持 Mac/Linux/Windows/Android 上的 OpenCL 1.1/1.2/2.0
- go-colorful - 颜色空间转换和其他颜色空间操作
- go-csnd6 - Csound6 API 的 Go 绑定
- go-csperfthread - Csound6 API 的 CsoundPerformanceThread 辅助类的 Go 绑定
- goexif - 从图像文件中检索 EXIF 元数据
- gofb - Go 帧缓冲库,用于逐像素绘制
- goflac - 使用 libFLAC 解码和编码 FLAC 音频的 Go 绑定
- go-gd - GD 的 Go 绑定
- GoGL - OpenGL 绑定生成器
- go-gnuplot - Gnuplot 的 Go 绑定
- go-gtk3 - 用于 Go 的 gtk3 绑定。
- go-heatmap - 用于创建热力图的工具包。
- GoHM - Go 中的 H.265/HEVC HM 视频编解码器。
- goHorde - 用于 Horde3d 渲染引擎的 Go 绑定。
- GoMacDraw - go.wde 的 Mac 实现。
- go-openal - Go 的实验性 OpenAL 绑定。
- go-opencl - OpenCL 异构并行编程库的 Go 包装器。
- go-opencv - OpenCV 的 Go 绑定 / gocv 中的 2.x API / opencv 中的 1.x API。
- Go-OpenGL - OpenGL 的 Go 绑定。
- Goop - 音频合成器引擎。
- goray - 基于 Yafaray 的 Go 写的射线追踪器。
- gosc - 纯 Go OSC (Open Sound Control) 库。
- go-taglib - TagLib 的 Go 包装器,一个音频元数据解析器。
- go-tmx - 一个读取 Tiled 的 TMX 文件的 Go 库。
- govips - 一个超快的 Go 图像处理和调整大小库。
- GoVisa - Go 中的 H265/HEVC 比特流分析器。
- go-vlc - libVLC 的 Go 绑定。
- go.wde - 一个窗口/绘图/事件接口。
- goxscr - Go 重写的 xscreensaver 端口。
- graphics2d - 基于路径和路径转换的 2D 图形包。
- gst - GStreamer 的 Go 绑定。
- gumble - 用于 Mumble VoIP 协议的客户端库。
- hgui - 基于 http 和 gtk-webkit 的 GUI 工具包。
- hsvimage - 支持 HSV 颜色模型和图像。
- imaginary - 用于图像调整大小和操作的简单快速 HTTP 微服务。
- imaging - 包 imaging 提供基本图像操作功能(调整大小、旋转、翻转、裁剪等),以及简化的图像加载和保存。
- imgproxy - 用于调整大小和转换远程图像的快速安全独立服务器。
- libvlc-go - VLC 媒体播放器使用的 libVLC 2.X/3.X/4.X 的 Go 绑定。
- merlin - 自动视频编码器。
- netpbm - 从 Go 程序读取和写入 Netpbm 图像。
- opencv - OpenCV 的 Go 绑定。
- osmesa - osmesa 的 Go 绑定。
- phono - DSP 管道。
- Plotinum - 用于创建绘图的 API。
- portaudio - PortAudio 的 Go 绑定。
- pulsego - PulseAudio 的 Go 绑定。
- pulse-simple - PulseAudio 的 Simple API 的 Go 绑定,用于轻松的音频捕获和播放。
- rasterx - SVG 标准渲染,光栅化库。
- resize - 使用不同插值的图像调整大小。
- RiGO - Go 中的 RenderMan 接口实现。
- rpm - RPM 包文件格式的 Go 实现。
- smartcrop - 内容感知图像裁剪。
- starfish - 基于 SDL 的简单 Go 图形和用户输入库。
- stl - 用于读取、写入和操作 3D 打印中使用的 Stereolithography (.stl) 文件的库。
- svgo - 用于创建和输出 SVG 的库。
- tag - 用于读取标签元数据和为音频文件创建元数据不变校验和的库:FLAC、所有 IDv3 变体和 MP4 (ACC、ALAC)。
- texture - 基于 Bryce3D 深度纹理编辑器的程序生成纹理。
- tga - TARGA 图像格式编码/解码库。
- tiff - Go 的丰富 TIFF/BigTIFF/GeoTIFF 解码器/编码器。
- twilio-go - Twilio API 的 Go 客户端。
- videoinput - VideoInput (Windows) 的 Go 绑定。
- vu - 虚拟宇宙。一个骨架 3D 引擎。
- vulkan - Vulkan API 的 Golang 绑定。
- webp - Go 的 WebP 解码器和编码器。
- wg - Web Graphics,在浏览器中显示实时 Go 图形,并支持用户输入。
- window - 用于实时数据的优化移动窗口。
- xmorph - 扭曲和变形图像。
GUI 和窗口小部件工具包
- fyne - 基于 Material Design 的跨平台本地 GUI 工具包。
- gio - 可移植(iOS/tvOS、Android、Linux (Wayland/X11)、macOS、Windows、FreeBSD、OpenBSD、WASM)的立即模式 GUI。
- go-fltk - FLTK2 GUI 工具包的 Go 绑定。
- imgui-go - 用于 Go 的 Dear ImGui 包装库。
- GoGi - 全功能的跨平台本地 GUI 工具包。
- go-gtk - GTK 的绑定。
- go-qt5 - 用于 Go 的 QT5 绑定。
- gothic - Tcl/Tk Go 绑定。
- gotk3 - 用于 GTK3 的 Go 绑定,需要 GTK 版本 3.8。
- go.uik - Go 的 UI 工具包,用 Go 写成。(项目已关闭)。
- go-webkit2 - 用于 WebKitGTK+ v2 API 的 Go 绑定(带无头浏览器和 JavaScript 支持)。
- Gowut - Gowut (Go Web UI Toolkit) 是一个功能齐全、易于使用、平台无关的 Web UI 工具包,用纯 Go 编写,没有链接或调用的平台依赖的原生代码。
- GXUI - 一个 Go 跨平台 UI 库。
- iup - 用于 IUP 的绑定。
- lorca - 一个用于在 Go 中构建跨平台 HTML5 GUI 应用程序的小型库,使用 Chrome/Chromium 作为 UI 层。
- mdtwm - 用于 X 的平铺窗口管理器。
- qml - Go 语言的 QML 支持。
- ui - 用于 Go 的平台原生 GUI 库。
- webview - 微小的跨平台 Web UI 库。使用 WebKit (Gtk/Cocoa) 和 MSHTML (Windows)。
- wingo - 用 Go 写的完整功能的窗口管理器。
- Winhello - 一个 Windows GUI hello world 应用程序示例。
- wxGo - wxWidgets GUI 的 Go 包装器。
- xgb - x-go-binding 的一个分支,支持线程安全和所有 X 扩展。
- xgbutil - 用于更轻松地使用 X Go 绑定的实用程序库。(实现了 EWMH 和 ICCCM 规范、键绑定支持等)。
- x-go-binding - 用于 X 窗口系统的绑定。
- go-sciter - 用于 sciter 的绑定。
- go-astilectron - 使用 GO 和 HTML/JS/CSS 构建跨平台 GUI 应用程序(由 Electron 提供支持)。
硬件
- gobot - 用于机器人、无人机和物联网 (IoT) 的 Golang 框架。
- go.hid - 提供与 USB 人机接口设备的通信。
- gortlsdr - 一个 librtlsdr 包装器,它将某些 USB DVB-T 适配器变成低成本的通用软件定义无线电接收器。
- hwio - 用于 SoC 板的硬件 I/O 库,包括 BeagleBone Black 和 Raspberry Pi。
- stressdisk - 在将您的宝贵数据委托给它们之前,对您的磁盘/内存卡/USB 闪存盘进行压力测试。
语言和语言学
- alpinocorpus-go - Alpino 语料库的读写器。
- go-aspell - GNU Aspell 拼写检查库的 Go 绑定。
- go-edlib - Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau Levenshtein、Jaro-Winkler 等),兼容 Unicode。
- go-l10n - 为人类设计的本地化库。
- go-language - 使用字母频率数据进行简单语言检测。
- goling - 字符串相似度(余弦相似度、Levenshtein 距离)、拼写检查、分词。
- go-ngram - n-gram 是从给定的文本或语音序列中连续的 n 个项目的序列。
- go.stringmetrics - 在 Go 中实现的字符串距离度量。
- go-tokenizer - Golang 的文本分词库。
- inflect - 词语变形库(类似于 Ruby ActiveSupport::Inflector)。Singularize()、Pluralize()、Underscore() 等。
- libtextcat - libtextcat 的 Go 包装器。
- nlp - Go 自然语言处理库,支持 LSA(潜在语义分析)。
- sego - 中文分词器。
- snowball - 多种语言的 Snowball 词干提取器。
- textcat - 基于 n-gram 的文本分类,支持 utf-8 和原始文本。
日志记录和监控
- colog - CoLog 是 Go 的基于前缀的级别执行日志。
- cue - 快速灵活的上下文日志记录器。支持输出到文件、syslog、结构化 syslog、stdout/stderr、套接字、Loggly、Honeybadger、Opbeat、Rollbar 和 Sentry。
- epazote - 自动化微服务监控器。
- factorlog - 非常快速、功能丰富的日志记录基础设施(支持颜色、详细程度和多种格式)。
- glog - Go 的级别执行日志。
- go-logging - 支持不同的日志记录后端,如 syslog、文件和内存。多个后端可以与每个后端和日志记录器的不同日志级别一起使用。
- gomol - 一个多输出日志记录库,专为支持日志消息的附加元数据的输出而设计。
- gosrvmon - 自托管正常运行时间监控系统。
- graylog-golang - graylog-golang 是从 Google Go(Golang)到 Graylog 发送 GELF(Graylog 扩展日志格式)消息的完整实现。
- haminer - 解析和转发 HAProxy 日志的库和程序。
- immortal - 一个 *nix 平台(操作系统无关)的监控器。
- jWalterWeatherman - 无缝的终端打印和文件日志记录,使用起来像 fmt.Println 一样简单。
- kemba - 一个受 debug 启发的微型调试日志记录工具,非常适合 CLI 工具和应用程序。
- log4go - Go 日志记录包,类似于 log4j。
- logger - 带有缓冲输出和多个写程序的 Go 日志记录。
- logrus - Go 的结构化、可插入日志记录,内置钩子用于第三方日志记录器:Airbrake、Papertrail、Loggly、Sentry…
- MailJet Live Event Dashboard - 实时 API 监控。
- monkit - Go 的灵活进程数据收集、指标、监控、仪器和跟踪库。
- Prometheus - 监控系统和时间序列数据库。
- rfw - 旋转文件写入器 - 用于日志记录器的“logrotate”感知文件输出。
- sd - 写入 systemd 日志,支持用户定义的 systemd 日志字段。
- seelog - 灵活的调度、过滤和格式化。
- snap - 遥测框架。
- spacelog - Go 的分层、级别和结构化日志记录库。
- statsgod - Go 中的 StatsD 重写。
- syslog - 使用此包,您可以创建自己的 syslog 服务器,并为不同类型的 syslog 消息创建自己的处理程序。
- Tideland golib - 灵活的日志记录。
- timber - Go 的可配置日志记录器。
- ul - 通过 cgo 提供 macOS Sierra/OSX 统一日志功能。
- vlog - Go 的 std 日志上的级别日志。
机器学习
- Anna - 人工神经网络渴望,旨在成为自学习和自我改进的软件。
- bayesian - 朴素贝叶斯分类器。
- ctw - 上下文树加权和 Rissanen-Langdon 算术编码。
- Dialex - Dialex 是一种智能管道,可以解开文本并使其成为机器可读的。
- evo - 在 Go 中实现进化算法的框架。
- go-algs/maxflow 最大流(图割)能量最小化库。
- go-galib - 遗传算法。
- golinear - 线性 SVM 和逻辑回归。
- go-mind - 在 Go 中构建的神经网络库。
- go_ml - 线性回归、逻辑回归、神经网络、协同过滤、高斯多元分布。
- gomlx - Go 的加速 ML 和数学框架(使用 XLA 的 JIT 编译) - Go 的 PyTorch/Jax/TensorFlow 类库。
- gonet - Go 的神经网络。
- go-porterstemmer - Porter 词干提取算法的有效原生 Go 清洁室实现。
- go-pr - 高斯分类器。
- gorgonia - 神经网络基元库(如 Theano 或 Tensorflow,但适用于 Go)。
- mlwebservicego - 使用 Golang、Echo 和 Firebase 提供机器学习模型。
- ntm - 神经图灵机 实现。
- openai — ChatGPT 分词器和 SDK。
- paicehusk - Paice/Husk 词干提取器的 Go 实现。
- tfgo - Tensorflow + Go,gopher 方式。
数学
- bayesian - Go 的朴素贝叶斯分类。
- blas - BLAS(基本线性代数子程序)的 Go 实现。
- cartconvert - Go 编程语言的制图功能。
- choose - 生成来自 _N_ 个项目的 _M_ 个的所有组合。
- clp - COIN-OR 线性规划 (CLP) 库的 Go 绑定。
- Cvx - 凸优化包,CVXOPT python 包的移植。
- decimal - 高性能任意精度十进制浮点算术包。
- dice - 骰子滚动库。
- evaler - 一个简单的浮点算术表达式求值器。
- fixed - 一个定点(Q32.32 格式)数学库。
- geom - 2D 几何。
- gini - SAT 求解器/布尔逻辑工具。
- gochipmunk - Chipmunk 物理库的 Go 绑定。
- gocomplex - 一个复数库。
- godec - 多精度十进制算术。
- gofd - 并发有限域约束求解器。
- go-fftw - Go 绑定到 FFTW - 西方最快的傅立叶变换。
- go-fn - 不适合“math”包的特殊函数。
- gographviz - Go 的 Graphviz DOT 语言解析器。
- go-gt - 图论算法。
- go-humanize - 为人类格式化数字。
- golibs/xmath - 一组数学函数(主要是平均算法)。
- go-lm - Go 中的线性模型。通过 cgo -> BLAS/LAPACK 接口提供 WLS 和带有 t 残差的回归。
- go.mahalanobis - 使用 go.matrix 的马氏距离的朴素实现。
- gomat - 轻量级快速矩阵和向量数学。
- go_matrix_cuda - 基于 CUDA 的 GPU 加速线性代数库。
- go.matrix - 线性代数包。
- gonum - 科学包(线性代数、BLAS、LAPACK、微分、绘图、线性规划、统计等)。
- go-symexpr - 带有导数、简化和非线性回归的 AST 的符号数学。
- gsl - GNU 科学库绑定。
- humanize - 将大数字格式化为人类可读的小数字。
- interval - interval 包处理位于两个(可能是无限的)边界之间的有序值的集合。
- mathutil - mathutil 包提供补充标准“math”和“rand”包的实用程序。
- mt19937_64 - 梅森旋转 int64 随机源。
- permutation - permutation 包生成切片索引的排列
- polyclip.go - Go 实现的二维多边形布尔运算算法
- primegen.go - 阿特金筛素数生成器
- prime - Go 版本的分段筛法和非分段筛法来生成素数
- primes - 用于处理素数的简单功能。
- pso-go - 一个 Go 的 PSO(粒子群优化)库。
- rand - math/rand 包的 64 位版本,支持梅森旋转器。
- roger - RServer 的 Go 客户端,允许您从 Go 调用 R 程序。
- sparse - 用于线性代数的 Go 稀疏矩阵格式,支持科学和机器学习应用,与 gonum 矩阵库兼容。
- statistics - GNU GSL 统计 (GPLv3)
- stats - 一个统计包,包含 Golang 标准库中缺少的常用函数。
- Tideland golib - 用于统计分析的数值包
- Units - 实现了一些常见物理类型的类型、单位、转换函数和一些数学运算。lib
- vector - 一个小的向量库。
微服务
- car_registration - 全球汽车登记数据的 API 包装器
- go-doudou - 一个基于八卦协议和 OpenAPI 3.0 规范的去中心化微服务框架。内置 go-doudou cli 专注于低代码和快速开发,可以提升您的生产力。
- gokit - Go Kit 微服务框架(以及 作者访谈)。
- go-micro - Go Micro 是一个微服务库,它提供了编写容错分布式系统所需的必要构建块。
- kite - RPC 服务器和客户端框架。
其他
- atexit - 简单 atexit 库
- bíogo - Go 语言的基本生物信息学函数。
- Breaker - Breaker 通过使用断路器基元包装不可靠的跨服务接口点来实现优雅的降级模式操作。
- btcrpcclient - 一个支持 Websocket 的比特币 JSON-RPC 客户端。
- cast - 在 Go 中安全轻松地从一种类型转换为另一种类型
- CGRates - 为电信运营商世界设计的评分系统
- cpu - 一个 Go 包,用于报告处理器拓扑结构
- cron - 一个用于按 cron 格式的计划运行作业(函数)的库
- cvt - 轻松安全地将任何值转换为另一种类型
- daemonigo - 一个简单的库,用于将 Go 应用程序守护进程化。
- dbus-go - D-Bus Go 库
- desktop - 使用默认应用程序打开文件/uri(跨平台)
- devboard - 基于 Simple-Khanban 的看板应用程序
- dioder-api - IKEA dioder LED 灯带的 API
- doublejump - 改进的 Google jump 一致哈希
- dump - 一个类似于 PHP 的 var_dump 的工具,用于转储 Go 变量
- elPrep - 用于在 DNA 测序流程中准备序列比对/映射文件的高性能工具
- env - 轻松提取环境变量,并带有默认值
- epub - 用于 libepub 的绑定,用于读取 epub 内容。
- EventBus - 带有异步兼容性的轻量级事件总线,适用于 Go。
- faker - 生成虚假数据、姓名、文本、地址等。
- fasturl - 使用 Ragel 状态机的高性能 URL 解析库。
- fsnotify - Go 的文件系统通知
- functional - 函数式编程库,包括一个惰性列表实现和一些最常用的函数。
- GCSE - Go 代码搜索引擎。 source
- generate - 在指定路径或环境变量上递归运行 go generate,并可以通过正则表达式进行过滤。
- go-amiando - Amiando 活动管理 API 的包装器
- go-bit - 一个高效且全面的位集实现,具有实用位函数。
- go-bitops - 32/64 位整数的常见位运算
- go-business-creditcard - 验证/生成信用卡校验和/名称。
- gochem - 一个计算化学/生物化学库。
- gocsv - 用于 CSV 解析和输出的库
- go.dbus - D-Bus 的原生 Go 库
- go-ean - 一个用于验证 EAN-8 和 EAN-13 以及计算校验和的最小实用程序库。
- go-eco - 生态学中使用的函数
- go-erx - 扩展错误报告库
- go-eventsocket - 用于 FreeSWITCH 电话平台的事件套接字客户端/服务器库。
- GoFakeIt - 虚假数据生成器。65 多种不同的变体和每个变体的示例
- go-fann - 用于 FANN 的 Go 绑定,用于人工神经网络的库
- GoFlow - 用于 Go 的基于流和数据流的编程库
- goga - 一个遗传算法框架
- gogobject - 基于 GObject-introspection 的绑定生成器
- go-idn - 一个将 IDN 支持引入 Go 的项目,功能与 libidn 兼容
- GoLCS - 在 Go 中解决最长公共子序列问题
- golibs/as - 转换数据类型
- golife - 命令行的生命游戏实现
- go-magic - libmagic 的 Go 包装器
- go-magic - Go 编程语言的 libmagic 简单接口
- go-metrics - Go 移植自 Coda Hale 的 Metrics 库
- gommap - gommap 使 Go 程序能够以非常有效的方式直接处理内存映射文件和设备
- gomusicbrainz - MusicBrainz WS2 客户端库
- goneuro - NeuroSky 设备的 Go 驱动程序。
- goNI488 - 一个围绕 National Instruments NI488.2 通用接口总线 (GPIB) 驱动程序的 Go 包装器。
- go-osx-plist - Go 的 CoreFoundation 属性列表支持
- go-papi - Go 接口到 PAPI 性能 API
- go.pcsclite - 用于 pcsc-lite 的 Go 包装器
- Go-PhysicsFS - 用于 PhysicsFS 归档访问抽象库的 Go 绑定。
- go.pipeline - 模拟 Unix 管道的库
- go-pkg-mpd - 用于访问 MPD 音乐守护程序的库
- go-pkg-xmlx - 标准 Go XML 包的扩展。维护一个节点树,允许向前/向后浏览,并公开一些简单的单/多节点搜索功能
- goplan9 - 用于与 Plan 9 交互的库
- goPromise - Go 的类似 Scheme 的延迟求值
- gopensky - 用于 opensky network live 的 API 的 Go 客户端(空域 ADS-B 和 Mode S 数据)
- go-qrand - 用于 random.irb.hr 的量子随机位生成器服务的 Go 客户端
- goraphing - 用于从 JSON 数据文件生成简单图形数据结构的工具
- go-selenium - Go 的 Selenium WebDriver 客户端
- go-semvar - 语义版本(请参阅 http:/semver.org)
- go-serial - 用于串行端口功能的 libserialport 的 Go 绑定(cgo)。
- goST - 为 Go 编写的蒸汽性质(蒸汽表)库。 它是 XSteam 的原生 Go 等效物。
- go-taskstats - 用于 Linux 任务统计的 Go 接口
- gotenv - 从
.env
文件加载环境变量 - Gotgo - 一个 Go 预处理器,提供泛型的实现
- go-translate - 谷歌语言翻译库
- go-uuid - 通用唯一标识符生成器和解析器
- gouuid - 纯 Go UUID v3、4 和 5 生成器,与 RFC4122 兼容
- go-villa - 一些杂项包装器和小型算法。(切片的包装器、优先级队列、与路径相关的 API、字符串集类型)
- go-wkhtmltopdf - wkhtmltopdf Go 绑定和用于 HTML 到 PDF 转换的高级接口。
- Hranoprovod - 命令行卡路里跟踪工具
- lineup - 一个极简的的消息队列服务器
- mitigation - mitigation 包提供了防止错误或漏洞造成的损害的可能性。
- nject - 类型安全的依赖注入
- nma.go - 一个用于 Go 的 NotifyMyAndroid 客户端。
- notify - 文件系统事件通知库,其 API 与 os/signal 类似。
- pargo - 用于 Go 中并行编程的库。
- passwd - 用于 /etc/passwd 文件的解析器
- pool - 一个通用的工作池
- procfile - 一个 Procfile 解析器
- Prometheus Instrumentation/Metrics Client - 这是一个用于 Go 编写的服务器的白盒仪表框架。 它会自动公开以编程方式生成的指标,供 Prometheus 时间序列收集和后处理环境使用。
- randat - 用于生成随机字节串和以代码友好的形式编码文件的开发工具
- recycler - 比 sync.Pool 更灵活的对象回收系统。 为对象提供构造函数和析构函数,以及对空闲长度的控制。
- replaykit - 用于回放时间序列数据的库。
- serial - 串行端口 API(纯 Go)
- sio - sio 包允许你访问旧的串行垃圾。 它是 dustin 的 rs232 包的可获取的 fork 和修改版本。
- stats - 监控 Go MemStats + 系统统计信息(如内存、交换和 CPU),并通过 UDP 发送到任何你想记录的地方。
- symutils - 用于处理符号链接的各种工具和库
- toktok - 创建和解析唯一、防错、人类可读的令牌
- twitterfetcher - 一个使用 应用程序专用身份验证 发出 Twitter API 请求的工具
- udis86 - 用于 libudis86 的 Go 绑定
- ugo - Go 的 underscore.js 类工具箱
- Vboxgo - 从 Go 对 VirtualBox 虚拟机进行用户级访问。
- vk - 非官方的 vk.com API 包装器(vk.com 俄罗斯社交网络)
- WUID - 一个极快的唯一数字生成器,速度是 UUID 的 10-135 倍。
- Wukong - 一个用 Go 编写的可高度扩展的全文搜索引擎。
- xdg - XDG 基础目录规范和 XDG 用户目录的 Go 实现。
- xplor - 用于 p9p acme 的文件树浏览器
- yubigo - Yubikey OTP 验证和身份验证 API 客户端。
音乐
- gmask - Csound 的 Cmask 实用程序的 Go 适配
- go-csnd6 - Csound6 API 的 Go 绑定
- go-csperfthread - Csound6 API 的 CsoundPerformanceThread 辅助类的 Go 绑定
- go-libshout - 用于 libshout 的 Go 绑定
- gompd - 用于 MPD(音乐播放器守护程序)的客户端接口
- launchpad - 用于 Novation Launchpad 的 Go 客户端
- portmidi - 用于 libportmidi 的 Go 绑定
网络
DNS
- bitz - BitMessage 客户端节点和库
- dingo - 支持 Google DNS over HTTPS 的 Go DNS 客户端
- dns - Go 中的客户端和服务器实现
- dns - Go 中的 DNS 库
- dnsimple - 与 DNSimple API 的接口
- dnss - DNS 安全代理,支持 DNS over HTTPS 和 GRPC
- domainerator - 命令行工具,用于将词列表和后缀/TLD 组合成域名,并检查它们是否已注册。
- dyndnscd - 一个可配置的动态 DNS 客户端
- GeoDNS - 地理感知权威 DNS 服务器
- grong - 小型权威 DNS 域名服务器
- hostsfile - /etc/hostsfile 反向查找 IP => 名称
- lib/dns - 用于客户端或服务器的 DNS 库,支持 UDP、TCP 和 DNS over HTTPS
- mdns - Go 的组播 DNS 库
- rescached - DNS 解析器缓存守护程序
FTP
- ftp4go - 用于 Go 的 FTP 客户端,最初是标准 Python FTP 客户端库的移植版本
- ftp - ftp 包提供了一个 RFC 959 中定义的最小 FTP 客户端
- ftps - FTPS 协议的实现
- goftp - 一个 FTP 客户端库
HTTP
- apiproxy - 用于 HTTP/REST API 的代理,具有可配置的缓存超时时间
- boom - 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 - Go 中用于 XML 的流式 API (StAX)
- handlers - 有用的 HTTP 中间件的集合。
- HTTPLab - HTTPLabs 允许你检查 HTTP 请求并伪造响应。
- httpmock - 从外部资源轻松模拟 HTTP 响应
- httptail - 工具将 stdout/stderr 推送到 http 分块
- sling - 用于创建和发送 API 请求的 Go HTTP 客户端库。
- stress - ApacheBench(ab) 的替代品,支持事务请求,支持命令行和包引用到 HTTP 压力测试工具。
IMAP
即时消息
- gobir - 具有频道管理、已见支持和 Go 文档查询的可扩展 IRC 机器人
- goexmpp - XMPP 客户端实现
- goirc - 基于事件的、有状态的 IRC 客户端框架
- go-irc - 简单的 IRC 客户端库
- gorobot - 一个模块化的 IRC 机器人
- go-xmpp - XMPP 客户端库
- hanu - 用于编写 Slack 机器人的框架
- ircflu - 支持命令、脚本和 Web 钩子的 IRC 机器人
- irc.go - Go IRC 机器人框架
mellium.im/xmpp
一个低级的 XMPP 客户端和服务器库,专注于良好的文档和简洁、易用的 API- sirius - [链接已损坏] 用 Go 编写的快速且超轻量级的聊天服务器
- xmpp-client - 支持 OTR(离线记录)的 XMPP 客户端
NNTP
- go-nntp - 用于 Go 的 NNTP 客户端和服务器库
Protocol Buffers
- gogoprotobuf - 另一个 Go 实现的 Protocol Buffers,但具有扩展和代码生成插件。
- golang_protobuf_extensions - Protocol Buffer 扩展,支持流式消息编码和解码。
- goprotobuf - Google Protocol Buffers 的 Go 实现。
- protorpc - 用于 Go 和 C++ 的 Google Protocol Buffers RPC。
rsync
- replican-sync - Go 中 rsync 算法的实现。
- Rsync - Rsync 算法作为 Go 库。
Telnet
- telnet - telnet 包提供 TELNET 和 TELNETS 客户端和服务器实现,用于 Go 编程语言,风格类似于“net/http”库(它是 Go 标准库的一部分),包括对“中间件”的支持;TELNETS 是安全的 TELNET,在安全的 TLS(或 SSL)连接上使用 TELNET 协议。
- telnet - 用于与 Telnet 连接交互的简单接口。
- telnets - TELNETS(安全 TELNET)协议的客户端。
VNC
- glibvnc - 使用 CGO 为 libvnc 库编写的 Go 包装器。
WebSockets
- Gorilla WebSocket - WebSocket 协议实现。
- lib/websocket - 用于编写 websocket 客户端和服务器的库(使用 epoll)。
- websocketd - 将 STDIN/STDOUT 程序转换为 WebSockets 服务的 HTTP 服务器。还处理 HTML 和 CGI。
- ws-cli - WebSocket 命令行客户端。
- wst - 一个非常简单的 WebSocket 测试器。
ZeroMQ
- goczmq - CZMQv3 接口的包装器 - 博客文章
- gozmq - Go 绑定 0mq (zeromq/zmq)。
- zmq2 - Go 到 ZeroMQ (zmq, 0MQ) 版本 2 的接口。
- zmq3 - Go 到 ZeroMQ (zmq, 0MQ) 版本 3 的接口。
- zmq4 - Go 到 ZeroMQ (zmq, 0MQ) 版本 4 的接口。
其他网络
- betwixt - Betwixt 实现用于设备管理和监控的 OMA 轻量级 M2M (LWM2M) 协议。
- canopus - CoAP 客户端/服务器实现 (RFC 7252)。
- chunkedreader - 用于从 TCP 流中读取连续固定大小消息的轻量级库。
- circle - Go 到 libcircle 分布式队列 API 的接口。
- createsend-go - Campaign Monitor(电子邮件营销服务)的 API 客户端。
- cwmp-proxy - 反向 cwmp 代理。
- dmrgo - 用于与 Hadoop Streaming 映射/归约的库。
- doozerconfig - 用于在 Doozer 中管理 json 编码配置的 Go 包。
- doozerd - 一致的分布式数据存储。
- endless Go 服务器零停机重启(可替代 http.ListenAndServe/TLS)。
- gearman-go - Gearman API 的原生 Go 实现。
- Glue - 健壮的 Go 和 Javascript 套接字库(Socket.io 的替代方案)。
- goagain - Go 中的零停机重启。
- Go Ajax - Go Ajax 是一个旨在创建 AJAX 驱动的网站的 JSON-RPC 实现。
- gobeanstalk - Go Beanstalkd 客户端库。
- go-camo - Go http 图片代理(camo 克隆),用于通过 SSL 路由图片。
- go-dbus - 连接到 D-bus 消息系统的库。
- go-diameter - 直径堆栈和基本协议 (RFC 6733)。
- go-flowrate - 数据传输速率控制(监控和限制)。
- gogammu - 用于发送和接收短信的库。
- go-icap - ICAP(互联网内容自适应协议)服务器库。
- Gollum - 一个 n:m 多路复用器,它从不同的来源收集消息并将它们广播到一组目的地。
- go-nat-pmp - 用于 Apple 和开源路由器中使用的 NAT-PMP 协议的客户端。
- gonetbench - 简单 TCP 性能测试工具。
- gonetcheck - 用于检查一般互联网访问的包。
- goodhosts - Go 中简单的主机文件 (/etc/hosts) 管理。
- gopacket - 数据包编码/解码、pcap/pfring/afpacket 支持、TCP 组装等!
- gopcap - libpcap 的简单包装器。
- goq - 用 Go 编写的持久消息队列。
- goradius - 用 Go 编写的 Radius 客户端。
- go-rpcgen - 用于 net/rpc 和 AppEngine 的 ProtoBuf RPC 绑定生成器。
- gorpc - 为高负载优化的 RPC。
- GoRTP - Go 的 RTP/RTCP 堆栈实现。
- GoSIPs - Go 中的 SIP(会话发起协议)堆栈。
- go-smpp - SMPP 3.4 协议实现。
- gosndfile - libsndfile 的 Go 绑定。
- gosnmp - 用 GoLang 编写的 SNMP 库。
- go-socket.io - 用 Go 编写的 Socket.IO 后端实现。
- gosocks - Go 中的 SOCKS(SOCKS4、SOCKS4A 和 SOCKS5)代理客户端库。
- go-sslterminator - SSL 终止代理。
- go-statsd-client - Go statsd 客户端库。
- Grumble - Mumble(VoIP)服务器实现。
- handlersocket-go - Go 原生库,用于连接到 InnoDB 表的 HandlerSocket 接口。
- HomeControl - Apple HomeKit 附件协议 (HAP) 的实现。
- Hprose - Hprose 是一个高性能远程对象服务引擎。
- httpfstream - HTTP 资源的流式追加和跟随(使用 WebSockets)。
- humanize-bytes - 将“MiB”等转换为原始数字,反之亦然的命令行实用程序。
- ipaddress - 方便的 IP 地址函数:ip -> int、int -> ip 和 IPNet 广播地址。
- iris-go - Iris 分布式消息框架的 Go 绑定。
- iris - 用于后端分散化的点对点消息传递。
- kafka.go - Kafka 消息系统的生产者和消费者。
- lcvpn - 分布式 VPN 实现。
- ldap - 用于 GO 编程语言的基本 LDAP v3 功能。
- mbxchan - 使用标准 Go 通道和远程过程调用在分布式 Go 应用程序之间进行轻松通信。
- mqtt - Go 中的 MQTT 堆栈。
- nagiosplugin - 用于编写 Nagios/监控插件的包。
- NATS - Go 的 NATS 分布式消息系统客户端。
- netsnail - 低带宽模拟器。
- netstat-nat - 显示 Linux 系统上的 NAT 条目。
- netutils - 将 TCP 套接字转换为通道的简单接口。
- norm - 使用多播和单播套接字的可靠 UDP。
- npipe - Windows 命名管道的纯 Go 包装器。
- opendap - Openldap 的 Go 包装器。
- pusher-http-go - 用于与 Pusher 实时 API 交互的 Go 库。
- QRP - QRP 是一种简单的基于数据包的 RPC 协议,旨在作为 Go 的 rpc 的简单替代方案,它可以在 UDP 上运行。
- remotize - 一个 remotize 包和命令,帮助远程方法,无需更改其签名以进行 rpc。
- Resgate - 用于 NATS 的实时 + REST API 网关,用于创建具有实时数据的 Web API。
- rs232 - 对于我们这些仍然有调制解调器(或 Arduino)的人来说,串行接口。
- rss - RSS 解析库。
- seamless - 具有 HTTP 管理 API 的反向 TCP 代理。
- sftp - SSH 文件传输协议 v3,如 draft-ietf-secsh-filexfer-02.txt 中所定义。
- shell2http - 通过简单的 http 服务器执行 shell 命令。
- sockjs-go - 为 SockJS-client 浏览器库实现服务器端对应物。
- SOCKS5 Server - 具有访问控制列表的可扩展 SOCKS5 服务器。
- spark - 紧急 Web 服务器(用于静态文件)。
- spdy - SPDY 库,连接到 net/http,目前只支持服务器。
- statsd-go - Go 中的 Statsd 实现,从 gographite 分叉,它提交到 Ganglia。
- stompngo_examples - stompngo 的示例。
- stompngo - 一个与 Stomp 1.1 兼容的客户端。
- tcp_fallback - 一个实现简单回退机制的 TCP 代理。
- tcpmeter - 一个 TCP 吞吐量测量工具。
- toxiproxy - 用于模拟网络条件的框架。
- traceroute - 一个 traceroute 实现。
- traefik - 使用 Go 构建的现代反向代理。
- Uniqush - 一款免费的开源软件,为移动设备上的应用程序提供服务器端通知的统一推送服务。
- uritemplates - URI 模板(RFC 6570)的 4 级实现。
- VDED - 矢量增量引擎守护进程 - 跟踪不断增长的值中的增量(用 Go 编写)。
- zero-downtime-daemon - 任何类型的 TCP、HTTP、FCGI 服务的可配置零停机守护进程(热更新)框架。
- zeroupgrade - 以零停机时间升级网络服务器。
操作系统接口
- Go FUSE 文件系统库 - 基于 Russ Cox 的内核-用户空间通信协议的从头开始的实现。
- Go-fuse - 用于在 Go 中编写 FUSE 文件系统的库。
- go-nbd - 用于在 Go 中为 Linux 编写块设备的库。
- go-osx-xattr - 包 xattr 包装 OS X 函数以操作文件、目录和符号链接的扩展属性。
- inspect/os - 用于操作系统度量(Linux/MacOSX)的指标库。
- service - Service 将在 Windows/Linux 和 OSX 上将程序安装/卸载、启动/停止,并以服务(守护进程)的形式运行。
选项类型
- opt - 包 opt 为 Go 编程语言实现了一种可选类型。在其他编程语言中,可选类型可能被称为:选项类型或可能类型。
其他随机玩具、实验和示例代码
- goconc - Go 的有用并发习语和函数的集合,已编译。
- go-crazy - Go 的实验性源到源编译器。
- go-gtk-demo - 关于如何将 GTK+ 与 Go 一起使用的演示。
- go-hashmap - 纯 Go 中的哈希表,作为 Go 性能的实验。
- golang-examples - 一堆 Go 语言示例。
- GolangSortingVisualization - Go 中各种排序算法的可视化。
- golibs - 一组微小的 Go 包(也是各种 CI 和覆盖率服务的测试仓库)。
- goplay - 一堆 Go 中的随机小型程序。
- lifegame-on-golang - Go 中的生命游戏。
- linear - 用线性代数玩。
- pl0 - PL/0 前端、编译器和 VM。
- project euler in go - Go 中的 Project Euler 解决方案。
- shadergo - 使用 Go 进行着色器测试。
- travisci-golang-example - Go 的 Travis-CI 示例。
P2P 和文件共享
- DHT - 台北-Torrent 使用的 Kademlia DHT 节点,与 BitTorrent 兼容。
- DHT - BitTorrent DHT 协议 && DHT 蜘蛛。
- ed2kcrawler - eDonkey2000 链接爬虫。
- gop2p - 一个简单的 p2p 应用程序,用于学习 Go。
- go-p2p - 用于区块链等的 P2P 模块。
- GoTella - Gnutella 协议的 Go 实现。
- Rain - BitTorrent 客户端和库。
- Taipei-Torrent - 一个 BitTorrent 客户端。
- Tendermint - P2P 拜占庭容错共识和区块链堆栈。
- wgo - 一个简单的 BitTorrent 客户端,部分基于 Taipei-Torrent 和 gobit 代码。
编程
- go-clang - libclang C-API 的 cgo 绑定。
- godeferred - jsdeferred 的移植:http://cho45.stfuawsc.com/jsdeferred/
- go-galib - 一个遗传算法库。
- go-intset - 一个用于处理整数有界集的库,包括多种备选实现。
- go-parse - 一个类似 Parsec 的解析库。
- go-slices - 用于操作 Go 中切片的辅助函数,就像官方的“strings”包提供的那样。
- sh - 一个 shell/bash 解析器和格式化程序。
- Shuffle - Go 中 Fisher Yates 洗牌(或 Knuth 洗牌)的实现。
资源嵌入
- fileb0x - 将文件嵌入 Go 中的简单工具,重点关注“自定义”和易用性。
- go-bindata - 将任何文件转换为可管理的 Go 源代码的包。
- go-resources - 使用 Go 进行简单的资源嵌入。
- go.rice - go.rice 是一个 Go 包,它使使用 html、js、css、图像和模板等资源变得非常容易。
- implant - implant 允许从一系列目录(递归地)嵌入静态资源。
- statics - 将静态资源嵌入到 Go 文件中,以进行单二进制编译 + 与 http.FileSystem + 符号链接配合使用。
RPC
扫描器和解析器生成器
- ebnf2y - 用于将 EBNF 语法转换为 yacc 兼容的骨架 .y 文件的实用程序。
- flexgo - 一个可以生成 Go 代码的 flex 版本。
- fsm - FSM(NFA、DFA)实用程序。
- gocc - Go 编译器编译器。
- golex - 类似 Lex/flex 的快速(DFA)扫描程序生成器。
- gopp - Go 解析器解析器。
- 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 - Yahoo! 的大型安全扫描仪。
- hyperfox - 用于在 LAN 上代理和记录 HTTP 和 HTTPS 通信的安全工具。
- lego - Let's Encrypt 客户端和 ACME 库。
- webseclab - 一组 Web 安全测试用例示例,以及用于构建新用例的工具包。
仿真建模
- godes - 用于构建离散事件仿真模型的库。
排序
- 冒泡排序 - 冒泡排序算法 的最小实现
- 鸡尾酒排序 - 鸡尾酒排序算法 的最小实现
- 漏斗排序 - 延迟漏斗排序 - 一种缓存无关排序算法
- Sortutil - Go 的嵌套、不区分大小写和反向排序。
- sortutil - Go 标准“sort”包的补充工具
- tarjan - 基于 Tarjan 算法的图循环检测函数
- timsort - 快速稳定的排序,使用外部比较器或 sort.Interface
源代码管理
- Gitfile - 用于安装 git 仓库的轻量级包管理器
- go-deps - 分析并递归地安装 Go 包依赖项(库功能类似于
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 是一个用于管理称为“nuts”的版本化 Go 源代码包的工具。
- vcstool - VCS 抽象工具
存储
- libStorage - 一个开源、平台无关的存储配置和编排框架、模型和 API
- Minio - 与 Amazon S3 API 兼容的对象存储
- OpenEBS - 容器化的、开源的块存储,适用于您的容器,与 K8S 和其他环境紧密集成,基于分布式块存储和存储控制容器化
- storage - 面向应用程序的 Golang 统一存储层
字符串和文本
- allot - 用于 CLI 工具和机器人的占位符和通配符文本解析
- asciidoctor-go - 用于解析和转换 asciidoc 标记语言的原生 Go 模块。
- awk - Go 中简便的 AWK 风格文本处理
- binarydist - 二进制差异和补丁
- Black Friday - 一个 Markdown 处理器
- codename-generator - 用于命名软件版本的代号生成器
- columnize - 将切片或数组格式化为对齐的列
- csvplus - 使用流畅的接口、延迟流操作、索引和联接扩展标准 Go encoding/csv 包。
- csvutil - 一个强大的 CSV 读取和写入库。
- dgohash - 字符串散列函数集合,包括 Murmur3 等
- douceur - Go 中的简单 CSS 解析器和内联器。
- dsv - 用于处理分隔值(DSV)的库。
- flux - Go 中的流畅正则表达式
- frontmatter - Go 库,用于检测和解码各种内容前置格式。
- genex - 正则表达式的扩展
- gettext-go - GNU 的 gettext 支持,用纯 Go 编写
- gettext - Golang 对 gettext 的绑定;功能完备,cgo
- goagrep - 使用预计算的快速模糊字符串匹配
- go-colortext - 更改控制台中文本和背景的颜色,在 Windows 和其他系统中均有效。
- go-guess - Go 对 libguess 的包装
- goini - 一个用于解析 INI 文件的 Go 库
- golorem - lorem ipsum 生成器
- go-migemo - Go 的 migemo 扩展(日语增量文本搜索)
- go-ngram Go 的 N 元索引
- goregen - 一个用于根据正则表达式生成随机字符串的 Go 库。
- goskirt - Go 的 Upskirt Markdown 库绑定
- gosphinx - Sphinx 独立全文搜索引擎的 Go 客户端接口
- govalidator - 字符串验证器和清理程序包
- goKMP - 使用 Knuth Morris Pratt 算法在 Go 中进行字符串匹配
- hangul - 用于操作韩文字符的便捷工具
- html2text - Golang HTML 到文本转换库
- intern - 将字符串映射到符号以进行恒定时间比较
- kasia.go - 用于 HTML 和其他文本文档的模板系统
- kview - kasia.go 模板的简单包装器。它有助于模块化网站内容
- liquid - Shopify Liquid 模板的完整实现
- logparse - 最常见日志格式的解析器
- NTemplate - 嵌套模板
- parse - 使用反射定义语法的 PEG 解析器
- peg - 解析表达式语法解析器
- pigeon - 用于 Go 的解析表达式语法 (PEG) 解析器生成器
- plural - 用于格式化可计数和连续值范围的无忧复数。
- polyglot - 用于 Go 的字符串翻译工具
- pretty - Go 值的漂亮打印
- raymond - Go 中的完整 handlebars 实现。
- rubex - 一个简单的正则表达式库,支持 Ruby 的正则表达式语法。它比 Regexp 快。
- sanitize - sanitize 包提供了用于清理 html 和文本的函数。
- scanner - 一个文本扫描器,用于解析基本类型,类似于 Java 的
- segment - Norvig 递归词语分割算法的实现
- sprig - Go 模板的模板函数。
- strftime - strftime 实现
- strit - strit 包引入了新的字符串迭代器类型,以及一些迭代器构造函数、包装器和组合器。
- strogonoff - 使用 Go 的速记
- strutil - Golang 指标,用于计算字符串相似度和其他字符串实用程序函数。
- strutil - strutil 包收集了标准字符串包的补充工具。
- text - 文本段落换行和格式化
- Tideland golib - 用于统计分析的 Stringex 包
- TySug - 相对于键盘布局的备选建议。
- useragent - 用户代理字符串解析器
- xurls - 从文本中提取 url
测试
- assert - 用于 go 测试的断言。
- assert - 方便的断言包。
- assert - 与原生 go 测试一起使用的基本断言库,带有用于自定义断言的构建块
- assert - 具有出色错误消息的 JUnit 风格断言
- biff - 分叉测试框架,兼容 BDD。
- charlatan - 用于为测试生成假接口实现的工具。
code.soquee.net/testlog
一个log.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 测试,干净的 DSL - gocov - 代码覆盖测试/分析工具
- gomega - Ginkgo 首选的匹配器库。
- 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 的 xunit
- GSpec - 表达性、可靠性、并发性和可扩展性 的 Go 测试框架,它可以提高组织和验证软件思维模型的效率。
- Gremlins - Go 的变异测试工具。
- httpexpect - 简洁、声明性和易于使用的端到端 HTTP 和 REST API 测试
- make.go.mock - 为 Go 接口和函数生成类型安全的模拟。
- mspec - BDD 框架,让你可以用自然的 BDD 语言先 Stub 和 Spec 代码。
- muxy - 模拟现实世界的分布式系统故障。
- Nitro - Go 的快速简便的分析器
- Pegomock - 基于 golang/mock 的模拟框架,但使用与 Mockito 紧密相关的 DSL。
- rapid - 具有集成缩减功能的基于属性的测试库
- terst - Go 的简洁易用的测试库
- test2doc - 从您的单元测试为您的 go 单元生成文档。
- testfixtures - 用于测试数据库驱动应用程序的类似于 Rails 的测试夹具。
- testflight - Go 中轻松的 http 测试
- Testify - 一组包,提供许多工具来证明你的代码将按预期运行。
- ut - 令人惊叹的模拟,没有魔法。
转译器
验证
- validator - Go 结构体和字段验证,包括跨字段、跨结构体、映射、切片和数组深入
- validation - 简单独立的结构体/键值验证
版本控制
- gitea - 一杯茶的 Git,无痛自托管 Git 服务
- git (in go) - Go 中最小的工作 Git 客户端
- gogs - Go 中的自托管 Git 服务器
- semver - 语义版本控制 (SemVer) 库
虚拟机和语言
- agora - 用 Go 构建的动态类型、垃圾回收、可嵌入编程语言
- anko - 用 golang 编写的可脚本化解释器
- evalfilter - 用于过滤对象的嵌入式评估引擎。
- expr - 具有静态类型的表达式求值器
- forego - Forth 虚拟机
- Gelo - 可扩展、可嵌入的解释器
- Gentee - 可嵌入的脚本编程语言
- GoAwk - golang 中的 awk 实现。
- GoBASIC - 用 golang 编写的可嵌入 BASIC 解释器。
- GoEmPHP - 此包用于将 PHP 嵌入 Go
- goenv - 创建一个隔离的环境,你在其中安装 Go 包、二进制文件,甚至 C 库。非常类似于 Python 的 virtualenv。
- GoForth - 一个简单的 Forth 解析器
- Goja - 用 Go 编写的 ECMAScript 5.1(+) 实现(otto 分支,带有字节码编译器)
- golem - 一种通用的解释型脚本语言。
- golemon - Lemon 解析器生成器的移植版
- GoLightly - 具有运行时可配置指令集的灵活轻量级虚拟机
- goll1e - Go 编程语言的 LL(1) 解析器生成器。
- Golog - Go 中的 Prolog 解释器
- golua - GoLua 的一个分支,适用于 Go 的当前版本
- go-lua - Shopify 的 lua 解释器
- gomruby - Go 的 mruby(迷你 Ruby)绑定
- gopher-lua - 用 Go 编写的 Lua 5.1 VM 和编译器
- go-php - Go 的 PHP 绑定
- go-python - Go 的 CPython C-API 绑定
- gotcl - Go 中的 Tcl 解释器
- go-v8 - Go 的 V8 JavaScript 引擎绑定
- go.vm - 解释字节码的简单虚拟机。
- Hivemind - 基于 Procfile 的应用程序的进程管理器
- LispEx - 用 Go 编写的 Lisp 方言,扩展为支持并发编程。
- Minima - 用 Go 实现的语言
- ngaro - 运行 retroForth 映像的 ngaro 虚拟机
- otto - 用 Go 本地编写的 JavaScript 解析器和解释器
- Overmind - 基于 Procfile 的应用程序和 tmux 的进程管理器
- py4go - Go 的 Python 3 绑定
- RubyGoLightly - TinyRb 到 Go 的实验性移植
- Scriggo - Go 解释器和模板引擎,使用 Go 作为脚本语言
- v8 - Go 的 V8 JavaScript 引擎绑定(支持至少到 5.8.244 的 V8 版本)
- Yaegi - Go 中的完整 Go 解释器
Web 应用程序
- Caddy - 快速、功能强大、通用的 HTTP/2 Web 服务器,易于使用
- Dataflowkit - 将网站转换为结构化数据的 Web 抓取服务。
- Digestw - 一个 Web 应用程序 - Twitter 的时间线摘要
- fabio - 微服务的快速零配置负载均衡 HTTP 路由器。
- Filestash - SFTP、S3、FTP、WebDAV、Git、Minio、LDAP、Caldav、Carddav、Mysql、Backblaze 等的 Web 客户端。
- fourohfourfound - 一个回退 HTTP 服务器,它可能会使用运行时可配置的重定向来重定向请求
- Fragmenta - 用 Go 构建的 CMS
- freegeoip - IP 地理位置 Web 服务(freegeoip.net 的 Web 服务器)
- Freyr - 用于存储和提供来自植物环境传感器读数的服务器。将 Golang API 与 ReactJS Web 应用程序集成;使用 Docker 进行测试/部署。
- goals-calendar - 用 Go 实现的基于 Web 的 Seinfeld 日历
- goblog - 一个静态博客引擎
- gocrawl - 一个礼貌、轻量级且并发的网络爬虫。
- goflash - Flash 播放器在 Go 语言中的实现
- gogallery - 一个简单的 web 服务器,重点在于轻松浏览图像
- gojekyll - Jekyll 静态网站生成器的 Go 语言克隆
- goof - 一个简单的 http 服务器,用于通过 http 交换文件(上传/下载)
- gopages - 一个类似 php 的 web 框架,允许在网页中嵌入 Go 代码
- go_spider - 一个灵活、模块化和并发的网络爬虫框架。
- GoURLShortener - http://is.gd/ URL 短链接的界面
- gowall - 一个网站和用户系统
- grabbit - 一个基于 RabbitMQ 的轻量级事务消息总线
- httpfolder - 一个 http 服务器,用于通过 http 交换文件,并提供基本身份验证(上传/下载)
- Hugo - 一个用 Go 实现的快速且灵活的静态网站生成器
- Já Vai Tarde - Twitter 取消关注监控
- kurz.go - 基于 web.go 和 redis 的 URL 短链接器
- Monsti - 资源友好的平面文件 CMS,适用于私人和小型企业网站。
- now.go - 一个简单的基于 HTTP 的待办事项队列。
- Peach - 用于多语言、实时同步和可搜索文档的 Web 服务器。
- Presento - 最简单的跨平台演示文稿遥控器
- rabbitmq-http - RabbitMQ 的 REST API
- Rickover - 带有 HTTP API 的作业队列,由 Postgres 支持
- serve-files - 围绕标准 net/http 服务器的远期和 gzip 包装器。
- sf_server - 一个微型的发送文件服务器和客户端
- SuperSaaS API Client - supersaas.com 调度/预订/约会 API 的 HTTP 客户端库
- Tideland golib - 用于 REST 请求处理的 Web 包
- Vantaa - 一个用 Go、Neo4j 和 Polymer 编写的模块化博客 API 引擎。
- websiteskeleton - 简单 net/http 网站框架
- webtf - 使用 HTML5 对 Twitter 时间线进行图形可视化的 Web 应用程序
- Wikifeat - 使用 CouchDB 的可扩展 wiki 系统,用 Golang 编写
- jweb - 一个受 Symfony(https://symfony.com/) 启发的框架,用 Go 编写
Web 库
身份验证
- authcookie - 包 authcookie 实现签署身份验证 cookie 的创建和验证。
code.soquee.net/otp
使用 HOTP (RFC-4226) 和 TOTP (RFC-6238) 生成一次性密码的库。包括不太常用的配置文件,以及用于灵活窗口的自定义时间函数。- dgoogauth - Google 的 Authenticator 库用于一次性密码的 Go 端口
- goauth - 用于基于标头的 HTTP 或 HTTPS 上的 OAuth 的库。
- GOAuth - OAuth 消费者
- goha - Go http 客户端的基本和摘要式 HTTP 身份验证
- go-http-auth - HTTP 基本和 HTTP 摘要身份验证
- Go-OAuth - OAuth 1.0 客户端
- go-otp - 包 go-otp 实现用于 RSA 令牌等双因素身份验证系统的一次性密码生成器。目前,它支持 HOTP (RFC-4226)、TOTP (RFC-6238) 和 Base32 编码 (RFC-3548) 以实现 Google Authenticator 兼容性
- goth - 包 goth 为 Go Web 应用程序提供了一种简单、干净且惯用的方法来编写身份验证包
- hero - OAuth 服务器实现 - 使用 Go 成为 OAuth 提供者
- httpauth-go - 包 httpauth 提供支持 HTTP 身份验证策略的实用程序。它支持基本身份验证方案和摘要身份验证方案。
- httpauth - 基于 HTTP 会话(cookie)的身份验证和授权
- oauth1a - OAuth 1.0 客户端库
- OAuth 消费者 - OAuth 1.0 消费者实现
- otp - 带有 Google Authenticator 命令行替换的 HOTP 和 TOTP 库
- securecookie - 编码和解码安全 cookie
- totp - 基于时间的的一次性密码算法,在 RFC 6238 中指定,适用于 Google Authenticator
- fosite - 用于 Go 的可扩展安全性优先的 OAuth 2.0 和 OpenID Connect SDK。
- oauth2 - Go 编程语言的 OAuth 2.0 服务器库。
- gin-oauth2 - 适用于也想要使用 OAuth2 的 Gin 框架用户的中间件
DOM 处理
- Cascadia - CSS 选择器库
- GoQuery - 使用 Go 的实验性 HTML 包的类似 jQuery 的 DOM 操作库。
- goq - 基于 GoQuery 的类似 jQuery 的声明式结构标签抓取和反序列化。
- html-query - 一种流畅且功能性的查询 HTML 方法。
- HTML Transform - 一个基于 CSS 选择器的 html 抓取和转换库
框架和工具包
- aah - 一个可扩展、高性能、快速开发的 Go Web 框架。
- Aero - Go 的快速安全的 Web 服务器。
- Air - Go 的理想 RESTful Web 框架。
- alien - 一个轻量级且快速的 http 路由器
- app.go - Google App Engine 的 Web 框架
- arasu - 用 Go 和 Dart 编写的闪电般快速的 Web 框架
- Beego - Beego 是可扩展的非阻塞 Web 框架的开源版本。
- browserspeak - 生成 HTML 模板、CSS 或 SVG,无需编写
<
或>
- eudore - Eudore 是 Go 轻量级 Web 框架的核心。
- falcore - 模块化 HTTP 服务器框架
- fcgi_client - 支持 fcgi 参数的 Go fastcgi 客户端
- Flamingo Framework - 用于构建可插拔的生产就绪 Web 项目的框架。
- florest - Go 中基于工作流的高性能 REST API 框架
- forgery - 优秀的 Node.js Web 框架 Express 的克隆。
- Gin Web Framework - 类 Martini 的 API 和 httprouter 使其具有良好的性能。
- Goal - Go 语言中用于提高 Web 开发效率的工具包,构建在代码生成的概念之上。
- Go-Blog - 用 Go 编写的博客框架
- go-fastweb - 旨在成为一个简单、小巧且干净的 Go MVC 框架
- goku - Go 的 Web Mvc 框架,与 ASP.NET MVC 类似。
- Golanger - Golanger Web 框架是一个用于用 Go 编写 Web 应用程序的轻量级框架。
- Goldorak.Go - 使用 mustache.go、web.go 和 Go-Redis 构建的 Web 微框架
- go-restful - 用于构建 REST 样式 Web 服务的精简包
- GoRest - 一个基于扩展配置(标签)的 RESTful 样式 Web 服务框架。
- go-rest - Go 的一个小巧而强大的 REST 框架
- gorilla - Gorilla Web 工具包
- GoSrv - 一个 Go HTTP 服务器,提供简单的命令行功能、配置加载、请求日志记录、优雅连接关闭和守护程序化。
- go-start - Go 的高级 Web 框架
- go-urlshortener - Google URL 短链接 API 的接口
- goweb - Go 的轻量级 RESTful Web 框架,提供类似 Ruby on Rails 的路由
- go-webproject - 模块化的 Web 应用程序框架和应用服务器
- Gowut - Go Web UI Toolkit 是一个功能齐全、易于使用、平台无关的 Web UI 工具包,用纯 Go 编写。
- Goyave - 一个优雅的、功能齐全的 Web 应用程序框架
- gramework - 真正 最快的 Go Web 框架。经过实战考验,是您的 Web 应用程序的有效基线。
- httpcoala - 用于请求合并的库 - 对于反向代理很有用。
- HttpRouter - 高性能 HTTP 请求路由器,可扩展性好
- limiter - Go 的简单速率限制中间件
- Macaron - Go 中的模块化 Web 框架
- mango - Mango 是一个 Go 的模块化 Web 应用程序框架,灵感来自 Rack 和 PEP333。
- Martini 已弃用 - Martini 是一个流行的、轻量级的、可扩展的包,用于在 Go 中编写模块化 Web 应用程序/服务
- Negroni - Go 的惯用中间件
- restclient - 用于与 RESTful API 交互的客户端库。
- resty - 受 Ruby rest-client 启发的 REST 客户端库。
- Revel - 模仿 Play! Framework 的高生产力 Web 框架
- Ringo - 受 Rails、Gin 启发的轻量级 MVC Web 框架。
- sawsij - 提供一个小型、有主见的 Web 框架。
- Tango - Go 的微内核和可插拔 Web 框架
- Tiger Tonic - 受 Dropwizard 启发,用于构建 JSON Web 服务的框架
- trinity - MVC 框架
- uAdmin - 具有类似于 Django 的后端 GUI 的 Web 框架。
- Utron - MVC 框架
- Violetear - HTTP 路由器
- web.go - 一个编写 Web 应用程序的简单框架
- wfdr - 专为 Go 设计和编写的简单 Web 框架。也适用于其他语言,但效果不如 Go 好。
- xweb - Go 的 Web 框架。就像 Java 的 Struts 一样。
HTML 表单
- form - 用于任意数据的完整双向 HTML 表单编码器和解码器 (x-www-form-urlencoded)(包编码兼容)
- gforms - Go 的 HTML 表单
- Go-FORM-it - Go 库,用于轻松且高度可定制的表单创建和模板渲染。
- GoForms - 表单数据验证、清理和错误报告 - a la django.forms
- htmlfiller - 使用默认值填充 HTML 表单,并像 Ian Bicking 的 Python htmlfill 一样显示错误
- MonstiForm - HTML 表单生成器和验证器库
- revel-csrf - 针对 Revel 框架的跨站点请求伪造 (CSRF) 攻击防御
- xsrftoken - 用于生成和验证用于防止 XSRF 攻击的令牌的包
公共 API 包装器
- adn - App.net API 接口
- anaconda - Twitter 1.1 API 的客户端库
- cloudcomb-go-sdk - Go 客户端库,用于 CloudComb
- ddg - DuckDuckGo API 接口
- facebook - 最新 Facebook 图形 API 客户端。方便灵活
- filepicker-go - Go 库,用于 Filepicker 的 REST API
- firebase - Firebase REST API 的客户端库
- gh - GitHub Webhooks API 的可脚本化服务器和 net/http 中间件
- github - 用于访问 GitHub REST API v3 的 Go 库
- githubql - 用于访问 GitHub GraphQL API v4 的 Go 库
- gobo - 新浪微博的客户端库
- gocaptcha - gocaptcha 提供在 go 中轻松访问 reCaptcha API 的方法
- go-dealmap - 用于访问 TheDealMap 的 API 的 Go 库
- go-dropbox - Dropbox API 库
- go-flickr - Flickr API 的包装器
- go-get-youtube - 用于获取元数据和下载 Youtube 视频的简单库+客户端
- go-gravatar - Gravatar API 的包装器
- go-hummingbird - 用于访问 Hummingbird.me API 的 Go 库
- go-libGeoIP - 用于 Maxmind 的 GO Lib GeoIP API
- gominatim - 用于访问 nominatim 地理编码服务的 Go 库
- gomojo - Instamojo API 包装器
- gomwapi - 在 golang 中访问维基百科、维基词典等维基百科内容
- go-myanimelist - 用于访问 MyAnimeList API 的 Go 库
- googtrans - Google Translate API v2 的非官方 Go 绑定
- go-recaptcha - 处理 Go 中的 reCaptcha 表单提交
- gorecurly - 用于与 Recurly 的 api 配合使用的客户端应用程序
- go-salesforce - Salesforce REST API 的包装器
- go.strava - Strava V3 API 的官方客户端库
- go.stripe - 使用 Stripe API 的 Go 的简单信用卡处理库
- Gotank - Searchify 的 Go 客户端,用于 IndexTank 全文搜索 API
- go-tripit - Go API 库,用于 TripIt Web 服务
- GoTwilio - Go (golang) 的 Twilio 库。目前非常基本
- gravatar - Gravatar 图像/配置文件 API 库
- jsonapi - 从 Go 结构生成 JSON API
- postmark - 从 Go 访问 postmark API
- reddit.go - Reddit API 的客户端库
- shorturl - 用于与各种 URL 缩短服务交互的通用实现
- SocialSharesCount - 多个社交网站的包装器 API,用于获取 URL 分享统计信息
- Stack on Go - Go 包装器,用于 Stack Exchange API
- stripe - 官方 Stripe 客户端库
- twilio - Twilio API 的简单包装器
- twittergo - Twitter API 的客户端库
- vksdk - 用于处理 VK API 的 Golang 模块
其他
- adhoc-http - 快速简便的 HTTP 静态文件服务器
- aop - Go 的面向切面的编程。
- assets - 有助于为 Go Web 应用程序的开发和生产准备 CSS 和 JS 文件。
- bwl - 一组用于构建网站的库
- captcha - 图像和音频验证码生成器和服务器
- gaerecords - 围绕 appengine/datastore 的轻量级包装器,提供 Active Record 和 DBO 样式的数据管理
- gcd - 提供用于处理 Google Cloud DataStore 的有用函数。
- get2ch-go - 用于访问日本 2ch 网络公告板的库
- gofeed - 在 Go 中解析 RSS 和 Atom 提要
- go-gzip-file-server - 一个类似于 FileServer 的 net.http.Handler,用于提供 gzip 压缩的内容。
- gohaml - 使用 Go 语言实现的流行 XHTML 抽象标记语言。
- go-httpclient - 带有超时功能的 Go HTTP 客户端。
- gojwt - 用于 Go 的 JSON Web Token。
- go-pkg-rss - 用于读取 RSS 和 Atom 订阅源的包。
- gorefit - 用于对现有网站进行主题化的库。
- goreman - foreman 的克隆。
- GoRequest - 简化的 HTTP 客户端,具有代理、超时等丰富的功能(灵感来自 Node.js SuperAgent)。
- goroute - 一个非常简单的 URL 路由器,基于正则表达式的命名子匹配,与 http.Handler 协同工作。
- gorouter - 用于处理 URL 变量的简单 Go 路由器。
- go-rss - 简单 RSS 解析器和生成器。
- go-rss - 简单 RSS 解析器,已使用 WordPress 订阅源进行测试。
- goscribble - 一个 MPD Audioscrobble。
- go-twitter - 另一个 Twitter 客户端。
- go-twitter-oauth - 一个简单的 Twitter 客户端(支持 OAuth)。
- grab - 用于管理文件下载的包。
- grender - Go 静态网站生成器。
- halgo - HAL 兼容的 API 客户端和序列化库。
- http-gonsole - 像本地人一样说 HTTP。(简单直观的 HTTP 控制台,golang 版本)。
- httprpc - HTTP RPC 编解码器(json2、soap、rest)。
- HypeCMS - 使用 Go 和 MongoDb 构建的灵活 CMS。
- Kontl - kon.tl 的 URL 短链服务客户端。
- mustache.go - Mustache 模板语言的实现。
- muxer - Go 应用程序的简单多路复用器,无需正则表达式。
- Optimus Sitemap Generator - 通用 XML 网站地图生成器。
- passwordreset - 用于创建和验证安全令牌,可用于在 Web 应用程序中实现“重置忘记的密码”功能。
- pat - Sinatra 风格的模式多路复用器。
- persona - 用于 Persona 的远程验证 API。
- plex - 简单、小巧、轻便、带链式调用的正则表达式 HTTP 多路复用器。
- podcast - Golang 中的 iTunes 和 RSS 2.0 播客生成器。
- purell - 用于规范 URL 的微型 Go 库。
- pusher.go - 标准 http 包的 HTTP Server Push 模块。
- rest2go - 基于 rest.go,为了改进和 REST 一致性而分叉。
- rest.go (forked) - 为了改进和 REST 一致性而分叉的 rest.go。
- resty - 受 Ruby rest-client 启发的 Go 的简单 HTTP 和 REST 客户端。
- robotstxt - robots.txt 排除协议实现。允许解析和查询 robots.txt 文件。
- scs - 使用服务器端会话存储的 HTTP 会话管理器。
- seshcookie - 受 Beaker 启发的 Web 会话库。
- soy - Soy 模板(Google Closure 模板)的 Go 实现。高性能和国际化。
- user_agent - HTTP 用户代理解析器。
- webtestutil - Web 和 HTTP 功能测试工具。包括 Gorilla 测试支持。
- yt2pod - 监控 YouTube 频道并发布音频播客的守护程序。
Windows
- gform - 用于 Go 的易于使用的 Windows GUI 工具包。
- go-ole - 用于 golang 的 win32 ole 实现。
- go-Windows-begin - 适用于绝对 Windows-Go 初学者。
- w32 - 用于 Go 的 Windows API 封装器。
- walk - Go 编程语言的“Windows 应用程序库工具包”。
- Windows Command Line Shutdown - 用于从命令提示符关闭 Windows 计算机的工具。
Unix
未分类;请帮助!
以下条目尚未归档。请帮助将这些条目归入相关类别。
- consistent - 带有有限负载的一致哈希。
- dotviz-server - 使用 Go 编写的基于 Web 的 DOT 语言可视化工具。
- ebml-go - EBML 解码器。
- go-bindata - 将任何文件转换为可管理的 Go 源代码,用于将二进制数据嵌入到 Go 程序中。
- GoBot - Go HTTP 僵尸网络的 PoC。
- goconsistenthash - 一致哈希库(基于 http://www.lexemetech.com/2007/11/consistent-hashing.html)。
- go-cron - 用于处理计划任务的小型 cron 作业系统,例如优化数据库或将闲置用户从聊天中踢出。cron.go 项目已重命名为该名称,以实现
go get
兼容性。 - godebiancontrol - Golang debian 控制文件解析器。
- godotviz - 从“DOT 语言”渲染图形文件。使用 golang 编写。
- go-gmetric - Ganglia gmetric 协议支持。
- gographviz - 用于 golang 的 Graphviz DOT 语言解析器。
- gopcapreader - 将实时 pcap 数据表示为 io.Reader 对象。
- go.psl - Go regdom-libs/公共后缀列表。
- goseq - 使用 Go 编写的命令行工具,用于使用基于文本的描述语言创建序列图。
- go-webfinger - WebFinger 的简单客户端实现。
- img-LinuxFr.org - 用于 LinuxFr.org 上使用的外部图像的反向代理缓存。
- one-file-pdf - 一个极简的 Go PDF 编写器,代码量少于 2K 行,只有一个文件。
- seed - 使用一些熵轻松地为 PRNG 播种。
- spellabc - spellabc 包实现了拼写字母代码字编码。
- Tasks - 使用 Go 编写的简单待办事项清单管理器。
- Twackup - 将您的推文备份到本地文件。
- al-Go-rithms - 数组、符文、字符串的算法集合,供参考使用。
此内容是 Go Wiki 的一部分。