Go

Build Status Awesome Slack Widget Netlify Status

awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt

Sponsorships

Digital Ocean

我们没有月费,但我们有员工努力维护Awesome Go,筹集到的钱可以回报每个参与者的努力! 所有计费和分发将向整个社区开放.

精选的 Go 框架、库和软件的精选列表. 灵感来自 awesome-python.

Contributing

请快速浏览 contribution guidelines 第一的. 谢谢大家 contributors ; 你摇滚!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!

Audio and Music

用于处理音频的库.

  • flac - 支持 FLAC 流的 Native Go FLAC 编码器/解码器.
  • gaad - 本机 Go AAC 比特流解析器.
  • GoAudio - 本地 Go 音频处理库.
  • gosamplerate - 用于 go 的 libsamplerate 绑定.
  • id3v2 - 用于 Go 的 ID3 解码和编码库.
  • malgo - 迷你音频库.
  • minimp3 - 轻量级 MP3 解码器库.
  • mix - 用于音乐应用的基于序列的 Go-native 混音器.
  • music-theory - Go 中的音乐理论模型.
  • Oto - 在多个平台上播放声音的低级库.
  • PortAudio - 绑定 PortAudio 音频 I/O 库.
  • portmidi - 去绑定 PortMidi.
  • vorbis - “本机”Go Vorbis 解码器(使用 CGO,但没有依赖项).
  • waveform - 能够从音频流生成波形图像的包.

Authentication and OAuth

用于实现身份验证方案的库.

  • authboss - 用于网络的模块化身份验证系统. 它尝试尽可能多地删除样板文件和“困难的东西”,以便每次在 Go 中启动一个新的 Web 项目时,您都可以插入、配置并开始构建您的应用程序,而不必每次都构建身份验证系统.
  • branca - Branca 令牌的 Golang 实现.
  • casbin - 支持ACL、RBAC、ABAC等访问控制模型的授权库.
  • cookiestxt - 提供 cookies.txt 文件格式的解析器.
  • go-email-normalizer - Golang 库,用于提供电子邮件地址的规范表示.
  • go-guardian - Go-Guardian 是一个 golang 库,它提供了一种简单、干净和惯用的方式来创建强大的现代 API 和 Web 身份验证,支持 LDAP、Basic、Bearer 令牌和基于证书的身份验证.
  • go-jose - 相当完整地实现了 JOSE 工作组的 JSON Web 令牌、JSON Web 签名和 JSON Web 加密规范.
  • go-oauth2-server - 独立的、符合规范的、用 Golang 编写的 OAuth2 服务器.
  • gologin - 使用 OAuth1 和 OAuth2 身份验证提供程序登录的可链接处理程序.
  • gorbac - 在 Golang 中提供了轻量级的基于角色的访问控制 (RBAC) 实现.
  • goth - 提供了一种简单、干净和惯用的方式来使用 OAuth 和 OAuth2. 开箱即用地处理多个提供程序.
  • httpauth - HTTP 身份验证中间件.
  • jeff - 具有可插拔后端的简单、灵活、安全和惯用的 Web 会话管理.
  • jwt - 干净且易于使用的 JSON Web 令牌 (JWT) 实现.
  • jwt - 轻量级 JSON 网络令牌 (JWT) 库.
  • jwt - 用于 Go 的安全、简单和快速的 JSON 网络令牌.
  • jwt-auth - 用于 Golang http 服务器的 JWT 中间件,具有许多配置选项.
  • loginsrv - 带有可插入后端的 JWT 登录微服务,例如 OAuth2 (Github)、htpasswd、osiam.
  • oauth2 - goauth2 的继任者. 通用 OAuth 2.0 包,附带 JWT、Google API、Compute Engine 和 App Engine 支持.
  • osin - Golang OAuth2 服务器库.
  • otpgen - 用于生成 TOTP/HOTP 代码的库.
  • otpgo - 用于 Go 的基于时间的一次性密码 (TOTP) 和基于 HMAC 的一次性密码 (HOTP) 库.
  • paseto - 与平台无关的安全令牌 (PSETO) 的 Golang 实现.
  • permissions2 - 用于跟踪用户、登录状态和权限的库. 使用安全 cookie 和 bcrypt.
  • rbac - 用于 Go 应用程序的简约 RBAC 包.
  • scope - 在 Go 中轻松管理 OAuth2 范围.
  • scs - HTTP 服务器的会话管理器.
  • securecookie - 高效的安全 cookie 编码/解码.
  • session - 为 Web 服务器进行会话管理(包括对 Google App Engine - GAE 的支持).
  • sessiongate-go - 使用 SessionGate Redis 模块进行会话管理.
  • sessions - 非常简单、高性能、高度可定制的 go http 服务器会话服务.
  • sessionup - 简单而有效的 HTTP 会话管理和识别包.
  • sjwt - 简单的 jwt 生成器和解析器.

Bot Building

用于构建和使用机器人的库.

  • echotron - 用纯 Go 编写的 Telegram Bots 库.
  • ephemeral-roles - 一个 Discord 机器人,用于根据语音通道成员的存在来管理临时角色.
  • go-chat-bot - 用 Go 编写的 IRC、Slack 和 Telegram 机器人.
  • go-joe - 受 Hubot 启发但用 Go 编写的通用机器人库.
  • go-sarah - 为所需的聊天服务(包括 LINE、Slack、Gitter 等)构建机器人的框架.
  • go-tgbot - 纯 Golang Telegram Bot API 包装器,由 swagger 文件、基于会话的路由器和中间件生成.
  • go-twitch-irc - 为 twitch.tv 聊天编写机器人的库
  • Golang CryptoTrading Bot - 用于加密货币交换的基于控制台的交易机器人的 golang 实现.
  • govkbot - 简单的去 VK 机器人库.
  • hanu - 编写 Slack 机器人的框架.
  • Kelp - 官方交易和做市机器人 Stellar DEX. 开箱即用,用 Golang 编写,兼容中心化交易所和自定义交易策略.
  • margelet - 构建 Telegram 机器人的框架.
  • micha - 去电报机器人 API 库.
  • olivia - 使用人工神经网络构建的聊天机器人.
  • slack-bot - 准备好为懒惰的开发人员使用 Slack Bot:自定义命令、Jenkins、Jira、Bitbucket、Github...
  • slacker - 易于使用的框架来创建 Slack 机器人.
  • slackscot - 另一个构建 Slack 机器人的框架.
  • tbot - 具有类似于 net/http 的 API 的电报机器人服务器.
  • telebot - 用 Go 编写的 Telegram bot 框架.
  • telegram-bot-api - 简单干净的 Telegram bot 客户端.
  • Tenyks - 面向服务的 IRC 机器人使用 Redis 和 JSON 进行消息传递.

Build Automation

有助于构建自动化的库和工具.

  • 1build - 无摩擦地管理项目特定命令的命令行工具.
  • anko - 多种编程语言的简单应用程序观察器.
  • gaper - 在 Go 项目崩溃或某些监视文件更改时构建并重新启动它.
  • gilbert - 为 Go 项目构建系统和任务运行器.
  • goyek - 在 Go 中创建构建管道.
  • mmake - 现代制作.
  • realize - 使用文件观察器和实时重新加载构建系统. 使用自定义路径运行、构建和观察文件更改.
  • Task - 简单的“制作”替代方案.
  • taskctl - Concurrent task runner.

Command Line

Standard CLI

用于构建标准或基本命令行应用程序的库.

  • argparse - 受 Python 的 argparse 模块启发的命令行参数解析器.
  • argv - 去库使用 bash 语法将命令行字符串拆分为参数数组.
  • cli - 基于 golang struct 标签的功能丰富且易于使用的命令行包.
  • cli - 用于在 Go 中构建命令行界面的简单而完整的 API.
  • climax - 具有“人脸”的替代 CLI,本着 Go 命令的精神.
  • clîr - 一个简单明了的 CLI 库. 无依赖.
  • cmd - 扩展标准flag 包以支持子命令和更多的惯用方式.
  • cmdr - POSIX/GNU 风格,类似 getopt 的命令行 UI Go 库.
  • cobra - 现代 Go CLI 交互的指挥官.
  • command-chain - 一个用于配置和运行命令链的 go 库——比如 unix shell 中的流水线.
  • commandeer - 开发友好的 CLI 应用程序:根据结构字段和标签设置标志、默认值和用法.
  • complete - 在 Go + Go 命令 bash 完成中编写 bash 完成.
  • Dnote - 具有多设备同步功能的简单命令行笔记本.
  • env - 结构的基于标签的环境配置.
  • flag - 简单但功能强大的命令行选项解析库,用于支持 Go 的子命令.
  • flaggy - 强大且惯用的标志包,具有出色的子命令支持.
  • flagvar - Go 的标准 flag 包的标志参数类型的集合.
  • go-arg - Go 中基于结构的参数解析.
  • go-commander - Go 库以简化 CLI 工作流程.
  • go-flags - 去命令行选项解析器.
  • go-getoptions - 受 Perl 的 GetOpt::Long 灵活性启发的 Go 选项解析器.
  • gocmd - 用于构建命令行应用程序的 Go 库.
  • hiboot cli - 具有自动配置和依赖注入的 cli 应用程序框架.
  • job - 工作,把你的短期指挥变成长期工作.
  • kingpin - 支持子命令的命令行和标志解析器.
  • liner - 为命令行界面使用类似 readline 的库.
  • mitchellh/cli - 用于实现命令行界面的 Go 库.
  • mow.cli - Go 库,用于构建具有复杂标志和参数解析和验证的 CLI 应用程序.
  • ops - Unikernel 生成器/编排器.
  • pflag - 直接替换 Go 的标志包,实现 POSIX/GNU 风格的 --flags.
  • sand - 用于创建解释器等的简单 API.
  • sflags - 用于 flag、urfave/cli、pflag、cobra、kingpin 和其他库的基于结构的标志生成器.
  • strumt - 用于创建提示链的库.
  • ts - 时间戳转换和比较工具.
  • ukautz/clif - 小型命令行界面框架.
  • urfave/cli - 用于在 Go(以前的 codegangsta/cli)中构建命令行应用程序的简单、快速和有趣的包.
  • wlog - 简单的日志界面,支持跨平台颜色和并发.
  • wmenu - 提示用户做出选择的 cli 应用程序的易于使用的菜单结构.

Advanced Console UIs

用于构建控制台应用程序和控制台用户界面的库.

  • asciigraph - 在命令行应用程序中打包制作轻量级 ASCII 线图╭┈╯,没有其他依赖项.
  • aurora - 支持 fmt.Printf/Sprintf 的 ANSI 终端颜色.
  • box-cli-maker - 为您的 CLI 制作高度定制的盒子.
  • cfmt - Contextual fmt inspired by bootstrap color classes.
  • cfmt - 简单方便的格式化程式化输出与 fmt 库完全兼容.
  • chalk - 用于美化终端/控制台输出的直观包.
  • colourize - 终端中 ANSI 颜色文本的 Go 库.
  • ctc - 无创跨平台终端色库,无需修改Print方式.
  • go-ataman - 用于在终端中呈现 ANSI 彩色文本模板的库.
  • go-colorable - 用于窗户的彩色作家.
  • go-colortext - 去终端颜色输出库.
  • go-isatty - golang 的 isatty.
  • go-prompt - 用于构建强大交互式提示的库,灵感来自 python-prompt-toolkit.
  • gocui - 旨在创建控制台用户界面的极简 Go 库.
  • gommon/color - 样式终端文本.
  • gookit/color - 终端显色工具库,支持16色、256色、RGB显色输出,兼容Windows.
  • marker - 为彩色终端输出匹配和标记字符串的最简单方法.
  • mpb - 终端应用程序的多进度条.
  • progressbar - 适用于每个操作系统的基本线程安全进度条.
  • pterm - 用于美化每个平台上的控制台输出的库,具有许多可组合的组件.
  • simpletable - 带有 Go 的终端中的简单表格.
  • tabby - 一个用于超级简单 Golang 表的小库.
  • table - 用于基于终端颜色的表格的小型库.
  • tabular - 从命令行实用程序打印 ASCII 表,无需将大量数据传递给 API.
  • termbox-go - Termbox 是一个用于创建跨平台基于文本的界面的库.
  • termdash - 基于 termbox-go 并受到启发的 Go 终端仪表板 termui.
  • termui - 基于 termbox-go 并受到启发的 Go 终端仪表板 blessed-contrib.
  • uilive - 用于实时更新终端输出的库.
  • uiprogress - 在终端应用程序中呈现进度条的灵活库.
  • uitable - 使用表格数据提高终端应用程序可读性的库.
  • yacspin - 另一个 CLi Spinner 包,用于与终端微调器一起工作.

Configuration

用于配置解析的库.

  • aconfig - 简单、有用且固执己见的配置加载器.
  • cleanenv - 简约的配置阅读器(来自文件、ENV 以及您想要的任何地方).
  • config - 用于 Go 项目的轻量级但功能强大的配置包.
  • config - 云原生应用配置. 仅用两行将 ENV 绑定到结构.
  • config - 带有环境变量和标志解析的 JSON 或 YAML 配置包装器.
  • configuration - 用于从环境变量、文件、标志和“默认”标签初始化配置结构的库.
  • configure - 通过多个来源提供配置,包括 JSON、标志和环境变量.
  • configuro - 来自 ENV 和文件的自以为是的配置加载和验证框架,专注于 12-Factor 兼容应用程序.
  • confita - 从多个后端级联加载配置到一个结构中.
  • conflate - 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件的库/工具、针对 JSON 模式的验证以及模式中定义的默认值的应用.
  • env - 将环境变量解析为 Go 结构(使用默认值).
  • envcfg - 将环境变量解组到 Go 结构体.
  • envconf - 从环境配置.
  • envconfig - 从环境变量中读取您的配置.
  • envh - 管理环境变量的助手.
  • fig - 用于从文件和环境变量(带有验证和默认值)中读取配置的微型库.
  • gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections.
  • genv - 使用 dotenv 支持轻松读取环境变量.
  • go-aws-ssm - 从 AWS System Manager - Parameter Store 获取参数的 Go 包.
  • go-ini - 一个可以编组和解组 INI 文件的 Go 包.
  • go-ssm-config - 用于从 AWS SSM(参数存储)加载配置参数的 Go 实用程序.
  • go-up - 一个简单的配置库,具有递归占位符解析并且没有魔法.
  • goConfig - 将结构解析为输入,并使用来自命令行、环境变量和配置文件的参数填充该结构的字段.
  • godotenv -转到 Ruby 的 dotenv 库的端口(从.env 加载环境变量).
  • gofigure - 去应用程序配置变得容易.
  • gone/jconf - 模块化 JSON 配置. 将配置结构与其配置的代码一起保留,并将解析委托给子模块,而不会牺牲完整的配置序列化.
  • gonfig - 基于标签的配置解析器,它将来自不同提供者的值加载到类型安全结构中.
  • gookit/config - 应用程序配置管理(加载、获取、设置). 支持 JSON、YAML、TOML、INI、HCL. 多文件加载,数据覆盖合并.
  • harvester - Harvester,一个易于使用的静态和动态配置包,支持播种、环境变量和 Consul 集成.
  • hjson - Human JSON,一种用于人类的配置文件格式. 宽松的语法,更少的错误,更多的评论.
  • hocon - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files.
  • ingo - 标志保留在类似 ini 的配置文件中.
  • ini - 去包读取和写入 INI 文件.
  • joshbetz/config - Go 的小型配置库,用于解析环境变量、JSON 文件并在 SIGHUP 上自动重新加载.
  • kelseyhightower/envconfig - 用于管理来自环境变量的配置数据的库.
  • koanf - 用于在 Go 应用程序中读取配置的轻量级、可扩展库. 内置对 JSON、TOML、YAML、env、命令行的支持.
  • konfig - 分布式处理时代的 Go 可组合、可观察和高性能的配置处理.
  • mini - 用于解析 ini 样式配置文件的 Golang 包.
  • nasermirzaei89/env - 用于读取环境变量的简单有用的包.
  • onion - 基于层的 Go 配置,支持 JSON、TOML、YAML、属性、etcd、env 和使用 PGP 的加密.
  • store - Go 的轻量级配置管理器.
  • swap - 基于构建环境递归地实例化/配置结构. (YAML、TOML、JSON 和 env).
  • typenv - 简约、零依赖、类型化的环境变量库.
  • uConfig - 轻量级、零依赖和可扩展的配置管理.
  • viper - 用尖牙去配置.
  • xdg - 去执行 XDG Base Directory SpecificationXDG user directories.
  • xdg - 遵循以下的跨平台包 XDG Standard.

Continuous Integration

帮助持续集成的工具.

  • CDS - 企业级 CI/CD 和 DevOps 自动化开源平台.
  • drone - Drone 是一个基于 Docker 的持续集成平台,用 Go 编写.
  • duci - 一个简单的 ci 服务器,不需要域特定的语言.
  • gomason - 从干净的工作区测试、构建、签名和发布您的 go 二进制文件.
  • goveralls - 集成 Coveralls.io 持续代码覆盖率跟踪系统.
  • overalls - 多包 go 项目coverprofile,用于诸如总督之类的工具.
  • roveralls - 递归覆盖测试工具.

CSS Preprocessors

用于预处理 CSS 文件的库.

  • gcss - Pure Go CSS 预处理器.
  • go-libsass - 包装到 100% Sass 兼容的 libsass 项目.

Data Structures

Go 中的通用数据结构和算法.

  • algorithms - 算法和数据结构.CLRS 研究.
  • binpacker - 二进制打包器和解包器帮助用户构建自定义二进制流.
  • bit - Golang 设置数据结构,带有额外的位处理功能.
  • bitset - Go 包实现位集.
  • bloom - 在 Go 中实现的布隆过滤器.
  • bloom - Golang 布隆过滤器实现.
  • bloomfilter - Go 中的另一个 Bloomfilter 实现,与 Java 的 Guava 库兼容.
  • boomfilters - 用于处理连续、无界流的概率数据结构.
  • cmap - go 的线程安全并发映射,支持使用interface{} 作为键和自动扩展分片.
  • concurrent-writer - 高度并发的替代bufio.Writer.
  • conjungo - 一个小巧、强大且灵活的合并库.
  • count-min-log - Go 实现 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用较少的内存).
  • crunch - Go 封装实现缓冲区以轻松处理各种数据类型.
  • cuckoo-filter - 布谷鸟过滤器:全面的布谷鸟过滤器,与其他工具相比可配置和空间优化,原始论文中提到的所有功能都可用.
  • cuckoofilter - Cuckoo 过滤器:Go 中实现的计数布隆过滤器的一个很好的替代方案.
  • deque - 高度优化的双端队列.
  • deque - 快速环形缓冲区双端队列(双端队列).
  • dict - 用于 Go 的类 Python 词典 (dict).
  • dsu - Go 中的 Disjoint Set 数据结构实现.
  • encoding - Go 的整数压缩库.
  • go-adaptive-radix-tree - 去实现自适应基数树.
  • go-datastructures - 有用的、高性能的和线程安全的数据结构的集合.
  • go-edlib - 与 Unicode 兼容的字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等).
  • go-ef - Elias-Fano 编码的 Go 实现.
  • go-geoindex - 内存地理索引.
  • go-mcache - 快速内存键:值存储/缓存库. 指针缓存.
  • go-rquad - 具有高效点定位和邻居发现的区域四叉树.
  • gocache - 一个完整的 Go 缓存库,具有多个存储(内存、memcache、redis 等)、可链接、可加载、指标缓存等.
  • goconcurrentqueue - 并发 FIFO 队列.
  • gods - 去数据结构. 容器、集合、列表、堆栈、地图、BidiMap、树、HashSet 等.
  • gofal - Go 的小数 api.
  • golang-set - 线程安全和非线程安全的 Go 高性能集.
  • goset - 一个有用的 Go 集合集合实现.
  • goskiplist - 在 Go 中跳过列表实现.
  • gostl - go的数据结构和算法库,旨在提供类似C++ STL的功能.
  • gota - Go 的数据帧、系列和数据整理方法的实现.
  • goterator - 迭代器实现以提供映射和减少功能.
  • hide - 带有编组到/来自散列的 ID 类型,以防止向客户端发送 ID.
  • hilbert - 用于在空间填充曲线(例如 Hilbert 和 Peano 曲线)之间映射值的包.
  • hyperloglog - 具有稀疏、LogLog-Beta 偏差校正和 TailCut 空间减少的 HyperLogLog 实现.
  • iter - 去实现 C++ STL 迭代器和算法.
  • levenshtein - Levenshtein 距离和相似度指标,具有可定制的编辑成本和通用前缀的类似 Winkler 的奖励.
  • levenshtein - 在 Go 中计算 levenshtein 距离的实现.
  • mspm - 用于信息检索的多字符串模式匹配算法.
  • nan - 一个库中的零分配 Nullable 结构具有方便的转换函数、编组器和解组器.
  • null - 可以向/从 JSON 编组/解组的可空 Go 类型.
  • ordered-concurrently - 并发处理工作并按输入顺序在通道中返回输出的 Go 模块.
  • parapipe - FIFO 管道,它在每个阶段并行执行,同时保持消息和结果的顺序.
  • parsefields - 用于解析类似 JSON 的日志以收集独特字段和事件的工具.
  • pipeline - 具有扇入和扇出的管道的实现.
  • ptrie - 前缀树的实现.
  • remember-go - 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或内存中支持).
  • ring - 实现高性能、线程安全的布隆过滤器.
  • roaring - 实现压缩位集的 Go 包.
  • set - 使用 LinkedHashMap 在 Go 中实现简单的集合数据结构.
  • skiplist - 非常快的 Go Skiplist 实现.
  • skiplist - Go 中的跳过列表实现.
  • slices - 对切片进行操作的函数; 像package strings,但适用于切片.
  • timedmap - 带有过期键值对的映射.
  • treap - 使用树堆的持久、快速有序的映射.
  • trie - 在 Go 中尝试实现.
  • ttlcache - 具有各种基于时间的到期选项和回调的内存字符串接口{}缓存.
  • typ - 空类型、安全的原始类型转换和从复杂结构中获取值.
  • willf/bloom - Go 包实现布隆过滤器.

Database

在 Go 中实现的数据库.

  • badger - Go 中的快速键值存储.
  • bbolt - Go 的嵌入式键/值数据库.
  • bcache - 最终一致的分布式内存缓存 Go 库.
  • BigCache - 用于千兆字节数据的高效键/值缓存.
  • Bitcask - Bitcask 是一个用纯 Go 编写的可嵌入、持久和快速的键值 (KV) 数据库,由于 bitcask 磁盘布局 (LSM+WAL),具有可预测的读/写性能、低延迟和高吞吐量.
  • buntdb - 用于 Go 的快速、可嵌入、内存键/值数据库,具有自定义索引和空间支持.
  • cache - 内存中键:具有过期时间、0 依赖项、<100 LoC、100% 覆盖率的值存储.
  • cache2go - 内存中键值缓存,支持基于超时自动失效.
  • clusteredBigCache - 具有集群支持和单个项目到期的 BigCache.
  • cockroach - 可扩展、异地复制、事务性数据存储.
  • Coffer - 支持事务的简单 ACID 键值数据库.
  • couchcache - 由 Couchbase 服务器支持的 RESTful 缓存微服务.
  • CovenantSQL - CovenantSQL 是区块链上的 SQL 数据库.
  • Databunker - 为遵守 GDPR 和 CCPA 而构建的个人身份信息 (PII) 存储服务.
  • dgraph - 可扩展、分布式、低延迟、高吞吐量的图形数据库.
  • diskv - 本土磁盘支持的键值存储.
  • eliasdb - 具有 REST API、短语搜索和类似 SQL 的查询语言的无依赖性、事务性图形数据库.
  • fastcache - 用于大量条目的快速线程安全内存缓存. 最小化 GC 开销.
  • GCache - 支持过期缓存、LFU、LRU 和 ARC 的缓存库.
  • go-cache - Go的内存键:值存储/缓存(类似于Memcached)库,适用于单机应用.
  • godis - 一个 Golang 实现的高性能 Redis 服务器和集群.
  • goleveldb - 实施 LevelDB Go 中的键/值数据库.
  • groupcache - Groupcache 是一个缓存和缓存填充库,旨在在许多情况下替代 memcached.
  • hare - 一个简单的数据库管理系统,将每个表存储为一个以行分隔的 JSON 文本文件.
  • immudb - immudb 是一个轻量级、高速的不可变数据库,适用于用 Go 编写的系统和应用程序.
  • influxdb - 用于指标、事件和实时分析的可扩展数据存储.
  • Kivik - Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库.
  • ledisdb - Ledisdb 是一个基于 LevelDB 的高性能 NoSQL,类似于 Redis.
  • levigo - Levigo 是 LevelDB 的 Go 包装器.
  • moss - Moss 是一个用 100% Go 编写的简单 LSM 键值存储引擎.
  • nutsdb - Nutsdb 是一个用纯 Go 编写的简单、快速、可嵌入、持久的键/值存储. 它支持完全可序列化的事务和许多数据结构,例如列表、集合、排序集合.
  • piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎.
  • pogreb - 用于读取密集型工作负载的嵌入式键值存储.
  • prometheus - 监控系统和时间序列数据库.
  • pudge - 使用 Go 的标准库编写的快速简单的键/值存储.
  • rosedb - 基于 LSM+WAL 的嵌入式 kv 数据库,支持 string、list、hash、set、zset.
  • rqlite - 基于 SQLite 构建的轻量级分布式关系数据库.
  • Scribble - 小型平面文件 JSON 存储.
  • slowpoke - 具有持久性的键值存储.
  • tempdb - 临时项目的键值存储.
  • tidb - TiDB 是一个分布式 SQL 数据库. 灵感来自 Google F1 的设计.
  • tiedot - 您的 NoSQL 数据库由 Golang 提供支持.
  • ttlcache - 每条记录的 TTL 内存键值存储.
  • unitdb - 用于物联网、实时消息传递应用程序的快速时间序列数据库. 使用 github.com/unit-io/unitd 应用程序通过 tcp 或 websocket 使用 pubsub 访问 unitdb.
  • Vasto - 分布式高性能键值存储. 在磁盘上. 最终一致. 哈. 能够在不中断服务的情况下增长或缩小.
  • VictoriaMetrics - 快速、资源高效且可扩展的开源时间序列数据库. 可用作 Prometheus 的长期远程存储. 支持 PromQL.

数据库架构迁移.

  • avro - 发现 SQL 模式并将它们转换为 AVRO 模式. 将 SQL 记录查询为 AVRO 字节.
  • darwin - Go 的数据库模式演变库.
  • go-fixtures - Golang 优秀的内置数据库/sql 库的 Django 风格装置.
  • go-pg-migrate - 用于 go-pg 迁移管理的 CLI 友好包.
  • go-pg-migrations - 一个 Go 包,用于帮助使用 go-pg/pg 编写迁移.
  • goose - 数据库迁移工具. 您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变.
  • gormigrate - Gorm ORM 的数据库架构迁移助手.
  • migrate - 数据库迁移. CLI 和 Golang 库.
  • migrator - 死简单的 Go 数据库迁移库.
  • migrator - MySQL 数据库迁移器旨在运行迁移到您的功能并使用直观的 go 代码管理数据库架构更新.
  • pravasan - 简单的迁移工具 - 目前用于 MySQL,但计划很快支持 Postgres、SQLite、MongoDB 等.
  • schema - 在 Go 二进制文件中嵌入数据库/sql 兼容数据库的架构迁移的库.
  • skeema - 用于 MySQL 的 Pure-SQL 模式管理系统,支持分片和外部在线模式更改工具.
  • soda - 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等.
  • sql-migrate - 数据库迁移工具. 允许使用 go-bindata 将迁移嵌入到应用程序中.

数据库工具.

  • chproxy - ClickHouse 数据库的 HTTP 代理.
  • clickhouse-bulk - 收集小插入并向 ClickHouse 服务器发送大请求.
  • datagen - 一个快速的数据生成器,多表感知并支持多行 DML.
  • dbbench - 支持多个数据库和脚本的数据库基准测试工具.
  • go-mysql - 使用工具集来处理 MySQL 协议和复制.
  • go-mysql-elasticsearch - 自动将您的 MySQL 数据同步到 Elasticsearch.
  • kingshard - kingshard 是由 Golang 提供支持的高性能 MySQL 代理.
  • myreplication - MySql 二进制日志复制监听器. 支持基于语句和行的复制.
  • octillery - 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL).
  • orchestrator - MySQL 复制拓扑管理器和可视化工具.
  • pg_timetable - PostgreSQL 的高级调度.
  • pgweb - 基于 Web 的 PostgreSQL 数据库浏览器.
  • prep - 在不更改代码的情况下使用准备好的 SQL 语句.
  • pREST - 简化和加速开发,⚡ 在任何现有或新的 Postgres 应用程序上即时、实时、高性能.
  • rwdb - rwdb 为多个数据库服务器设置提供只读副本功能.
  • vitess -vitess 提供有助于扩展 MySQL 数据库以用于大规模 Web 服务的服务器和工具.

SQL 查询构建器,用于构建和使用 SQL 的库.

  • buildsqlx - 去 PostgreSQL 的数据库查询构建器库.
  • dbq - Go 的零样板数据库操作.
  • Dotsql - Go 库,可帮助您将 sql 文件保存在一个地方并轻松使用它们.
  • gendry - 非侵入式 SQL 构建器和强大的数据绑定器.
  • godbal - 用于 go 的数据库抽象层 (dbal). 支持SQL builder,轻松获取结果.
  • goqu - 惯用的 SQL 构建器和查询库.
  • gosql - 具有更好的空值支持的 SQL 查询构建器.
  • hasql - 用于访问多主机 SQL 数据库安装的库.
  • igor - PostgreSQL 的抽象层,支持高级功能并使用类似 gorm 的语法.
  • jet - 在 Go 中编写类型安全 SQL 查询的框架,能够轻松地将数据库查询结果转换为所需的任意对象结构.
  • mpath - 用于 SQL 记录的 MPTT(修改的预排序树遍历)包 - 物化路径实现.
  • ormlite - 包含一些类似 ORM 的功能和 SQLite 数据库助手的轻量级包.
  • ozzo-dbx - 强大的数据检索方法以及与数据库无关的查询构建功能.
  • qry - 使用原始 SQL 查询从文件生成常量的工具.
  • sq - 用于 Go 的类型安全 SQL 构建器和结构映射器.
  • sqlf - Fast SQL query builder.
  • sqlingo - 在 Go 中构建 SQL 的轻量级 DSL.
  • sqrl - SQL 查询构建器,具有改进性能的 Squirrel 分支.
  • Squalus - Go SQL 包上的薄层,可以更轻松地执行查询.
  • Squirrel - 帮助您构建 SQL 查询的 Go 库.
  • xo - 根据支持 PostgreSQL、MySQL、SQLite、Oracle 和 Microsoft SQL Server 的现有架构定义或自定义查询为数据库生成惯用的 Go 代码.

Database Drivers

用于连接和操作数据库的库.

  • 关系数据库

    • avatica - 用于数据库/sql 的 Apache Avatica/Phoenix SQL 驱动程序.
    • bgc - BigQuery for go 的数据存储连接.
    • firebirdsql - 用于 Go 的 Firebird RDBMS SQL 驱动程序.
    • go-adodb - 用于使用数据库/sql 的 Microsoft ActiveX 对象数据库驱动程序.
    • go-mssqldb - 用于 Go 的 Microsoft MSSQL 驱动程序.
    • go-oci8 - 使用数据库/sql 的用于 go 的 Oracle 驱动程序.
    • go-sql-driver/mysql - 用于 Go 的 MySQL 驱动程序.
    • go-sqlite3 - 用于使用数据库/sql 的 SQLite3 驱动程序.
    • godror - 用于 Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序.
    • gofreetds - 微软 MSSQL 驱动程序. 去包装 FreeTDS.
    • pgx - PostgreSQL 驱动程序支持的功能超出了数据库/sql 公开的功能.
    • pig - 简单 pgx 包装器执行和 scan 轻松查询结果.
    • pq - 用于数据库/sql 的 Pure Go Postgres 驱动程序.
    • Sqinn-Go - 带有纯 Go 的 SQLite.
  • NoSQL 数据库

    • aerospike-client-go - Go 语言的 Aerospike 客户端.
    • arangolite - ArangoDB 的轻量级 golang 驱动程序.
    • asc - Aerospike for go 的数据存储连接.
    • forestdb - 为 ForestDB 绑定.
    • go-couchbase - Go 中的 Couchbase 客户端.
    • go-pilosa - 去 Pilosa 的客户端库.
    • go-rejson - 使用 Redigo golang 客户端的 redislabs 的 ReJSON 模块的 Golang 客户端. 在 redis 中将结构作为 JSON 对象轻松存储和操作.
    • gocb - 官方 Couchbase Go SDK.
    • gocosmos - 适用于 Azure Cosmos DB 的 REST 客户端和标准“database/sql”驱动程序.
    • gocql - Apache Cassandra 的 Go 语言驱动程序.
    • godis - 受 jedis 启发,golang 的 redis 客户端实现.
    • godscache - 使用 memcached 添加缓存的 Google Cloud Platform Go Datastore 包的包装器.
    • gomemcache - Go 编程语言的 memcache 客户端库.
    • gorethink - RethinkDB 的 Go 语言驱动程序.
    • goriak - Riak KV 的 Go 语言驱动程序.
    • mgm - 用于 Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序).
    • mgo -(未维护)用于 Go 语言的 MongoDB 驱动程序,它在遵循标准 Go 习语的非常简单的 API 下实现了丰富且经过良好测试的功能选择.
    • mongo-go-driver - Go 语言的官方 MongoDB 驱动程序.
    • neo4j - Golang 的 Neo4j Rest API 绑定.
    • Neo4j-GO - golang 中的 Neo4j REST 客户端.
    • neoism - Golang 的 Neo4j 客户端.
    • qmgo - Go 的 MongoDB 驱动程序. 它基于官方 MongoDB 驱动程序,但像 Mgo 一样更易于使用.
    • redeo - Redis 协议兼容的 TCP 服务器/服务.
    • redigo - Redigo 是 Redis 数据库的 Go 客户端.
    • redis - Golang 的 Redis 客户端.
    • xredis - 类型安全、可定制、干净且易于使用的 Redis 客户端.
  • 搜索和分析数据库.

    • bleve - 现代文本索引库.
    • elastic - 用于 Go 的 Elasticsearch 客户端.
    • elasticsql - 在 Go 中将 sql 转换为 elasticsearch dsl.
    • elastigo - Elasticsearch 客户端库.
    • go-elasticsearch - Go 的官方 Elasticsearch 客户端.
    • goes - 与 Elasticsearch 交互的库.
    • riot - 去开源、分布式、简单和高效的搜索引擎.
    • skizze - 概率数据结构服务和存储.
  • 多个后端.

    • cachego - 用于多个驱动程序的 Golang 缓存组件.
    • cayley - 支持多个后端的图形数据库.
    • dsc - SQL、NoSQL、结构化文件的数据存储连接.
    • gokv - Go 的简单键值存储抽象和实现(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等等).

Date and Time

用于处理日期和时间的库.

  • carbon - 带有许多 util 方法的简单时间扩展,从 PHP Carbon 库移植.
  • cronrange - 解析 Cron 风格的时间范围表达式,检查给定的时间是否在任何范围内.
  • date - 增加处理日期、日期范围、时间跨度、时段和时间的时间.
  • dateparse - 在不知道格式的情况下解析日期.
  • durafmt - Go 的持续时间格式库.
  • feiertage - 用于计算德国公共假期的一组函数,包括. 德国各州(Bundesländer)的专业化. 比如复活节、五旬节、感恩节……
  • go-persian-calendar - 在 Go (golang) 中实现波斯 (Solar Hijri) 日历.
  • go-str2duration - 将字符串转换为持续时间. 支持 time.Duration 返回字符串等.
  • go-sunrise - 计算给定位置的日出和日落时间.
  • go-week - 使用 ISO8601 周日期的高效软件包.
  • gostradamus - 用于处理日期的 Go 包.
  • iso8601 - 无需正则表达式即可高效解析 ISO8601 日期时间.
  • kair - 日期和时间 - Golang 格式库.
  • now - 现在是 golang 的时间工具包.
  • NullTime - 可为空的time.Time.
  • strftime - C99 兼容的 strftime 格式化程序.
  • timespan - 用于与时间间隔进行交互,定义为开始时间和持续时间.
  • timeutil - 对 golang 时间包的有用扩展(Timedelta、Strftime 等).
  • tuesday - 与 Ruby 兼容的 Strftime 函数.

Distributed Systems

有助于构建分布式系统的软件包.

  • arpc - 更有效的网络通讯,支持双向呼叫、通知、广播.
  • celeriac - 用于在 Go 中添加对交互和监控 Celery 工作人员、任务和事件的支持的库.
  • consistent - 有界负载的一致散列.
  • consistenthash - 具有可配置副本的一致散列.
  • dht - BitTorrent Kademlia DHT 实现.
  • digota - grpc 电子商务微服务.
  • dot - 使用操作转换/OT 进行分布式同步.
  • doublejump - 改进的 Google 跳转一致性哈希.
  • dragonboat - Go 中功能完整且高性能的多组 Raft 库.
  • drmaa - 基于 DRMAA 标准的集群调度程序的作业提交库.
  • dynamolock - DynamoDB 支持的分布式锁定实现.
  • dynatomic - 使用 DynamoDB 作为原子计数器的库.
  • emitter-io - 使用 MQTT、Websockets 和 love 构建的高性能、分布式、安全和低延迟发布订阅平台.
  • flowgraph - 基于流的编程包.
  • gleam - 用纯 Go 和 Luajit 编写的快速且可扩展的分布式 map/reduce 系统,结合 Go 的高并发性和 Luajit 的高性能,独立或分布式运行.
  • glow - 易于使用的可扩展分布式大数据处理、Map-Reduce、DAG 执行,全部采用纯 Go.
  • gmsec - Go 分布式系统开发框架.
  • go-health - 用于在您的服务中启用异步依赖项健康检查的库.
  • go-jump - 谷歌“跳转”一致性哈希函数的端口.
  • go-kit - 支持服务发现、负载平衡、可插拔传输、请求跟踪等的微服务工具包.
  • go-micro - 分布式系统开发框架.
  • go-mysql-lock - 基于 MySQL 的分布式锁.
  • go-pdu - 一个去中心化的基于身份的社交网络.
  • go-sundheit - 一个为定义 golang 服务的异步服务健康检查提供支持的库.
  • go-zero - 一个 web 和 rpc 框架. 它的诞生是为了通过弹性设计确保繁忙站点的稳定性. 内置 goctl 大大提高了开发效率.
  • gorpc - 用于高负载的简单、快速和可扩展的 RPC 库.
  • grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC.
  • hprose - 非常新颖的 RPC 库,现在支持 25 多种语言.
  • jsonrpc - jsonrpc 包有助于实现 JSON-RPC 2.0.
  • jsonrpc - JSON-RPC 2.0 HTTP 客户端实现.
  • KrakenD - 具有中间件的超高性能 API 网关框架.
  • liftbridge - 用于 NATS 的轻量级、容错消息流.
  • micro - 适用于云及其他地方的分布式系统运行时.
  • NATS - 用于微服务、物联网和云原生系统的轻量级、高性能消息系统.
  • outboxer - Outboxer 是一个实现发件箱模式的 Go 库.
  • pglock - PostgreSQL 支持的分布式锁定实现.
  • pjrpc -Golang JSON-RPC 服务器-客户端与 Protobuf 规范.
  • raft - 由 HashiCorp 实现的 Raft 共识协议的 Golang 实现.
  • raft - 由 CoreOS 实现 Raft 共识协议.
  • rain - BitTorrent 客户端和库.
  • redis-lock - Simplified distributed locking implementation using Redis.
  • resgate - 用于构建 REST、实时和 RPC API 的实时 API 网关,其中所有客户端都无缝同步.
  • ringpop-go - 用于 Go 应用程序的可扩展、容错的应用层分片.
  • rpcx - 分布式可插拔RPC服务框架,如阿里巴巴Dubbo.
  • Semaphore - 一个简单的(微)服务编排器.
  • sleuth - 用于 HTTP 服务之间的无主 p2p 自动发现和 RPC 的库(使用 ZeroMQ).
  • tendermint - 高性能中间件,用于使用 Tendermint 共识和区块链协议将用任何编程语言编写的状态机转换为拜占庭容错复制状态机.
  • torrent - BitTorrent 客户端包.

Dynamic DNS

用于更新动态 DNS 记录的工具.

  • DDNS - 以数字海洋网络 DNS 作为后端的个人 DDNS 客户端.
  • dyndns - 后台 Go 进程定期自动检查您的 IP 地址,并在您的地址更改时更新(一个或多个)Google 域的动态 DNS 记录.
  • GoDNS - 动态DNS客户端工具,支持DNSPod & HE.net,Go编写.

Email

实现电子邮件创建和发送的库和工具.

  • chasquid - 用 Go 编写的 SMTP 服务器.
  • douceur - 用于 HTML 电子邮件的 CSS 内联程序.
  • email - 一个强大而灵活的 Go 电子邮件库.
  • email-verifier - 用于电子邮件验证的 Go 库,无需发送任何电子邮件.
  • go-dkim - DKIM 库,用于签署和验证电子邮件.
  • go-email-validator - 用于语法、一次性、smtp 等的模块化电子邮件验证器...检查.
  • go-imap - 客户端和服务器的 IMAP 库.
  • go-message - 用于 Internet 消息格式和邮件消息的流媒体库.
  • go-premailer - Go 中 HTML 邮件的内联样式.
  • go-simple-mail - 使用 SMTP Keep Alive 和两个超时发送电子邮件的非常简单的包:连接和发送.
  • Hectane - 提供 HTTP API 的轻量级 SMTP 客户端.
  • hermes - 生成干净、响应式 HTML 电子邮件的 Golang 包.
  • mailchain - 将加密的电子邮件发送到用 Go 编写的区块链地址.
  • mailgun-go - 使用 Mailgun API 发送邮件的 Go 库.
  • MailHog - 使用 Web 和 API 接口进行电子邮件和 SMTP 测试.
  • SendGrid - SendGrid 的用于发送电子邮件的 Go 库.
  • smtp - SMTP 服务器协议状态机.

Embeddable Scripting Languages

在你的代码中嵌入其他语言.

  • anko - 用 Go 编写的可编写脚本的解释器.
  • binder - 转到 Lua 绑定库,基于 gopher-lua.
  • cel-go - 快速、便携、非图灵完整的表达式评估,逐步打字.
  • ecal - 一种简单的可嵌入脚本语言,支持并发事件处理.
  • expr - Go 的表达式评估引擎:快速、非图灵完备、动态类型、静态类型.
  • gentee - 可嵌入的脚本编程语言.
  • gisp - Go 中的简单 LISP.
  • go-duktape - 用于 Go 的 Duktape JavaScript 引擎绑定.
  • go-lua - Lua 5.2 VM 到纯 Go 的端口.
  • go-php - 用于 Go 的 PHP 绑定.
  • go-python - 对 CPython C-API 的简单绑定.
  • goja - 在 Go 中实现 ECMAScript 5.1(+).
  • golua - 去绑定 Lua C API.
  • gopher-lua - Lua 5.1 虚拟机和用 Go 编写的编译器.
  • gval - 一种用 Go 编写的高度可定制的表达式语言.
  • ngaro - 可嵌入的 Ngaro VM 实现可在 Retro 中启用脚本.
  • purl - 嵌入在 Go 中的 Perl 5.18.2.
  • tengo - 用于 Go 的字节码编译脚本语言.

Error Handling

用于处理错误的库.

  • emperror - Go 库和应用程序的错误处理工具和最佳实践.
  • eris - 在 Go 中处理、跟踪和记录错误的更好方法. 兼容标准错误库和 github.com/pkg/errors.
  • errlog - 可破解的包,用于确定错误的负责源代码(以及其他一些快速调试功能). 可插入任何就地记录器.
  • errors - 替换标准库错误包和 github.com/pkg/errors. 提供各种错误处理原语.
  • errors - 提供简单错误处理原语的包.
  • errors - 使用分类原语进行简单的 golang 错误处理.
  • errors - 最简单的错误包装器,具有出色的性能和最小的内存开销.
  • errors - 内置 Go 错误的替代品. 这是一个最小的错误处理包,具有自定义错误类型、用户友好消息、Unwrap & Is. 具有非常易于使用和简单的辅助功能.
  • errorx - 一个功能丰富的错误包,包含堆栈跟踪、错误组合等.
  • Falcon - 一个简单但功能强大的错误处理包.
  • go-multierror - Go (golang) 包,用于将错误列表表示为单个错误.
  • tracerr - 堆栈跟踪和源代码片段的 Golang 错误.

File Handling

用于处理文件和文件系统的库.

  • afero - Go 的文件系统抽象系统.
  • afs - Go 的抽象文件存储(mem、scp、zip、tar、cloud:s3、gs).
  • baraka - 一个可以轻松处理 http 文件上传的库.
  • bigfile - 文件传输系统,支持使用http api、rpc 调用和ftp 客户端管理文件.
  • checksum - 计算大文件的消息摘要,如 MD5 和 SHA256.
  • copy - 递归复制目录.
  • flop - 旨在镜像特征奇偶校验的文件操作库 GNU cp.
  • go-csv-tag - 使用标签加载 csv 文件.
  • go-decent-copy - 为人类复制文件.
  • go-exiftool - 去绑定 ExifTool,这是一个著名的库,用于从文件(图片、PDF、office 等)中提取尽可能多的元数据(EXIF、IPTC 等).
  • go-gtfs - 在 go 中加载 gtfs 文件.
  • gut/yos - 简单可靠的文件操作包,如文件、目录和符号链接上的复制/移动/差异/列表.
  • higgs - 一个用于隐藏/取消隐藏文件和目录的小型跨平台 Go 库.
  • notify - 具有简单 API 的文件系统事件通知库,类似于 os/signal.
  • opc - 加载 Go 的开放打包约定 (OPC) 文件.
  • parquet - 读和写 parquet 文件.
  • pdfcpu - PDF处理器.
  • skywalker - 允许一个人同时轻松地通过文件系统的包.
  • stl - 用于读取和写入 STL(立体光刻)文件的模块. 并发算法读取.
  • tarfs - 实施 FileSystem interface 对于 tar 文件.
  • todotxt - 去 Gina Trapani 的图书馆 todo.txt 文件,支持解析和操作任务列表 todo.txt format.
  • vfs - 一组可插入的、可扩展的和自以为是的文件系统功能集,适用于跨许多文件系统类型(如 os、S3 和 GCS)的 Go.

Financial

会计和财务包.

  • accounting - golang 的货币和货币格式.
  • currency - 处理货币金额,提供货币信息和格式.
  • currency - 高性能和准确的货币计算包.
  • decimal - 任意精度的定点十进制数.
  • fastme - 快速可扩展匹配引擎 Go 实现.
  • go-finance - Go 中的综合金融市场数据.
  • go-finance - 用于货币时间价值(年金)、现金流量、利率转换、债券和折旧计算的金融函数库.
  • go-finance - 获取汇率、通过 VIES 检查增值税号码和检查 IBAN 银行帐号的模块.
  • go-finnhub - 来自 finnhub.io 的股票市场、外汇和加密数据的客户端. 访问来自 60 多家证券交易所、10 家外汇经纪商和 15 多家加密货币交易所的实时金融市场数据.
  • go-money - Fowler's Money 模式的实现.
  • ofxgo - 查询 OFX 服务器和/或解析响应(使用示例命令行客户端).
  • orderbook - Golang 中限价单的匹配引擎.
  • payme - 用于 SEPA 付款的二维码生成器(ASCII 和 PNG).
  • sleet - 多个支付服务提供商 (PsP) 处理在线支付的统一接口.
  • techan - 具有高级市场分析和交易策略的技术分析库.
  • transaction - 嵌入式帐户交易数据库,以多线程模式运行.
  • vat - 增值税号验证和欧盟增值税税率.

Forms

用于处理表单的库.

  • bind - 将表单数据绑定到任何 Go 值.
  • binding - 将来自 net/http 请求的表单和 JSON 数据绑定到结构.
  • conform - 检查用户输入. 根据结构标签修剪、清理和清理数据.
  • form - 将 url.Values 解码为 Go 值并将 Go 值编码为 url.Values. 双阵列和全图支持.
  • formam - 将表单的值解码为一个结构体.
  • forms - 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON 数据.
  • gorilla/csrf - Go web 应用程序和服务的 CSRF 保护.
  • nosurf - Go 的 CSRF 保护中间件.
  • qs - 用于将结构编码为 URL 查询参数的模块.
  • queryparam - 将 url.Values 解码为标准或自定义类型的可用结构值.

Functional

支持 Go 中函数式编程的包.

  • fpGo - Monad,Golang 的函数式编程特性.
  • fuego - Go 中的功能实验.
  • go-underscore - 有用的 Go 收集实用程序的有用集合.
  • gofp - 一个类似于 lodash 的强大的 Golang 实用程序库.

Game Development

很棒的游戏开发库.

  • Azul3D - 用 Go 编写的 3D 游戏引擎.
  • Ebiten - Go 中死简单的 2D 游戏库.
  • engo - Engo 是一个用 Go 编写的开源 2D 游戏引擎. 它遵循实体-组件-系统范式.
  • g3n - 去 3D 游戏引擎.
  • go-astar - 去实现 A* 寻路算法.
  • go-sdl2 - 去绑定 Simple DirectMedia Layer.
  • go3d - 面向性能的 Go 的 2D/3D 数学包.
  • gonet - 用 golang 实现的游戏服务器框架.
  • goworld - 可扩展的游戏服务器引擎,具有空间实体框架和热插拔功能.
  • Leaf - 轻量级游戏服务器框架.
  • nano - 轻量级、方便、高性能的基于 golang 的游戏服务器框架.
  • Oak - Pure Go game engine.
  • Pitaya - 通过 C SDK 为 iOS、Android、Unity 等提供集群支持和客户端库的可扩展游戏服务器框架.
  • Pixel - Go 中手工制作的 2D 游戏库.
  • prototype - 跨平台(Windows/Linux/Mac)库,用于使用最少的 API 创建桌面游戏.
  • raylib-go - 去绑定 raylib,一个简单易用的库,用于学习视频游戏编程.
  • termloop - 基于终端的围棋游戏引擎,建立在 Termbox 之上.
  • tile - 面向数据和缓存友好的 2D 网格库 (TileMap),包括寻路、观察者和导入/导出.

Generation and Generics

通过代码生成使用泛型等功能增强语言的工具.

  • efaceconv - 代码生成工具,可实现从接口{} 到不可变类型的高性能转换,无需分配.
  • gen - 类似“泛型”功能的代码生成工具.
  • generis - 提供泛型、自由格式宏、条件编译和 HTML 模板的代码生成工具.
  • go-enum - 从代码注释中生成枚举的代码.
  • go-linq - 用于 Go 的类似 .NET LINQ 的查询方法.
  • go-xray - 使反射的使用更容易的助手.
  • goderive - 从输入类型派生函数.
  • gotype - Golang 源码解析,用法类似反射包.
  • GoWrap - 使用简单的模板为 Go 接口生成装饰器.
  • interfaces - 用于生成接口定义的命令行工具.
  • jennifer - 无需模板即可生成任意 Go 代码.
  • pkgreflect - Go 预处理器用于包范围反射.
  • typeregistry - 动态创建类型的库.

Geographic

地理工具和服务器

  • geoserver - geoserver 是一个 Go 包,用于通过 GeoServer REST API 操作 GeoServer 实例.
  • gismanager - 将您的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver.
  • mbtileserver - 一个简单的基于 Go 的服务器,用于以 mbtiles 格式存储的地图图块.
  • osm - 用于读取、写入和使用 OpenStreetMap 数据和 API 的库.
  • pbf - OpenStreetMap PBF 组编码器/解码器.
  • S2 geojson - 将 geojson 转换为 s2 单元格并在地图上展示一些 S2 几何特征.
  • S2 geometry - Go 中的 S2 几何库.
  • Tile38 - 具有空间索引和实时地理围栏的地理定位数据库.
  • WGS84 - 坐标转换库(ETRS89、OSGB36、NAD83、RGF93、Web Mercator、UTM).

Go Compilers

用于编译转至其他语言的工具.

  • c4go - 将 C 代码转换为 Go 代码.
  • f4go - 将 FORTRAN 77 代码转换为 Go 代码.
  • gopherjs - 从 Go 到 JavaScript 的编译器.
  • tardisgo - Golang 到 Haxe 到 CPP/CSharp/Java/JavaScript 转译器.

Goroutines

用于管理和使用 Goroutines 的工具.

  • ants - Go 中的高性能和低成本 goroutine 池.
  • artifex - 使用基于工作线程的调度的 Golang 的简单内存作业队列.
  • async - Go 的替代同步库(Future、Promise、Locks).
  • async - 一种异步执行函数的安全方法,在发生恐慌时恢复它们.
  • breaker - 使执行流程可中断的灵活机制.
  • channelify - 将您的函数转换为返回通道,以实现简单而强大的并行处理.
  • concurrency-limiter - 并发限制器,支持超时、动态优先级和 goroutine 的上下文取消.
  • conexec - 一个并发工具包,可帮助以高效和安全的方式并发执行函数. 它支持指定整体超时以避免阻塞,并使用 goroutine 池来提高效率.
  • cyclicbarrier - golang 的 CyclicBarrier.
  • go-floc - 轻松编排 goroutine.
  • go-flow - 控制 goroutines 执行顺序.
  • go-tools/multithreading - 使用这个带有简单 API 的轻量级库管理 goroutine 池.
  • go-trylock - TryLock 支持 Golang 的读写锁.
  • go-waitgroup - 像带有错误处理和并发控制的 sync.WaitGroup.
  • go-workers - 轻松安全地运行大型数据处理管道的工作人员.
  • goccm - Go Concurrency Manager 包限制了允许并发运行的 goroutine 的数量.
  • gohive - 一个高性能且易于使用的 Go 协程池.
  • gollback - 异步简单函数实用程序,用于管理闭包和回调的执行.
  • gowl - Gowl 是一个流程管理和流程监控工具. 无限工作池使您能够控制池和进程并监控它们的状态.
  • goworker - goworker 是一个基于 Go 的后台工作者.
  • gowp - gowp 是并发限制 goroutine 池.
  • gpool - 管理可调整大小的上下文感知 goroutine 池以绑定并发.
  • grpool - 轻量级 Goroutine 池.
  • hands - 一个进程控制器,用于控制多个 goroutine 的执行和返回策略.
  • Hunch - Hunch 提供了诸如:AllFirstRetryWaterfall 等功能,使异步流控制更加直观.
  • kyoo - 提供无限的作业队列和并发工作池.
  • neilotoole/errgroup -sync/errgroup 的替代方案,仅限于 N 个工作程序 goroutines 的池.
  • nursery - Go 中的结构化并发.
  • oversight - 监督是 Erlang 监督树的完整实现.
  • parallel-fn - 并行运行功能.
  • pond - 用 Go 编写的简约和高性能 goroutine 工作池.
  • pool - 有限的消费者 goroutine 或无限的 goroutine 池,以便更轻松地处理和取消 goroutine.
  • queue - 为您提供类似于队列组可访问性的 sync.WaitGroup. 帮助你节流和限制 goroutines,等待所有 goroutines 的结束等等.
  • routine - 带有上下文的常规控制,支持:Main、Go、Pool 和一些有用的 Executors.
  • semaphore - 基于通道和上下文的锁定/解锁操作超时的信号量模式实现.
  • semaphore - 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快).
  • stl - 基于软件事务内存 (STM) 并发控制机制的软件事务锁.
  • threadpool - Golang 线程池实现.
  • tunny - golang 的 Goroutine 池.
  • worker-pool - goworker 是一个 Go 简单的异步工作池.
  • workerpool - 限制任务执行并发的 Goroutine 池,而不是排队的任务数量.

GUI

用于构建 GUI 应用程序的库.

Toolkits

  • app - 使用 GO、HTML 和 CSS 创建应用程序的软件包. 支持:MacOS、Windows 正在进行中.
  • fyne - 基于 Material Design 为 Go 设计的跨平台原生 GUI. 支持:Linux、macOS、Windows、BSD、iOS 和 Android.
  • go-astilectron - 使用 GO 和 HTML/JS/CSS(由 Electron 提供支持)构建跨平台 GUI 应用程序.
  • go-gtk - 去绑定 GTK.
  • go-sciter - Sciter 的 Go 绑定:用于现代桌面 UI 开发的可嵌入 HTML/CSS/脚本引擎. 跨平台.
  • gotk3 - GTK3 的绑定.
  • gowd - 使用 GO、HTML、CSS 和 NW.js 进行快速简单的桌面 UI 开发. 跨平台.
  • qt - Go 的 Qt 绑定(支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
  • ui - Go 的平台原生 GUI 库. 跨平台.
  • Wails - 带有 HTML UI 的 Mac、Windows、Linux 桌面应用程序,使用内置 OS HTML 渲染器.
  • walk - 用于 Go 的 Windows 应用程序库工具包.
  • webview - 具有简单的双向 JavaScript 绑定(Windows / macOS / Linux)的跨平台 webview 窗口.

Interaction

  • go-appindicator - 绑定 libappindicator3 C 库.
  • gosx-notifier - 用于 Go 的 OSX 桌面通知库.
  • mac-activity-tracker - OSX 库,用于通知您机器上的任何(可插拔)活动.
  • mac-sleep-notifier - golang 中的 OSX 睡眠/唤醒通知.
  • robotgo - 转到本机跨平台 GUI 系统自动化. 控制鼠标、键盘等.
  • systray - 跨平台 Go 库在通知区域放置图标和菜单.
  • trayhost - 跨平台 Go 库,可在主机操作系统的任务栏中放置图标.

Hardware

用于与硬件交互的库、工具和教程.

See go-hardware 获取完整列表.

Images

用于处理图像的库.

  • bild - 纯 Go 中图像处理算法的集合.
  • bimg - 使用 libvips 进行快速高效图像处理的小包.
  • cameron - Go 的头像生成器.
  • canvas - 矢量图形到 PDF、SVG 或光栅化图像.
  • darkroom - 具有可变存储后端和图像处理引擎的图像代理,专注于速度和弹性.
  • draft - 使用简单的 YAML 语法为 GraphViz 生成高级微服务架构图.
  • geopattern - 从字符串创建漂亮的生成图像模式.
  • gg - 纯 Go 中的 2D 渲染.
  • gift - 图像处理过滤器包.
  • gltf - 高效且健壮的 glTF 2.0 读取器、写入器和验证器.
  • go-cairo - 绑定 cairo 图形库.
  • go-gd - 去绑定 GD 库.
  • go-nude - 使用 Go 进行裸体检测.
  • go-opencv - 去绑定 OpenCV.
  • go-webcolors - 从 Python 到 Go 的 webcolors 库的端口.
  • gocv - 使用 OpenCV 3.3+ 进行计算机视觉打包.
  • goimagehash - 去感知图像散列包.
  • goimghdr - imghdr 模块确定 Go 文件中包含的图像类型.
  • govatar - 用于生成有趣头像的库和 CMD 工具.
  • govips - 用于 Go 的闪电般快速的图像处理和调整大小库.
  • gridder - 基于网格的 2D 图形库.
  • image2ascii - 将图像转换为 ASCII.
  • imagick - 绑定到 ImageMagick 的 MagickWand C API.
  • imaginary - 用于图像大小调整的快速简单的 HTTP 微服务.
  • imaging - 简单的 Go 图像处理包.
  • img - 选择图像处理工具.
  • ln - Go 中的 3D 线条艺术渲染.
  • mergi - 用于图像处理的 Tool & Go 库(合并、裁剪、调整大小、水印、动画).
  • mort - 用 Go 编写的存储和图像处理服务器.
  • mpo - MPO 3D 照片的解码器和转换工具.
  • picfit - 用 Go 编写的图像大小调整服务器.
  • pt - 用 Go 编写的路径跟踪引擎.
  • resize - 使用常见的插值方法为 Go 调整图像大小.
  • rez - 在纯 Go 和 SIMD 中调整图像大小.
  • smartcrop - 为任意图像和裁剪尺寸找到好的裁剪.
  • steganography - 用于 LSB 隐写术的 Pure Go 库.
  • stegify - 用于 LSB 隐写术的 Go 工具,能够隐藏图像中的任何文件.
  • svgo - 用于 SVG 生成的 Go 语言库.
  • tga - tga 包是一个 TARGA 图像格式解码器/编码器.
  • webp-server - 能够存储、调整大小、转换和缓存图像的简单和最小的图像服务器.

IoT (Internet of Things)

物联网编程设备的库.

  • connectordb - 量化自我和物联网的开源平台.
  • devices - 物联网设备库套件,x/exp/io 实验性.
  • eywa - Project Eywa 本质上是一个连接管理器,用于跟踪连接的设备.
  • flogo - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration.
  • gatt - Gatt 是用于构建低功耗蓝牙外围设备的 Go 包.
  • gobot - Gobot 是一个用于机器人、物理计算和物联网的框架.
  • huego - 用于 Go 的广泛的 Philips Hue 客户端库.
  • iot - IoT 是一个用于实现 Google IoT Core 设备的简单框架.
  • mainflux - 工业物联网消息和设备管理服务器.
  • periph - 外围设备 I/O 与低级板设备接口.
  • sensorbee - 用于物联网的轻量级流处理引擎.

Job Scheduler

用于调度作业的库.

  • clockwerk - Go package 使用简单、流畅的语法来安排定期作业.
  • clockwork - Go 中简单直观的作业调度库.
  • cronticker - 支持 cron 计划的股票代码实现.
  • go-cron - 用于 go 的简单 Cron 库,可以在不同的时间间隔执行闭包或函数,从每秒一次到每年一次,在特定日期和时间. 主要用于 Web 应用程序和长时间运行的守护进程.
  • go-quartz - 简单、零依赖的 Go 调度库.
  • gocron - 轻松流畅的 Go 作业调度. 这是一个积极维护的分支 jasonlvhit/gocron.
  • gron - 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们.
  • JobRunner - 智能且功能强大的 cron 作业调度程序,内置作业队列和实时监控.
  • jobs - 持久且灵活的后台作业库.
  • leprechaun - 支持 webhooks、cron 和经典调度的作业调度程序.
  • scheduler - Cronjobs 调度变得容易.
  • tasks - 一个易于使用的进程内调度程序,用于 Go 中的重复任务.

JSON

用于处理 JSON 的库.

  • ajson - 具有 JSONPath 支持的 golang 抽象 JSON.
  • ask - 轻松访问地图和切片中的嵌套值. 与 encoding/json 和其他将任意数据“解组”为 Go 数据类型的包结合使用.
  • dynjson - 用于动态 API 的客户端可自定义 JSON 格式.
  • ej - 简洁地编写和读取来自不同来源的 JSON.
  • epoch - 包含用于编组/解组 Unix 时间戳/纪元到/来自内置时间的原语.JSON 中的时间类型.
  • fastjson - 用于 Go 的快速 JSON 解析器和验证器. 没有自定义结构,没有代码生成,没有反射.
  • gjo - 创建 JSON 对象的小实用程序.
  • GJSON - 用一行代码获取 JSON 值.
  • go-jsonerror - Go-JsonError 允许我们轻松创建遵循 JsonApi 规范的 json 响应错误.
  • go-respond - 用于处理常见 HTTP JSON 响应的包.
  • gojq - Golang 中的 JSON 查询.
  • gojson - 从示例 JSON 自动生成 Go (golang) 结构定义.
  • JayDiff - 用 Go 编写的 JSON diff 实用程序.
  • jettison - 用于 Go 的快速灵活的 JSON 编码器.
  • JSON-to-Go - 将 JSON 转换为 Go 结构.
  • JSON-to-Proto - 在线将 JSON 转换为 Protobuf.
  • json2go - 高级 JSON 到 Go 结构转换. 提供可以解析多个 JSON 文档并创建适合它们的结构的包.
  • jsonapi-errors - 基于 JSON API 错误参考的绑定.
  • jsondiff - 基于 RFC6902(JSON 补丁)的 Go JSON 差异库.
  • jsonf - 用于突出显示格式和结构查询获取 JSON 的控制台工具.
  • jsongo - Fluent API 可以更轻松地创建 Json 对象.
  • jsonhal - Simple Go package to make custom structs marshal into HAL compatible JSON responses.
  • jsonic - 无需以类型安全的方式定义结构即可处理和查询 JSON 的实用程序.
  • jzon - 具有标准兼容 API/行为的 JSON 库.
  • kazaam - 用于任意转换 JSON 文档的 API.
  • mapslice-json - 使用 MapSlice 对 JSON 中的地图进行有序编组/解组.
  • mp - 简单的 cli 电子邮件解析器. 它目前采用标准输入并输出 JSON.
  • ujson - 适用于非结构化 JSON 的快速且最小的 JSON 解析器和转换器.

Logging

用于生成和处理日志文件的库.

  • distillog - 蒸馏级别的日志记录(将其视为 stdlib + 日志级别).
  • glg - glg 是用于 Go 的简单且快速的分级日志库.
  • glo - PHP Monolog 启发了具有相同严重性级别的日志记录工具.
  • glog - Go 的分级执行日志.
  • go-cronowriter - 根据当前日期和时间自动轮换日志文件的简单编写器,如 cronolog.
  • go-log - 带有跟踪跟踪、对象转储和可选时间戳的日志库.
  • go-log - Go 中简单且可配置的登录,带有级别、格式化程序和编写器.
  • go-log - 日志库支持级别和多处理程序.
  • go-log - Go 中的 Log4j 实现.
  • go-logger - Go 程序的简单记录器,带有级别处理程序.
  • gologger - 简单易用的日志库,可在彩色控制台、简单控制台、文件或 Elasticsearch 中登录.
  • gomol - 具有可扩展日志输出的 Go 的多输出、结构化日志记录.
  • gone/log - 快速、可扩展、功能齐全、std-lib 源兼容的日志库.
  • httpretty - 在您的终端上漂亮地打印您的常规 HTTP 请求以进行调试(类似于 http.DumpRequest).
  • journald - 实现 systemd Journal 的原生 API 以进行日志记录.
  • kemba - 受启发的小型调试日志记录工具 debug,非常适合 CLI 工具和应用程序.
  • log - 一个 O(1) 日志系统,允许您将一个日志连接到多个写入器(例如标准输出、文件和 TCP 连接).
  • log - Go 的结构化日志包.
  • log - 简单、可配置和可扩展的 Go 结构化日志记录.
  • log - Go 的结构化日志接口将日志外观与其实现干净地分开.
  • log-voyage - 用 golang 编写的全功能日志 saas.
  • log15 - 简单、强大的 Go 日志记录.
  • logdump - 用于多级日志记录的包.
  • logex - Golang 日志库,支持跟踪和级别,由标准日志库包装.
  • logger - Go 的简约日志库.
  • logmatic - 带有动态日志级别配置的 Golang 彩色记录器.
  • logo - Golang 记录器到不同的可配置编写器.
  • logrus - Go 的结构化记录器.
  • logrusiowriter - io.Writer 实现使用 logrus 日志.
  • logrusly - logrus 插件将错误发​​送到 Loggly.
  • logur - 一个自以为是的记录器界面和日志记录最佳实践的集合,以及知名库的适配器和集成(logrus, go-kit log, zap, zerolog, 等等).
  • logutils - 用于在 Go (Golang) 中更好地记录扩展标准记录器的实用程序.
  • logxi - 12 要素应用记录器,速度快,让您开心.
  • lumberjack - 简单的滚动记录器,实现 io.WriteCloser.
  • mlog - 简单的 go 日志记录模块,有 5 个级别,一个可选的旋转日志文件功能和 stdout/stderr 输出.
  • onelog - Onelog 是一个非常简单但非常高效的 JSON 记录器. 它是所有场景中最快的 JSON 记录器. 此外,它是分配最低的记录器之一.
  • ozzo-log - 支持日志严重性、分类和过滤的高性能日志记录. 可以将过滤的日志消息发送到各种目标(例如控制台、网络、邮件).
  • phuslu/log - 结构化日志记录变得容易.
  • rollingwriter - RollingWriter 是一个自动旋转的 io.Writer 实现,具有多策略以提供日志文件轮换.
  • seelog - 具有灵活调度、过滤和格式化的日志记录功能.
  • spew - 为 Go 数据结构实现了一个深度漂亮的打印机以帮助调试.
  • sqldb-logger - Go SQL 数据库驱动程序的记录器,无需修改现有的 *sql.DB stdlib 用法.
  • stdlog - Stdlog 是一个面向对象的库,提供分级日志记录. 它对 cron 作业非常有用.
  • tail - 努力模仿 BSD 尾部程序功能的 Go 包.
  • xlog - Go 的插件架构和灵活的日志系统,具有级别 ctrl、多个日志目标和自定义日志格式.
  • xlog - 结构化记录器,用于具有灵活调度的“网络/上下文”感知 HTTP 处理程序.
  • yell - 另一个简约的日志库.
  • zap - Go 中快速、结构化、分级的日志记录.
  • zerolog - 零分配 JSON 记录器.
  • zkits-logger - 强大的零依赖 JSON 记录器.

Machine Learning

机器学习库.

  • bayesian - Golang 的朴素贝叶斯分类.
  • CloudForest - 用于纯 Go 机器学习的快速、灵活、多线程的决策树集合.
  • ddt - 动态决策树,创建定义可定制规则的树.
  • eaopt - 一个进化优化库.
  • evoli - 遗传算法和粒子群优化库.
  • fonet - 用 Go 编写的深度神经网络库.
  • go-cluster - 去实现 k-modes 和 k-prototypes 聚类算法.
  • go-deep - Go 中功能丰富的神经网络库.
  • go-fann - 快速人工神经网络(FANN)库的绑定.
  • go-featureprocessing - 快速方便的特征处理,用于 Go 中的低延迟机器学习.
  • go-galib - 用 Go / golang 编写的遗传算法库.
  • go-pr - Go 语言中的模式识别包.
  • gobrain - 用 go 编写的神经网络.
  • godist - 各种概率分布和相关方法.
  • goga - Go 的遗传算法库.
  • GoLearn - Go 的通用机器学习库.
  • golinear - Go 的 liblinear 绑定.
  • GoMind - 一个简单的 Go 神经网络库.
  • goml - Go 中的在线机器学习.
  • gonet - 用于围棋的神经网络.
  • Goptuna - 用 Go 编写的黑盒函数的贝叶斯优化框架. 一切都会被优化.
  • goRecommend - 用 Go 编写的推荐算法库.
  • gorgonia - 基于图形的计算库,如 Theano for Go,提供用于构建各种机器学习和神经网络算法的原语.
  • gorse - 基于 Go 编写的基于协同过滤的离线推荐系统后端.
  • goscore - 用于 PMML 的评分 API.
  • gosseract - 使用 Tesseract C++ 库为 OCR(光学字符识别)打包.
  • libsvm - 基于 LIBSVM 3.14 的 libsvm golang 版本衍生作品.
  • neat - 用于增强拓扑神经进化 (NEAT) 的即插即用并行 Go 框架.
  • neural-go - 在 Go 中实现的多层感知器网络,通过反向传播进行训练.
  • ocrserver - 一个简单的 OCR API 服务器,非常容易被 Docker 和 Heroku 部署.
  • onnx-go - 转到开放神经网络交换 (ONNX) 的接口.
  • probab - 概率分布函数. 贝叶斯推理. 用纯 Go 编写.
  • randomforest - 易于使用的 Go 随机森林库.
  • regommend - 推荐和协同过滤引擎.
  • shield - 贝叶斯文本分类器,具有灵活的分词器和 Go 存储后端.
  • tfgo - 易于使用的 Tensorflow 绑定:简化了官方 Tensorflow Go 绑定的使用. 在 Go 中定义计算图,加载和执行在 Python 中训练的模型.
  • Varis - Golang 神经网络.

Messaging

实现消息传递系统的库.

  • ami - 将客户端转到基于 Redis 集群流的可靠队列.
  • APNs2 - 用于 Go 的 HTTP/2 Apple 推送通知提供程序 - 向 iOS、tvOS、Safari 和 OSX 应用程序发送推送通知.
  • Asynq - 一个简单、可靠、高效的 Go 分布式任务队列,构建在 Redis 之上.
  • Beaver - 一个实时消息服务器,用于构建可扩展的应用内通知、多人游戏、网络和移动应用程序中的聊天应用程序.
  • Benthos - 一系列协议之间的消息流桥.
  • Bus - 用于内部通信的极简消息总线实现.
  • Centrifugo - Go 中的实时消息传递(Websockets 或 SockJS)服务器.
  • Commander - 高级事件驱动的消费者/生产者,支持各种“方言”,例如 Apache Kafka.
  • Confluent Kafka Golang Client - confluent-kafka-go 是 Confluent 用于 Apache Kafka 和 Confluent 平台的 Golang 客户端.
  • dbus - D-Bus 的本地 Go 绑定.
  • drone-line - 发送 Line 使用二进制、docker 或 Drone CI 的通知.
  • emitter - 使用 Go 方式发出事件,带有通配符、谓词、取消可能性和许多其他好的胜利.
  • event - 模式观察器的实现.
  • EventBus - 具有异步兼容性的轻量级事件总线.
  • gaurun-client - 用 Go 编写的 Gaurun 客户端.
  • Glue - 强大的 Go 和 Javascript Socket 库(替代 Socket.io).
  • go-mq - 具有声明性配置的 RabbitMQ 客户端.
  • go-notify - freedesktop 通知规范的本地实现.
  • go-nsq - NSQ 的官方 Go 包.
  • go-res - 用于构建 REST/实时服务的包,其中客户端使用 NATS 和 Resgate 进行无缝同步.
  • go-socket.io - 实时应用程序框架 golang 的 socket.io 库.
  • go-vitotrol - Viessmann Vitotrol Web 服务的客户端库.
  • Gollum - 一个 n:m 多路复用器,它收集来自不同来源的消息并将它们广播到一组目的地.
  • golongpoll - HTTP longpoll 服务器库,使 web pub-sub 变得简单.
  • gopush-cluster - gopush-cluster 是一个 go push 服务器集群.
  • gorush - 使用推送通知服务器 APNs2 和谷歌 GCM.
  • gosd - 用于调度何时向通道发送消息的库.
  • guble - 使用推送通知(Google Firebase Cloud Messaging、Apple Push Notification services、SMS)以及 websockets、REST API 的消息服务器,具有分布式操作和消息持久性.
  • hare - 用于发送消息和侦听 TCP 套接字的用户友好库.
  • hub - Go 应用程序的消息/事件中心,使用发布/订阅模式并支持像 rabbitMQ 交换这样的别名.
  • jazz - 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费.
  • machinery - 基于分布式消息传递的异步任务队列/作业队列.
  • mangos - 具有传输互操作性的 Nanomsg(“可扩展性协议”)的纯 go 实现.
  • melody - 处理 websocket 会话的极简框架,包括广播和自动 ping/pong 处理.
  • Mercure - 使用 Mercure 协议(建立在 Server-Sent Events 之上)调度服务器发送的更新的服务器和库.
  • messagebus - messagebus 是一个 Go 简单的异步消息总线,非常适合在进行事件源、CQRS、DDD 时用作事件总线.
  • NATS Go Client - 轻量级和高性能的发布订阅和分布式排队消息系统 - 这是 Go 库.
  • nsq-event-bus - 一个围绕 NSQ 主题和频道的小包装.
  • oplog - REST API 的通用操作日志/复制系统.
  • pubsub - 简单的 pubsub 包.
  • rabbus - amqp 交换和队列的一个小包装.
  • rabtap - RabbitMQ 瑞士军刀 cli 应用程序.
  • RapidMQ - RapidMQ 是一个轻量级、可靠的库,用于管理本地消息队列.
  • redisqueue - redisqueue 提供了使用 Redis 流的队列的生产者和消费者.
  • rmqconn - RabbitMQ 重新连接. 包装在 amqp.Connection 和 amqp.Dial 上. 在强制关闭调用 Close() 方法之前,允许在连接中断时进行重新连接.
  • sarama - Apache Kafka 的 Go 库.
  • Uniqush-Push - Redis 支持统一推送服务,用于向移动设备发送服务器端通知.
  • zmq4 - 转到 ZeroMQ 版本 4 的接口.也可用于 version 3version 2.

Microsoft Office

  • unioffice - 用于创建和处理 Office Word (.docx)、Excel (.xlsx) 和 Powerpoint (.pptx) 文档的纯 go 库.

Microsoft Excel

用于处理 Microsoft Excel 的库.

  • excelize - 用于读取和写入 Microsoft Excel™ (XLSX) 文件的 Golang 库.
  • go-excel - 一个简单而轻便的阅读器,可以将类似相关数据库的 excel 作为表格阅读.
  • goxlsxwriter - 用于编写 XLSX (Microsoft Excel) 文件的 libxlsxwriter 的 Golang 绑定.
  • xlsx - 用于简化在 Go 程序中读取最新版本的 Microsoft Excel 使用的 XML 格式的库.
  • xlsx - 在 Go 程序中快速安全地读取/更新现有的 Microsoft Excel 文件.

Miscellaneous

Dependency Injection

用于处理依赖注入的库.

  • alice - Golang 的附加依赖注入容器.
  • container - 功能强大的 IoC 容器,具有流畅且易于使用的界面.
  • di - Go 编程语言的依赖注入容器.
  • dig - 基于反射的 Go 依赖注入工具包.
  • dingo - 基于 Guice 的 Go 依赖注入工具包.
  • fx - 基于依赖注入的 Go 应用程序框架(建立在 dig 之上).
  • gocontainer - 简单的依赖注入容器.
  • goioc/di - 受 Spring 启发的依赖注入容器.
  • kinit - 具有全局模式、级联初始化和恐慌安全终结的可定制依赖注入容器.
  • linker - 基于反射的依赖注入和具有组件生命周期支持的控制库反转.
  • nject/npoint - 基于库、测试和端点类型的类型安全、反射框架.
  • wire - Golang 的严格运行时依赖注入.

Project Layout

非官方 一组用于构建项目的模式.

Strings

用于处理字符串的库.

  • go-formatter - 实现用大括号“{}”格式字符串包围的替换字段.
  • gobeam/Stringy - 字符串操作库,可将字符串转换为驼峰式、蛇式、烤肉串 / slugify 等.
  • strutil - 字符串实用程序.
  • xstrings - 从其他语言移植的有用字符串函数的集合.

Uncategorized

这些库被放在这里是因为其他类别似乎都不适合.

  • anagent - 带有依赖注入的简约、可插拔的 Golang evloop/计时器处理程序.
  • antch - 一个快速、强大且可扩展的网络爬虫和抓取框架.
  • archiver - 用于制作和提取 .zip 和 .tar.gz 档案的库和命令.
  • autoflags - 转到包以从结构字段自动定义命令行标志.
  • avgRating - 根据威尔逊分数方程计算平均分数和评分.
  • banner - 在您的 Go 应用程序中添加漂亮的横幅.
  • base64Captcha - Base64captch 支持数字、数字、字母、算术、音频和数字字母验证码.
  • battery - 跨平台、标准化的电池信息库.
  • bitio - 高度优化的 Go 位级读写器.
  • browscap_go - GoLang 库 Browser Capabilities Project.
  • captcha - 包验证码为验证码生成提供了一个易于使用、不受​​约束的 API.
  • conv - Package conv 提供跨 Go 类型的快速直观的转换.
  • datacounter - 为 reader/writer/http.ResponseWriter 计数器.
  • faker - Go 的随机假数据和结构生成器.
  • ffmt - 美化人类数据显示.
  • gatus - 自动化服务健康仪表板.
  • go-commons-pool - Golang 的通用对象池.
  • go-openapi - 用于解析和利用开放 API 模式的包的集合.
  • go-resiliency - golang 的弹性模式.
  • go-unarr - RAR、TAR、ZIP 和 7z 档案的解压库.
  • gofakeit - 用 go 编写的随机数据生成器.
  • gommit - 分析 git commit 消息以确保它们遵循定义的模式.
  • gopsutil - 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台库.
  • gosh - 提供 Go Statistics Handler、Struct、Measure 方法.
  • gosms - 您自己的 Go 本地短信网关,可用于发送短信.
  • gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client.
  • gountries - 公开国家和细分数据的包.
  • health - 易于使用,可扩展的健康检查库.
  • healthcheck - 一个用于 RESTful 服务的自以为是的并发健康检查 HTTP 处理程序.
  • hostutils - 用于打包和解包 FQDN 列表的 golang 库.
  • indigo - 使用 Sonyflake 并由 Base58 编码的分布式唯一 ID 生成器.
  • lk - A simple licensing library for golang.
  • llvm - 在纯 Go 中与 LLVM IR 交互的库.
  • metrics - 用于度量仪器和 Prometheus 博览会的库.
  • morse - 与莫尔斯电码相互转换的库.
  • numa - NUMA 是一个实用程序库,它是用 go 编写的. 它帮助我们编写一些 NUMA-AWARED 代码.
  • pdfgen - 从 Json 请求生成 PDF 的 HTTP 服务.
  • persian - go 中的一些波斯语实用程序.
  • sandid - 地球上的每一粒沙子都有自己的ID.
  • shellwords - 根据 UNIX Bourne shell 的单词解析规则操作字符串的 Golang 库.
  • shortid - 分布式生成超短、唯一、非顺序、URL 友好的 ID.
  • shoutrrr - 通知库提供对各种消息服务的轻松访问,如 slack、mattermost、gotify 和 smtp 等.
  • stateless - 一个用于创建状态机的流畅库.
  • stats - 监控 Go MemStats + 系统统计信息,例如内存、交换和 CPU,并通过 UDP 发送到您想要记录的任何地方等...
  • turtle - 去的表情符号.
  • url-shortener - 具有 mysql 支持的现代、强大且健壮的 URL 缩短器微服务.
  • VarHandler - 生成样板 http 输入和输出处理.
  • xdg - 在 Go 中实现的 FreeDesktop.org (xdg) 规范.
  • xkg - X 键盘抓取器.

Natural Language Processing

用于处理人类语言的库.

  • address - 处理地址表示、验证和格式化.
  • detectlanguage - 语言检测 API Go 客户端. 支持批量请求、短语或单字语言检测.
  • getlang - 快速自然语言检测包.
  • go-i18n - 用于处理本地化文本的软件包和随附工具.
  • go-localize - 简单易用的 i18n(国际化和本地化)引擎 - 用于翻译语言环境字符串.
  • go-mystem - CGo 绑定到 Yandex.Mystem - 俄罗斯形态分析器.
  • go-nlp - 用于处理离散概率分布的实用程序和其他对 NLP 工作有用的工具.
  • go-pinyin - CN Hanzi to Hanyu Pinyin converter.
  • go-stem - 波特词干算法的实现.
  • go-unidecode - Unicode 文本的 ASCII 音译.
  • go2vec - word2vec 嵌入的阅读器和实用程序功能.
  • gojieba - 这是一个 Go 实现 jieba 其中一种中文分词算法.
  • golibstemmer - 去绑定雪球 libstemmer 库,包括 porter 2.
  • gosentiwordnet - 在 Go 中使用 sentiwordnet 词典的情绪分析器.
  • gotokenizer - 基于 Golang 的字典和 Bigram 语言模型的分词器. (现在只支持中文分词)
  • gounidecode - 用于 Go 的 Unicode 音译器(也称为 unidecode).
  • govader - 去执行 VADER Sentiment Analysis.
  • gse - 去高效的文本分割; 支持英文、中文、日文等.
  • icu - icu4c C 库检测和转换函数的 Cgo 绑定. 保证与 50.1 版兼容.
  • iuliia-go - 以各种可能的方式音译西里尔文 → 拉丁文.
  • kagome - 用纯 Go 编写的 JP 形态分析器.
  • libtextcat - libtextcat C 库的 Cgo 绑定. 保证与 2.2 版兼容.
  • MMSEGO - 这是一个 GO 实现 MMSEG 其中一种中文分词算法.
  • nlp - 从字符串中提取值并用 nlp 填充结构.
  • nlp - 支持 LSA(潜在语义分析)的自然语言处理库.
  • paicehusk - Paice/Husk Stemming 算法的 Golang 实现.
  • petrovich - Petrovich 是一个库,它根据给定的语法情况将俄语名称变形.
  • porter - 这是 Martin Porter 的 Porter 词干算法的 C 实现的一个相当简单的移植.
  • porter2 - 波特2票真快.
  • prose - 支持标记化、词性标注、命名实体提取等的文本处理库. 仅限英语.
  • RAKE.go - 转到快速自动关键字提取算法 (RAKE) 的端口.
  • segment - 用于执行 Unicode 文本分割的库,如中所述 Unicode Standard Annex #29
  • sentences - 句子标记器:将文本转换为句子列表.
  • shamoji - shamoji 是用 Go 编写的单词过滤包.
  • snowball - 用于 Go 的 Snowball Stemmer 端口(cgo 包装器). 提供词干提取功能 Snowball native.
  • spaGO - Go 中自包含的机器学习和自然语言处理库.
  • stemmer - Go 编程语言的 Stemmer 包. 包括英语和德语词干分析器.
  • textcat - 用于基于 n-gram 的文本分类的 Go 包,支持 utf-8 和原始文本.
  • transliterator - 提供单向字符串音译,支持特定语言的音译规则.
  • whatlanggo - Go 的自然语言检测包. 支持 84 种语言和 24 种脚本(书写系统,例如拉丁文、西里尔文等).
  • when - 带有可插入规则的自然 EN 和 RU 语言日期/时间解析器.

Networking

用于处理网络各层的库.

  • arp - 包 arp 实现了 ARP 协议,如 RFC 826 中所述.
  • buffstreams - 通过 TCP 流式传输协议缓冲区数据变得容易.
  • canopus - CoAP 客户端/服务器实现(RFC 7252).
  • cidranger - Go 的快速 IP 到 CIDR 查找.
  • dhcp6 - 包 dhcp6 实现了 DHCPv6 服务器,如 RFC 3315 中所述.
  • dns - 使用 DNS 的库.
  • ether - 用于发送和接收以太网帧的跨平台 Go 包.
  • ethernet - 以太网包实现了 IEEE 802.3 以太网 II 帧和 IEEE 802.1Q VLAN 标签的编组和解组.
  • fasthttp - 包 fasthttp 是 Go 的快速 HTTP 实现,比 net/http 快 10 倍.
  • fortio - 负载测试库和命令行工具、高级回显服务器和 Web UI. 允许指定设置的每秒查询负载并记录延迟直方图和其他有用的统计数据并绘制它们. Tcp、Http、gRPC.
  • ftp - 包 ftp 实现了一个 FTP 客户端,如中所述 RFC 959.
  • ftpserverlib - 功能齐全的 FTP 服务器库.
  • gaio - 前摄器模式下 Golang 的高性能异步 io 网络.
  • gev - gev 是一个基于 Reactor 模式的轻量级、快速的非阻塞 TCP 网络库.
  • gmqtt - Gmqtt 是一个灵活、高性能的 MQTT 代理库,完全实现了 MQTT 协议 V3.1.1.
  • gnet - gnet 是一个用纯 Go 编写的高性能、轻量级、非阻塞、事件驱动的网络框架.
  • gNxI - 使用 gNMI 和 gNOI 协议的网络管理工具集合.
  • go-getter - Go 库,用于使用 URL 从各种来源下载文件或目录.
  • go-powerdns - Golang 的 PowerDNS API 绑定.
  • go-stun - 去实现 STUN 客户端(RFC 3489 和 RFC 5389).
  • gobgp - BGP 在 Go 编程语言中实现.
  • gohooks - GoHooks 使从 Go 应用程序发送和使用安全网络钩子变得容易. 受 Spatie 的 Laravel Webhook 客户端和服务器的启发.
  • golibwireshark - 封装 golibwireshark 使用 libwireshark 库来解码 pcap 文件并分析解剖数据.
  • gopacket - 使用 libpcap 绑定进行数据包处理的库.
  • gopcap - 为 libpcap 进行包装.
  • goshark - 包 goshark 使用 tshark 来解码 IP 数据包并创建数据结构来分析数据包.
  • gosnmp - 用于执行 SNMP 操作的本机 Go 库.
  • gotcp - 用于快速编写 tcp 应用程序的 Go 包.
  • grab - 用于管理文件下载的包.
  • graval - 实验性的 FTP 服务器框架.
  • HTTPLab - HTTPLabs 允许您检查 HTTP 请求并伪造响应.
  • httpproxy - HTTP 代理处理程序和拨号程序.
  • iplib - 用于处理 IP 地址(net.IP、net.IPNet)的库,受 Python 启发 ipaddress 和红宝石 ipaddr
  • jazigo - Jazigo 是一个用 Go 编写的工具,用于检索多个网络设备的配置.
  • kcp-go - KCP - 快速可靠的 ARQ 协议.
  • kcptun - 基于 KCP 协议的极其简单和快速的 udp 隧道.
  • lhttp - 强大的websocket框架,更轻松地构建您的IM服务器.
  • linkio - 读取器/写入器接口的网络链接速度模拟.
  • llb - 这是一个非常简单但快速的代理服务器后端. 可用于快速重定向到具有零内存分配和快速响应的预定义域.
  • mdns - Golang 中的简单 mDNS(多播 DNS)客户端/服务器库.
  • mqttPaho - Paho Go Client 提供了一个 MQTT 客户端库,用于通过 TCP、TLS 或 WebSockets 连接到 MQTT 代理.
  • nbio - 用 Go 编写的高性能、非阻塞、事件驱动、易于使用、依赖最少的网络框架.
  • NFF-Go - 为云和裸机(原 YANFF)快速开发高性能网络功能的框架.
  • packet - 通过 TCP 和 UDP 发送数据包. 如果需要,它可以缓冲消息和热插拔连接.
  • panoptes-stream - 云原生分布式流媒体网络遥测(gNMI、Juniper JTI 和 Cisco MDT).
  • peerdiscovery - 使用 UDP 多播进行跨平台本地对等发现的纯 Go 库.
  • portproxy - 简单的 TCP 代理,它为不支持的 API 添加了 CORS 支持.
  • publicip - 包 publicip 返回您面向公众的 IPv4 地址(互联网出口).
  • quic-go - QUIC 协议在纯 Go 中的实现.
  • raw - Package raw 允许在网络接口的设备驱动程序级别读取和写入数据.
  • sftp - 包 sftp 实现了 SSH 文件传输协议,如 https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt 中所述.
  • ssh - 用于构建 SSH 服务器的高级 API(包装加密/ssh).
  • sslb - 这是一个超级简单的负载均衡器,只是一个实现某种性能的小项目.
  • stun - 去实现 RFC 5389 STUN 协议.
  • tcp_server - 用于更快构建 tcp 服务器的 Go 库.
  • tspool - TCP 库使用工作池来提高性能并保护您的服务器.
  • utp - Go uTP 微传输协议实现.
  • vssh - 用于通过 SSH 协议构建网络和服务器自动化的 Go 库.
  • water - 简单的 TUN/TAP 库.
  • webrtc - WebRTC API 的纯 Go 实现.
  • winrm - 使用 WinRM 客户端在 Windows 机器上远程执行命令.
  • xtcp - 具有同步全双工通信、正常关机和自定义协议的 TCP 服务器框架.

HTTP Clients

用于发出 HTTP 请求的库.

  • gentleman - 功能齐全的插件驱动的 HTTP 客户端库.
  • go-http-client - 简单轻松地进行 http 调用.
  • grequests - 伟大而著名的请求库的“克隆”.
  • heimdall - 具有重试和 hystrix 功能的增强型 http 客户端.
  • httpretry - 使用重试功能丰富默认的 go HTTP 客户端.
  • pester - 使用重试、退避和并发进行 HTTP 客户端调用.
  • request - golang 的 HTTP 客户端. 如果您对 axios 或请求有经验,您会喜欢它. 没有第三个依赖.
  • resty - 受 Ruby rest-client 启发的用于 Go 的简单 HTTP 和 REST 客户端.
  • rq - 一个更好的 golang stdlib HTTP 客户端接口.
  • sling - Sling 是一个 Go HTTP 客户端库,用于创建和发送 API 请求.

OpenGL

在 Go 中使用 OpenGL 的库.

  • gl - 去绑定 OpenGL(通过发光生成).
  • glfw - GLFW 3 的绑定.
  • go-glmatrix - 去港口 glMatrix 图书馆.
  • goxjs/gl - 跨平台 OpenGL 绑定(OS X、Linux、Windows、浏览器、iOS、Android).
  • goxjs/glfw - 用于创建 OpenGL 上下文和接收事件的跨平台 glfw 库.
  • mathgl - 专用于 3D 数学的 Pure Go 数学包,灵感来自 GLM.

ORM

实现对象关系映射或数据映射技术的库.

  • beego orm - 强大的 orm 框架. 支持:pq/mysql/sqlite3.
  • ent - Go 的实体框架. 用于建模和查询数据的简单而强大的 ORM.
  • go-firestorm - 适用于 Google/Firebase Cloud Firestore 的简单 ORM.
  • go-pg - PostgreSQL ORM,专注于 PostgreSQL 的特定功能和性能.
  • go-queryset - 100% 类型安全的 ORM,带有代码生成和 MySQL、PostgreSQL、Sqlite3、基于 GORM 的 SQL Server 支持.
  • go-sql - 一个简单的 mysql ORM.
  • go-sqlbuilder - 灵活而强大的 SQL 字符串生成器库以及零配置 ORM.
  • go-store - 简单快速的 Redis 支持的 Go 键值存储库.
  • GORM - Golang 的精彩 ORM 库,旨在对开发人员友好.
  • gormt - Mysql 数据库到 golang gorm 结构.
  • gorp - Go Relational Persistence,用于 Go 的 ORM-ish 库.
  • grimoire - Grimoire 是一个数据库访问层和 golang 验证. (支持:MySQL、PostgreSQL 和 SQLite3).
  • lore - Go 的简单轻量级伪 ORM/伪结构映射环境.
  • marlow - 从项目结构生成 ORM,用于编译时安全保证.
  • pop/soda - 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等.
  • QBS - 代表按结构查询. 一个去 ORM.
  • reform - 基于非空接口和代码生成的更好的 Go ORM.
  • rel - Golang 的现代数据库访问层 - 可测试、可扩展并制作成干净优雅的 API.
  • SQLBoiler - ORM 生成器. 生成适合您的数据库架构的功能强大且速度极快的 ORM.
  • upper.io/db - 通过使用封装成熟数据库驱动程序的适配器与不同数据源交互的单一接口.
  • XORM - 用于 Go 的简单而强大的 ORM. (支持:MySQL、MyMysql、PostgreSQL、Tidb、SQLite3、MsSql 和 Oracle).
  • Zoom - 基于 Redis 构建的超快数据存储和查询引擎.

Package Management

官方依赖和包管理工具

  • go modules - 模块是源代码交换和版本控制的单元. go 命令直接支持使用模块,包括记录和解析对其他模块的依赖关系.

用于包管理的官方实验工具

  • dep - 去依赖工具.
  • vgo - 版本化的 Go.

用于包和依赖项管理的非官方库.

  • glide - 轻松管理您的 golang 供应商和供应商包. 受 Maven、Bundler 和 Pip 等工具的启发.
  • godep - go 的依赖工具,godep 通过修复它们的依赖来帮助构建可重复的包.
  • gom - Go Manager - 捆绑包.
  • goop - 受 Bundler 启发的 Go (golang) 的简单依赖项管理器.
  • gop - 在 GOPATH 之外构建和管理您的 Go 应用程序.
  • gopm - 去包管理器.
  • govendor - 去包管理器. Go 供应商工具,适用于标准供应商文件.
  • gpm - Go 的准系统依赖管理器.
  • johnny-deps - 使用 Git 的最小依赖版本.
  • modgv - 将“go mod graph”输出转换为 Graphviz 的 DOT 语言.
  • mvn-golang - 在 Maven 项目基础设施中提供自动加载 Golang SDK、依赖管理和启动构建环境的插件.
  • nut - 供应商 Go 依赖项.
  • VenGO - 创建和管理可导出的隔离 Go 虚拟环境.

Performance

  • jaeger - 分布式跟踪系统.
  • pixie - 没有通过 eBPF 对 Golang 应用程序进行检测跟踪.
  • profile - 简单的 Go 分析支持包.
  • statsviz - Go 应用程序运行时统计数据的实时可视化.
  • tracer - 简单、轻量级的追踪.

Query Language

  • api-fu - 全面的 GraphQL 实现.
  • dasel - 使用命令行中的选择器查询和更新数据结构. 与 jq/yq 相当,但支持 JSON、YAML、TOML 和 XML,运行时依赖为零.
  • gojsonq - 一个简单的 Go 包来查询 JSON 数据.
  • gqlgen - 去生成基于 graphql 服务器库.
  • graphql - graphql 解析器 + 实用程序.
  • graphql - 专注于易用性的 GraphQL 服务器.
  • graphql-go - GraphQL for Go 的实现.
  • gws - Apollos 的“GraphQL over Websocket”客户端和服务器实现.
  • jsonpath - 基于 JSONPath 语法检索部分 JSON 的查询库.
  • jsonql - Golang 中的 JSON 查询表达式库.
  • jsonslice - 带有高级过滤器的 Jsonpath 查询.
  • rql - REST API 的资源查询语言.
  • rqp - REST API 的查询解析器. 查询中直接支持过滤、验证、“AND”、“OR”操作.
  • straf - 轻松将 Golang 结构转换为 GraphQL 对象.

Resource Embedding

  • debme - 从现有的 embed.FS 子目录创建一个 embed.FS.
  • esc - 将文件嵌入 Go 程序并为它们提供 http.FileSystem 接口.
  • fileb0x - 将文件嵌入到 go 中的简单工具,重点是“定制”和易用性.
  • go-resources - 用 Go 嵌入的非花哨资源.
  • go.rice - go.rice 是一个 Go 包,可以非常轻松地处理 HTML、JS、CSS、图像和模板等资源.
  • mule - 将图像、电影等外部资源嵌入到 Go 源代码中,以使用 go generate 创建单个文件二进制文件. 专注于简单.
  • packr - 将静态文件嵌入到 Go 二进制文件中的简单方法.
  • rebed - 从 Go 1.16 的 embed.FS 类型重新创建文件夹结构和文件
  • statics - 将静态资源嵌入到 go 文件中以进行单个二进制编译 + 与 http.FileSystem + 符号链接一起使用.
  • statik - 将静态文件嵌入到 Go 可执行文件中.
  • templify - 将外部模板文件嵌入到 Go 代码中以创建单个文件二进制文件.
  • vfsgen - 生成静态实现给定虚拟文件系统的 vfsdata.go 文件.

Science and Data Analysis

用于科学计算和数据分析的库.

  • assocentity - 包关联性返回单词到给定实体的平均距离.
  • bradleyterry - 提供用于成对比较的 Bradley-Terry 模型.
  • calendarheatmap - 受 Github 贡献活动启发的普通 Go 日历热图.
  • chart - 用于 Go 的简单图表绘制库. 支持多种图形类型.
  • dataframe-go - 用于机器学习和统计的数据框(类似于熊猫).
  • decimal - 包十进制实现任意精度十进制浮点运算.
  • evaler - 简单的浮点算术表达式计算器.
  • ewma - 指数加权移动平均线.
  • geom - golang 的 2D 几何.
  • go-dsp - Go 的数字信号处理.
  • go-estimate - Go 中的状态估计和过滤算法.
  • go-gt - 用“Go”语言编写的图论算法.
  • godesim - 扩展/多变量 ODE 求解器框架,用于具有简单 API 的基于事件的模拟.
  • goent - 执行熵测度.
  • gohistogram - 数据流的近似直方图.
  • gonum - Gonum 是一组用于 Go 编程语言的数字库. 它包含矩阵、统计、优化等库.
  • gonum/plot - gonum/plot 提供了一个 API,用于在 Go 中构建和绘制绘图.
  • goraph - 纯 Go 图论库(数据结构、算法可视化).
  • gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
  • GoStats - GoStats 是一个用于数学统计的开源 GoLang 库,主要用于机器学习领域,它涵盖了大多数统计测量功能.
  • graph - 基本图形算法库.
  • ode - 常微分方程 (ODE) 求解器,支持扩展状态和基于通道的迭代停止条件.
  • orb - 具有裁剪、GeoJSON 和 Mapbox Vector Tile 支持的 2D 几何类型.
  • pagerank - 在 Go 中实现的加权 PageRank 算法.
  • piecewiselinear - 微小的线性插值库.
  • PiHex - 对十六进制数 Pi 实施“Bailey-Borwein-Plouffe”算法.
  • rootfinding - 用于寻找二次函数根的寻根算法库.
  • sparse - 支持科学和机器学习应用程序的线性代数稀疏矩阵格式,与 gonum 矩阵库兼容.
  • stats - Golang 标准库中缺少常用函数的统计包.
  • streamtools - 用于处理数据流的通用图形工具.
  • TextRank - 在 Golang 中实现 TextRank,具有可扩展的功能(汇总、加权、短语提取)和多线程(goroutine)支持.
  • triangolatte - 二维三角测量库. 允许将线和多边形(均基于点)转换为 GPU 的语言.

Security

用于帮助使您的应用程序更安全的库.

  • acmetool - 具有自动更新功能的 ACME(让我们加密)客户端工具.
  • acra - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system.
  • argon2-hashing - 围绕 Go 的 argon2 包的轻量级包装,与 Go 的标准库 Bcrypt 和 simple-scrypt 包密切反映.
  • argon2pw - Argon2 密码哈希生成与恒定时间密码比较.
  • autocert - 自动配置 Let's Encrypt 证书并启动 TLS 服务器.
  • BadActor - 以fail2ban 的精神构建的内存中、应用程序驱动的jailer.
  • Cameradar - 从监控摄像机远程破解 RTSP 流的工具和库.
  • certificates - An opinionated tool for generating tls certificates.
  • firewalld-rest - 在 Linux 服务器上动态更新 firewalld 规则的休息应用程序.
  • go-generate-password - 可用于 cli 或作为库的密码生成器.
  • go-password-validator - 基于原始加密熵值的密码验证器.
  • go-yara - 去绑定 YARA,“用于恶意软件研究人员(和其他所有人)的模式匹配瑞士刀”.
  • goArgonPass - Argon2 密码哈希和验证旨在与现有的 Python 和 PHP 实现兼容.
  • goSecretBoxPassword - 一个可能用于安全散列和加密密码的偏执包.
  • Interpol - 基于规则的数据生成器,用于模糊测试和渗透测试.
  • lego - Pure Go ACME 客户端库和 CLI 工具(用于 Let's Encrypt).
  • memguard - 用于处理内存中敏感值的纯 Go 库.
  • nacl - 去实现 NaCL 的 API 集.
  • optimus-go - 使用 Knuth 算法进行 ID 散列和混淆.
  • passlib - 面向未来的密码哈希库.
  • secure - Go 的 HTTP 中间件,可促进一些快速的安全性胜利.
  • secureio - 基于 XChaCha20-poly1305、ECDH 和 ED25519 的“io.ReadWriteCloser”的密钥交换+身份验证+加密包装器和多路复用器.
  • simple-scrypt - 带有简单、明显的 API 和内置自动成本校准的 Scrypt 包.
  • ssh-vault - 使用 ssh 密钥加密/解密.
  • sslmgr - 使用围绕 acme/autocert 的高级包装器使 SSL 证书变得容易.
  • themis - 用于解决典型数据安全任务(安全数据存储、安全消息传递、零知识证明身份验证)的高级密码库,可用于 14 种语言,最适合多平台应用程序.

Serialization

用于二进制序列化的库和工具.

  • asn1 - Golang 的 Asn.1 BER 和 DER 编码库.
  • bambam - 来自 go 的 Cap'n Proto 模式的生成器.
  • bel - 从 Go 结构/接口生成 TypeScript 接口. 对 JSON RPC 很有用.
  • binstruct - Golang 二进制解码器,用于将数据映射到结构中.
  • cbor - 小巧、安全且简单的 CBOR 编码和解码库.
  • colfer - Colfer 二进制格式的代码生成.
  • csvutil - 高性能、惯用的 CSV 记录编码和解码到本地 Go 结构.
  • elastic - 无论如何,在运行时转换不同类型的切片、地图或任何其他未知值.
  • fixedwidth - 固定宽度的文本格式(支持 UTF-8).
  • fwencoder - Go 的固定宽度文件解析器(编码和解码库).
  • go-capnproto - Cap'n Proto 库和解析器.
  • go-codec - 用于 msgpack、cbor 和 json 的高性能、功能丰富、惯用的编码、解码和 rpc 库,具有基于运行时的 OR 代码生成支持.
  • go-lctree - 提供用于序列化和反序列化的 CLI 和原语 LeetCode binary trees.
  • gogoprotobuf - Go with Gadgets 的协议缓冲区.
  • goprotobuf - 以库和协议编译器插件的形式支持 Google 的协议缓冲区.
  • jsoniter - 高性能 100% 兼容的“编码/json”替代品.
  • mapstructure - 用于将通用映射值解码为原生 Go 结构的 Go 库.
  • php_session_decoder - 用于处理 PHP 会话格式和 PHP 序列化/反序列化函数的 GoLang 库.
  • pletter - 为消息代理包装原始消息的标准方法.
  • structomap - 从静态结构轻松动态地生成地图的库.
  • unitpacking - 将单位向量打包成尽可能少的字节的库.

Server Applications

  • algernon - 内置支持 Lua、Markdown、GCSS 和 Amber 的 HTTP/2 Web 服务器.
  • Caddy - Caddy 是另一种 HTTP/2 网络服务器,易于配置和使用.
  • consul - Consul 是一个用于服务发现、监控和配置的工具.
  • cortex-tenant - Prometheus 远程写入代理,根据指标标签添加添加 Cortex 租户 ID 标头.
  • devd - 开发人员的本地网络服务器.
  • discovery - 用于弹性中间层负载平衡和故障转移的注册表.
  • dudeldu - 一个简单的 SHOUTcast 服务器.
  • etcd - 用于共享配置和服务发现的高度可用的键值存储.
  • Fider - Fider 是一个收集和组织客户反馈的开放平台.
  • Flagr - Flagr 是一种开源功能标记和 A/B 测试服务.
  • flipt - 用 Go 和 Vue.js 编写的自包含功能标志解决方案
  • go-feature-flag - 一个功能标志解决方案,后端只有一个YAML文件(S3,GitHub,HTTP,本地文件...),无需安装服务器,只需在中央系统中添加一个文件并引用它.
  • go-proxy-cache - 带缓存的简单反向代理,用 Go 编写,使用 Redis.
  • jackal - 用 Go 编写的 XMPP 服务器.
  • lets-proxy2 - 用于处理 https 的反向代理,并从 let-encrypt 快速发布证书.
  • minio - Minio 是一个分布式对象存储服务器.
  • nginx-prometheus - Nginx log parser and exporter to Prometheus.
  • nsq - 实时分布式消息传递平台.
  • protoxy - 将 JSON 请求正文转换为协议缓冲区的代理服务器.
  • psql-streamer - 将数据库事件从 PostgreSQL 流式传输到 Kafka.
  • riemann-relay - 中继负载平衡 Riemann 事件和/或将它们转换为 Carbon.
  • RoadRunner - 高性能 PHP 应用服务器、负载均衡器和进程管理器.
  • SFTPGo - 功能齐全且高度可配置的 SFTP 服务器,具有可选的 FTP/S 和 WebDAV 支持. 它可以服务于本地文件系统和云存储后端,如 S3 和谷歌云存储.
  • simple-jwt-provider - 展示 JWT 的简单轻量级提供程序,支持登录、密码重置(通过邮件)和用户管理.
  • Trickster - HTTP 反向代理缓存和时间序列加速器.

Stream Processing

用于流处理和反应式编程的库和工具.

  • go-streams - 去流处理库.
  • machine - Go 库,用于编写和生成具有内置指标和可追溯性的流工作器.
  • stream - Go Stream,如 Java 8 Stream:Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...

Template Engines

用于模板和词法分析的库和工具.

  • ace - Ace 是 Go 的 HTML 模板引擎,灵感来自 Slim 和 Jade. 王牌是黄金的提炼.
  • amber - Amber 是一个优雅的 Go 编程语言模板引擎它的灵感来自 HAML 和 Jade.
  • damsel - 标记语言通过 css-selectors 提供 html 大纲,可通过 pkg html/template 等进行扩展.
  • ego - 轻量级模板语言,可让您在 Go 中编写模板. 模板被翻译成 Go 并编译.
  • extemplate - html/template 周围的小包装器,以允许轻松的基于文件的模板继承.
  • fasttemplate - 简单快速的模板引擎. 替换模板占位符的速度高达 10 倍 text/template.
  • gofpdf - PDF 文档生成器,对文本、绘图和图像提供高级支持.
  • gospin - 文章旋转和 spintax/spinning 语法引擎,对 A/B 有用,测试文本/文章片段并创建更自然的对话.
  • goview - Goview 是一个基于 golang html/template 的轻量级、简约和惯用的模板库,用于构建 Go 网络应用程序.
  • hero - Hero 是一个方便、快速和强大的围棋模板引擎.
  • jet - Jet 模板引擎.
  • kasia.go - HTML 和其他文本文档的模板系统 - 执行.
  • liquid - 去实施 Shopify Liquid 模板.
  • maroto - 一种创建 PDF 的 maroto 方式. Maroto 受到 Bootstrap 的启发并使用了 gofpdf. 快速而简单.
  • mustache - 去实现 Mustache 模板语言.
  • pongo2 - 类似 Django 的 Go 模板引擎.
  • quicktemplate - 快速、强大且易于使用的模板引擎. 将模板转换为 Go 代码,然后编译它.
  • raymond - 在 Go 中完成车把实现.
  • Razor - Golang 的 Razor 视图引擎.
  • Soy - Go 的闭合模板(又名 Soy 模板),遵循 official spec.
  • sprig - Go 模板的有用模板函数.
  • velvet - 在 Go 中完成车把实现.

Testing

用于测试代码库和生成测试数据的库.

  • 测试框架

    • apitest - 简单且可扩展的行为测试库,用于基于 REST 的服务或 HTTP 处理程序,支持模拟外部 http 调用和序列图的呈现.
    • assert - 与本地 go 测试一起使用的基本断言库,带有用于自定义断言的构建块.
    • badio - Go 的 testing/iotest 包的扩展.
    • baloo - 富有表现力和多功能的端到端 HTTP API 测试变得简单.
    • biff - 分叉测试框架,BDD 兼容.
    • charlatan - 为测试生成假接口实现的工具.
    • commander - 用于在 windows、linux 和 osx 上测试 cli 应用程序的工具.
    • covergates - 自托管代码覆盖率报告审查和管理服务.
    • cupaloy - 用于测试框架的简单快照测试插件.
    • dbcleaner - 出于测试目的清理数据库,灵感来自 Ruby 中的“database_cleaner”.
    • dsunit - SQL、NoSQL、结构化文件的数据存储测试.
    • embedded-postgres - 在 Linux、OSX 或 Windows 上本地运行真正的 Postgres 数据库,作为另一个 Go 应用程序或测试的一部分.
    • endly - 声明式端到端功能测试.
    • flute - HTTP 客户端测试框架.
    • frisby - REST API 测试框架.
    • ginkgo - Go 的 BDD 测试框架.
    • gnomock - 使用在 Docker 中运行的真实依赖项(数据库、缓存,甚至 Kubernetes 或 AWS)进行集成测试,无需模拟.
    • go-carpet - 在终端中查看测试覆盖率的工具.
    • go-cmp - 用于在测试中比较 Go 值的包.
    • go-hit - Hit 是一个用 golang 编写的 http 集成测试框架.
    • go-mutesting - Go 源代码的突变测试.
    • go-testdeep - 极其灵活的 golang 深度对比,扩展了 go 测试包.
    • go-vcr - 记录和重放您的 HTTP 交互,以进行快速、确定性和准确的测试.
    • goblin - 摩卡之类的 Go 测试框架.
    • goc - Goc 是 Go 编程语言的综合覆盖测试系统.
    • gocheck - 替代 gotest 的更高级的测试框架.
    • GoConvey - 带有 Web UI 和实时重新加载的 BDD 风格的框架.
    • gocrest - 用于 Go 断言的可组合的类似 hamcrest 的匹配器.
    • godog - Cucumber 或 Behat 类似于 Go 的 BDD 框架.
    • gofight - Golang 路由器框架的 API 处理程序测试.
    • gogiven - 用于 Go 的类似 YATSPEC 的 BDD 测试框架.
    • gomatch - 为根据模式测试 JSON 而创建的库.
    • gomega - Rspec 像匹配器/断言库.
    • GoSpec - 用于 Go 编程语言的 BDD 风格的测试框架.
    • gospecify - 这提供了用于测试 Go 代码的 BDD 语法. 任何使用过 rspec 等库的人都应该熟悉它.
    • gosuite - 通过利用 Go1.7 的子测试,将带有设置/拆卸工具的轻量级测试套件带入“测试”.
    • gotest.tools - 一组用于扩充 go testing 包并支持通用模式的包.
    • Hamcrest - 声明性 Matcher 对象的流畅框架,当应用于输入值时,会产生自我描述的结果.
    • httpexpect - 简洁、声明式且易于使用的端到端 HTTP 和 REST API 测试.
    • jsonassert - 用于验证您的 JSON 有效负载是否正确序列化的包.
    • restit - Go 微框架来帮助编写 RESTful API 集成测试.
    • schema - 对请求和响应中使用的 JSON 模式进行快速简便的表达式匹配.
    • stop-and-go - 并发测试助手.
    • testcase - 行为驱动开发的惯用测试框架.
    • testfixtures - Rails 类似测试装置的助手,用于测试数据库应用程序.
    • Testify - 标准 go 测试包的神圣扩展.
    • testmd - 将 Markdown 片段转换为可测试的 Go 代码.
    • testsql - 测试前从SQL文件生成测试数据,完成后清除.
    • trial - 无需引入太多样板即可快速轻松地扩展断言.
    • Tt - 简单多彩的测试工具.
    • wstest - 用于单元测试 websocket http.Handler 的 Websocket 客户端.
  • 嘲笑

    • counterfeiter - 用于生成自包含模拟对象的工具.
    • go-localstack - 在 AWS 测试中使用 localstack 的工具.
    • go-sqlmock - 用于测试数据库交互的模拟 SQL 驱动程序.
    • go-txdb - 基于单一事务的数据库驱动程序,主要用于测试目的.
    • gock - 多功能 HTTP 模拟变得容易.
    • gomock - Go 编程语言的模拟框架.
    • govcr - Golang 的 HTTP 模拟:记录和重放 HTTP 交互以进行离线测试.
    • hoverfly - HTTP(S) 代理,用于使用可扩展的中间件和易于使用的 CLI 记录和模拟 REST/SOAP API.
    • httpmock - 轻松模拟来自外部资源的 HTTP 响应.
    • minimock - Go 接口的模拟生成器.
    • mockhttp - Go http.ResponseWriter 的模拟对象.
    • mockit - 允许函数和方法轻松模拟,无需定义新类型; 它类似于 Java 的 Mockito.
    • timex - 原生time 包的测试友好替代品.
  • 模糊测试和增量调试/减少/收缩.

    • go-fuzz - 随机测试系统.
    • gofuzz - 使用随机值填充 go 对象的库.
    • Tavor - 通用模糊测试和增量调试框架.
  • Selenium 和浏览器控制工具.

    • cdp - Chrome 调试协议的类型安全绑定,可与浏览器或其他实现它的调试目标一起使用.
    • chromedp - 一种驱动/测试 Chrome、Safari、Edge、Android Webviews 和其他支持 Chrome 调试协议的浏览器的方法.
    • ggr - 一个轻量级服务器,将 Selenium WebDriver 请求路由和代理到多个 Selenium 集线器.
    • playwright-go - 浏览器自动化库,使用单个 API 控制 Chromium、Firefox 和 WebKit.
    • rod - 一个 Devtools 驱动程序,使网络自动化和抓取变得容易.
    • selenoid - 在容器内启动浏览器的替代 Selenium 集线器服务器.
  • 失败注入

Text Processing

用于解析和操作文本的库.

  • 特定格式
    • align - 对齐文本的通用应用程序.
    • allot - CLI 工具和机器人的占位符和通配符文本解析.
    • bbConvert - 将 bbCode 转换为 HTML,允许您添加对自定义 bbCode 标签的支持.
    • blackfriday - Go 中的 Markdown 处理器.
    • bluemonday - HTML 消毒剂.
    • codetree - 解析缩进的代码(python、pixy、scarlet 等)并返回一个树结构.
    • colly - 快速优雅的 Gophers 抓取框架.
    • commonregex - Go 常用正则表达式的集合.
    • dataflowkit - 网页抓取框架将网站转换为结构化数据.
    • did - Go 中的 DID(去中心化标识符)解析器和 Stringer.
    • doi - Go 中的文档对象标识符 (doi) 解析器.
    • editorconfig-core-go - 用于 Go 的 Editorconfig 文件解析器和操纵器.
    • enca - 最小的 cgo 绑定 libenca.
    • encdec - 包提供了编码器和解码器的通用接口sa.
    • genex - 将正则表达式计算并扩展为所有匹配的字符串.
    • github_flavored_markdown - GitHub Flavored Markdown 渲染器(使用 blackfriday),带有围栏代码块突出显示,可点击的标题锚链接.
    • go-fixedwidth - 固定宽度的文本格式(带反射的编码器/解码器).
    • go-humanize - 将时间、数字和内存大小格式化为人类可读的格式.
    • go-nmea - Go 语言的 NMEA 解析器库.
    • go-output-format - 在命令行应用程序中将 go 结构输出为多种格式(YAML/JSON/等).
    • go-runewidth - 获得固定宽度的字符或字符串的函数.
    • go-slugify - 使用多种语言支持制作漂亮的蛞蝓.
    • go-toml - 带有查询支持和方便的 cli 工具的 TOML 格式的 Go 库.
    • go-vcard - 解析和格式化电子名片.
    • go-wildcard - Simple and lightweight wildcard pattern matching.
    • go-zero-width - Go 的零宽度字符检测和删除.
    • gofeed - 在 Go 中解析 RSS 和 Atom 提要.
    • gographviz - 解析 Graphviz DOT 语言.
    • gommon/bytes - 将字节格式化为字符串.
    • gonameparts - 将人名解析为单独的姓名部分.
    • goq - 使用带有 jQ​​uery 语法的结构标记对 HTML 进行声明式解组(使用 GoQuery).
    • GoQuery - GoQuery 为 Go 语言带来了类似于 jQuery 的语法和一组功能.
    • goregen - 用于从正则表达式生成随机字符串的库.
    • goribot - 一个简单的 golang 蜘蛛/抓取框架,用 3 行代码构建一个蜘蛛.
    • gotext - 用于 Go 的 GNU gettext 实用程序.
    • guesslanguage - 确定 unicode 文本的自然语言的函数.
    • html-to-markdown - 将 HTML 转换为 Markdown. 甚至适用于整个网站,并且可以通过规则进行扩展.
    • htmlquery - 用于 HTML 的 XPath 查询包,允许您通过 XPath 表达式从 HTML 文档中提取数据或评估.
    • inject - 包注入提供了一个基于反射的注入器.
    • ltsv - 高性能 LTSV (Labeled Tab Separated Value) Go 的阅读器.
    • mxj - 将 XML 编码/解码为 JSON 或 map[string]interface{}; 使用点符号路径和通配符提取值. 替换 x2j 和 j2x 包.
    • normalize - 清理、规范化和比较模糊文本.
    • omniparser - 一个多功能的 ETL 库,它以流式方式解析文本输入 (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc),并使用数据驱动模式将数据转换为 JSON 输出.
    • pagser - Pagser 是一个简单的、可扩展的、可配置的解析和反序列化 html 页面,基于 goquery 和 golang 爬虫的结构标签进行结构化.
    • podcast - Golang 兼容 iTunes 和 RSS 2.0 Podcast Generator
    • sdp - SDP:会话描述协议 [RFC 4566].
    • sh - Shell 解析器和格式化程序.
    • slug - 支持多种语言的 URL 友好 slugify.
    • Slugify - Go 处理字符串的 slugify 应用程序.
    • syndfeed - Atom 1.0 和 RSS 2.0 的联合提要.
    • toml - TOML 配置格式(带反射的编码器/解码器).
  • 公用事业
    • gofuckyourself - 用于 Go 的基于消毒的脏话过滤器.
    • gotabulate - 使用 Go 轻松漂亮地打印表格数据.
    • kace - 涵盖常见首字母缩写的常见案例转换.
    • parseargs-go - 理解引号和反斜杠的字符串参数解析器.
    • parth - URL 路径分段解析.
    • radix - 快速字符串排序算法.
    • regroup - 使用结构标记和自动解析将名为组的正则表达式匹配到 go 结构中.
    • Tagify - 从给定的来源产生一组标签.
    • textwrap - 从 Python 实现 textwrap 模块.
    • TySug - 关于键盘布局的替代建议.
    • xj2go - 将 xml 或 json 转换为结构体.
    • xurls - 从文本中提取网址.

Third-party APIs

用于访问第三方 API 的库.

Utilities

让您的生活更轻松的通用实用程序和工具.

  • apm - 带有 HTTP API 的 Golang 应用程序的进程管理器.
  • backscanner - 类似于 bufio.Scanner 的扫描仪,但它以相反的顺序读取和返回行,从给定位置开始并向后返回.
  • beyond - 带你进入 AOP 世界的 Go 工具!
  • blank - 验证或删除字符串中的空格和空格.
  • bleep - 在 Go 中对任何一组 OS 信号执行任意数量的操作.
  • boilr - 用于从样板模板创建项目的极快 CLI 工具.
  • changie - 用于准备具有大量自定义选项的发布的自动化变更日志工具.
  • chyle - 使用具有多种配置可能性的 git 存储库的变更日志生成器.
  • circuit - 断路器模式的高效且功能完整的 Hystrix like Go 实现.
  • circuitbreaker - Go 中的断路器.
  • clipboard - Go 中的跨平台剪贴板包.
  • clockwork - 一个简单的 golang 假时钟.
  • cmd - 用于在 osx、windows 和 linux 上执行 shell 命令的库.
  • command - 带有线程安全串行和并行调度程序的 Go 命令模式.
  • copy - 用于快速复制不同类型结构的包.
  • copy-pasta - 通用多工作站剪贴板,使用类似 S3 的后端进行存储.
  • countries - 全面实施 ISO-3166-1、ISO-4217、ITU-T E.164、Unicode CLDR 和 IANA ccTLD 标准.
  • create-go-app - 一个强大的 CLI,用于通过运行一个命令创建一个新的生产就绪项目,后端(Golang)、前端(JavaScript、TypeScript)和部署自动化(Ansible、Docker).
  • ctop - Top-like 容器指标的接口(例如 htop).
  • ctxutil - 上下文的实用函数集合.
  • dbt - 用于从中央、可信存储库运行自更新签名二进制文件的框架.
  • Death - 使用信号管理 go 应用程序关闭.
  • Deepcopier - Go 的简单结构复制.
  • delve - 去调试器.
  • dlog - 编译时控制的记录器使您的版本更小,而无需删除调试调用.
  • equalizer - Go 的配额管理器和速率限制器集合.
  • ergo - 在不同端口上运行的多个本地服务的管理变得容易.
  • evaluator - 基于 s 表达式动态评估表达式. 它简单且易于扩展.
  • filetype - 小包来推断检查幻数签名的文件类型.
  • filler - 使用“fill”标签填充结构的小实用程序.
  • filter - 提供 Go 数据的过滤、清理和转换.
  • fzf - 用 Go 编写的命令行模糊查找器.
  • generate - 在指定的路径或环境变量上递归运行 go generate 并且可以通过正则表达式过滤.
  • ghokin - 并行格式化程序,没有小黄瓜的外部依赖(黄瓜,behat ...).
  • git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪.
  • go-astitodo - 解析 GO 代码中的 TODO.
  • go-bind-plugin - go:generate 用于包装由 golang 插件导出的符号的工具(仅限 1.8).
  • go-bsdiff - Pure Go bsdiff 和 bspatch 库和 CLI 工具.
  • go-clip - 适用于 Mac 的简约剪贴板管理器.
  • go-convert - 包 go-convert 使您能够将值转换为另一种类型.
  • go-countries - 轻量级查找 ISO-3166 代码.
  • go-dry - 用于 Go 的 DRY(不要重复自己)包.
  • go-funk - 现代 Go 实用程序库,提供帮助程序(映射、查找、包含、过滤、块、反向等).
  • go-health - 健康包简化了向服务添加健康检查的方式.
  • go-httpheader - 用于将结构编码到 Header 字段的库.
  • go-lock - go-lock 是一个锁库,实现了读写互斥锁和读写 trylock 无饥饿.
  • go-problemdetails - 用于处理问题详细信息的包.
  • go-rate - Go 的限时限速器.
  • go-safe - 恐慌安全沙箱.
  • go-sitemap-generator - 用 Go 编写的 XML 站点地图生成器.
  • go-trigger - Go-lang 全局事件触发器,使用 id 注册事件并从项目的任何位置触发事件.
  • go-type - 为 ISO-4217、ISO-3166 和其他类型的存储/验证和传输提供 Go 类型的库.
  • goback - 去简单的指数退避包.
  • goctx - 以高性能获取您的上下文价值.
  • godaemon - 编写守护进程的实用程序.
  • godropbox - 用于从 Dropbox 编写 Go 服务/应用程序的通用库.
  • gohper - 各种工具/模块有助于开发.
  • golarm - 带有系统事件的火警警报.
  • golog - 用于时间跟踪您的任务的简单轻量级 CLI 工具.
  • gopencils - 小而简单的包,可轻松使用 REST API.
  • goplaceholder - 一个小的 golang lib 来生成占位符图像.
  • goreadability - 使用 Facebook Open Graph 和 arc90 的可读性的网页摘要提取器.
  • goreleaser - 尽可能快速、轻松地交付 Go 二进制文件.
  • goreporter - 进行静态分析、单元测试、代码审查和生成代码质量报告的 Golang 工具.
  • goseaweedfs - 具有几乎全部功能的 SeaweedFS 客户端库.
  • gostrutils - 字符串操作和转换函数的集合.
  • gotenv - 从 Go 中的 .env 或任何 io.Reader 加载环境变量.
  • goval - 在 Go 中评估任意表达式.
  • gpath - 使用 Go 的反射表达式简化访问结构字段的库.
  • gubrak - 带有语法糖的 Golang 实用程序库. 这就像 lodash,但对于 golang.
  • handy - 许多实用程序和助手,如字符串处理程序/格式化程序和验证程序.
  • hostctl - 使用简单命令管理 /etc/hosts 的 CLI 工具.
  • htcat - 并行和流水线式 HTTP GET 实用程序.
  • hub - 用附加功能包装 git 命令,以便从终端与 github 交互.
  • hystrix-go - 实现程序员定义的回退(又名断路器)的 Hystrix 模式.
  • immortal - *nix 跨平台(与操作系统无关)主管.
  • intrinsic - 无需编写任何汇编代码即可使用 x86 SIMD.
  • jsend - 用 Go 编写的 JSend 实现.
  • jump - Jump 通过学习您的习惯帮助您更快地导航.
  • koazee - 受懒惰评估和函数式编程启发的库,可以消除使用数组的麻烦.
  • lets-go - 为云原生 REST API 开发提供通用实用程序的 Go 模块. 还包含 AWS 特定的实用程序.
  • limiters - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks.
  • lrserver - 用于 Go 的 LiveReload 服务器.
  • mc - Minio Client 提供最少的工具来处理兼容 Amazon S3 的云存储和文件系统.
  • mergo - 在 Golang 中合并结构和映射的助手. 用于配置默认值,避免混乱的 if 语句.
  • mimemagic - Pure Go ultra performant MIME sniffing library/utility.
  • mimesniffer - 用于 Go 的 MIME 类型嗅探器.
  • mimetype - 基于幻数的 MIME 类型检测包.
  • minify - 用于 HTML、CSS、JS、XML、JSON 和 SVG 文件格式的快速压缩器.
  • minquery - MongoDB / mgo.v2 查询,支持高效的分页(光标继续在我们离开的地方列出文档).
  • moldova - 基于输入模板生成随机数据的实用程序.
  • mole - cli 应用程序可轻松创建 ssh 隧道.
  • mongo-go-pagination - 官方 mongodb/mongo-go-driver 包的 Mongodb 分页,支持普通查询和聚合管道.
  • mssqlx - 数据库客户端库,任何主从代理,主主结构. 考虑到轻量级和自动平衡.
  • multitick - 用于对齐代码的多路复用器.
  • myhttp - 使用超时支持发出 HTTP GET 请求的简单 API.
  • netbug - 轻松远程分析您的服务.
  • nfdump - 读取 nfdump 网络流文件.
  • nostromo - 用于构建强大别名的 CLI.
  • okrun - go run error steamroller.
  • olaf - 在 Go 中实现的 Twitter 雪花.
  • onecache - 支持多个后端存储(Redis、Memcached、文件系统等)的缓存库.
  • panicparse - 将类似的 goroutine 分组并为堆栈转储着色.
  • pattern-match - 模式匹配库.
  • peco - 简单的交互式过滤工具.
  • pgo - PHP 社区的便捷功能.
  • pm - 带有 HTTP API 的进程(即 goroutine)管理器.
  • ptr - 提供简化从基本类型常量创建指针的函数的包.
  • rclient - 用于 REST API 的可读、灵活、易于使用的客户端.
  • repeat - 执行不同的退避策略,对重试操作和心跳很有用.
  • request - Go HTTP Requests for Humans™.
  • rerate - 用于 Go 的基于 Redis 的速率计数器和速率限制器.
  • rerun - 在源更改时重新编译和重新运行 go 应用程序.
  • rest-go - 一个提供了许多有用的方法来使用 rest api 的包.
  • retry - 最先进的功能机制,可重复执行操作直至成功.
  • retry - 一个简单但高度可配置的 Go 重试包.
  • retry - 简单易用的 Go 重试机制包.
  • retry - 一个非常简单的库,可确保您完成工作.
  • retry-go - 重试让 golang 变得简单易行.
  • robustly - 弹性运行功能,捕捉并重新启动恐慌.
  • scan - 将 golang sql.Rows 直接扫描到结构、切片或原始类型.
  • scany - 用于将数据库中的数据扫描到 Go 结构等的库.
  • serve - 任何您需要的静态 http 服务器.
  • shutdown - 用于os.Signal 处理的应用程序关闭挂钩.
  • silk - 阅读 Silk netflow 文件.
  • slice - 常见 Go 切片操作的类型安全函数.
  • sliceconv - 原始类型之间的切片转换.
  • slicer - 使切片的工作更容易.
  • sorty - 快速并发/并行排序.
  • spinner - 转到包以轻松提供带有选项的终端微调器.
  • sqlx - 在优秀的内置数据库/sql 包之上提供了一组扩展.
  • statiks - 快速、零配置、静态 HTTP 文件服务器.
  • Storm - 简单而强大的 BoltDB 工具包.
  • structs - 实现简单的函数来操作结构.
  • tik - 简单易用的 Go 计时轮包.
  • tome - Tome 旨在对简单的 RESTful API 进行分页.
  • toolbox - 切片、映射、多映射、结构、函数、数据转换实用程序. 服务路由器、宏评估器、标记器.
  • ugo - ugo 是 Go 语法简洁的切片工具箱.
  • UNIS - Go 中字符串实用程序的通用架构™.
  • usql - usql 是 SQL 数据库的通用命令行界面.
  • util - 有用的实用功能的集合. (字符串,并发,操作,...).
  • wuzz - 用于 HTTP 检查的交互式 cli 工具.
  • xferspdy - Xferspdy 在 golang 中提供二进制差异和补丁库.

UUID

用于处理 UUID 的库.

  • goflake - 用于分布式系统的小型、可扩展和无服务器的唯一 ID 生成器. 灵感来自 Twitter 雪花.
  • goid - 生成和解析符合 RFC4122 的 V4 UUID.
  • gouid - 只需一次分配即可生成加密安全的随机字符串 ID.
  • nanoid - 一个小巧高效的 Go 唯一字符串 ID 生成器.
  • sno - 带有嵌入式元数据的紧凑、可排序且快速的唯一 ID.
  • ulid - 实现 ULID(通用唯一字典可排序标识符).
  • uniq - 没有麻烦的安全,快速的唯一标识符与命令.
  • uuid - 使用快速或加密质量的随机节点标识符生成、编码和解码 UUID v1.
  • uuid - 通用唯一标识符 (UUID) 的实现. 支持 UUID 的创建和解析. 积极维护 satori uuid 的分支.
  • uuid - 基于 RFC 4122 和 DCE 1.1:身份验证和安全服务的 UUID 包.
  • wuid - 极快的唯一编号生成器,比 UUID 快 10-135 倍.

Validation

用于验证的库.

  • checkdigit - 提供校验位算法(Luhn、Verhoeff、Damm)和计算器(ISBN、EAN、JAN、UPC等).
  • gody - :balloon:Go 的轻量级结构验证器.
  • govalid - 快速、基于标签的结构验证.
  • govalidator - 字符串、数字、切片和结构的验证器和消毒器.
  • govalidator - 使用简单的规则验证 Golang 请求数据. 受到 Laravel 请求验证的高度启发.
  • jio - jio 是一个 json 模式验证器,类似于 joi.
  • ozzo-validation - 支持各种数据类型(结构、字符串、映射、切片等)的验证,使用在通常的代码构造而不是结构标记中指定的可配置和可扩展的验证规则.
  • terraform-validator - Terraform 的规范和约定验证器.
  • validate - 用于数据验证和过滤的 Go 包. 支持验证 Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) 数据和更多功能.
  • validate - 这个包提供了一个为 Go 应用程序编写验证的框架.
  • validator - Go Struct 和 Field 验证,包括 Cross Field、Cross Struct、Map、Slice 和 Array 潜水.

Version Control

用于版本控制的库.

  • gh - 用于 GitHub Webhooks 的可编写脚本的服务器和 net/http 中间件.
  • git2go - 去绑定 libgit2.
  • go-git - 纯 Go 中高度可扩展的 Git 实现.
  • go-vcs - 在 Go 中操作和检查 VCS 存储库.
  • hercules - 从 Git 存储库历史中获得高级见解.
  • hgo - Hgo 是 Go 包的集合,提供对本地 Mercurial 存储库的读取访问权限.

Video

用于处理视频的库.

  • gmf - 为 * 库的 FFmpeg 绑定.
  • go-astisub - 在 GO 中处理字幕(.srt、.stl、.ttml、.webvtt、.ssa/.ass、teletext、.smi 等).
  • go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO.
  • go-m3u8 - Apple m3u8 播放列表的解析器和生成器库.
  • go-mpd - MPEG-DASH 清单文件的解析器和生成器库.
  • goav - FFmpeg 的综合 Go 绑定.
  • gortsplib - Pure Go RTSP 服务器和客户端库.
  • gst - 去绑定 GStreamer.
  • libgosubs - go 的字幕格式支持. 支持 .srt、.ttml 和 .ass.
  • libvlc-go - 绑定 libvlc 2.X/3.X/4.X(由 VLC 媒体播放器使用).
  • m3u8 - Apple HLS 的 M3U8 播放列表的解析器和生成器库.
  • v4l - 用 Go 编写的 Linux 视频捕获库.

Web Frameworks

全栈网络框架.

  • aah - 用于 Go 的可扩展、高性能、快速开发的 Web 框架.
  • Aero - Go 的高性能 Web 框架,在 Lighthouse 中获得最高分.
  • Air - 一个完美完善的 Go 网络框架.
  • appy - 一个固执的高效 Web 框架,有助于更轻松地扩展业务.
  • Banjo - 非常简单和快速的 Go 网络框架.
  • Beego - beego 是用于 Go 编程语言的开源、高性能 Web 框架.
  • Buffalo - Bringing the productivity of Rails to Go!
  • Confetti Framework - Confetti 是一个 Go 网络应用程序框架,具有富有表现力的优雅语法. Confetti 结合了 Laravel 的优雅和 Go 的简单性.
  • Echo - 高性能、极简的 Go 网络框架.
  • Fiber - 基于 Fasthttp 构建的 Express.js 启发的 Web 框架.
  • Fireball - 更“自然”感觉的网络框架.
  • Flamingo - 可插拔网络项目的框架. 包括模块的概念和为 DI、Configareas、i18n、模板引擎、graphql、可观察性、安全性、事件、路由和反向路由等提供功能.
  • Flamingo Commerce - 使用干净的架构(如 DDD、端口和适配器)提供电子商务功能,您可以使用这些功能构建灵活的电子商务应用程序.
  • Gearbox - 用 Go 编写的 Web 框架,专注于高性能和内存优化.
  • Gin - Gin 是一个用 Go 编写的 Web 框架! 它具有类似马提尼酒的 API,具有更好的性能,速度提高多达 40 倍. 如果您需要性能和良好的生产力.
  • Ginrpc - gin参数自动绑定工具,gin rpc工具.
  • Gizmo - 纽约时报使用的微服务工具包.
  • go-json-rest - 设置 RESTful JSON API 的快速简便方法.
  • go-rest - Go 的小而邪恶的 REST 框架.
  • Goa - Goa 提供了一种在 Go 中开发远程 API 和微服务的整体方法.
  • goa - goa就像golang的koajs一样,是一个灵活、轻量、高性能、可扩展的基于中间件的Web框架.
  • Golax - 非 Sinatra 快速 HTTP 框架,支持 Google 自定义方法、深度拦截器、递归等.
  • Golf - Golf 是一个快速、简单和轻量级的 Go 微网络框架. 它具有强大的功能,除了 Go 标准库之外没有任何依赖项.
  • Gondola - 用于编写更快站点的 Web 框架,更快.
  • gongular - 具有输入映射/验证和 (DI) 依赖注入的 Fast Go Web 框架.
  • GoTuna - 带有复用路由器、中间件、会话、模板、嵌入视图和静态文件的 Go 的简约 Web 框架.
  • goweb - 具有路由、websockets、日志记录、中间件、静态文件服务器(可选 gzip)和自动 TLS 的 Web 框架.
  • Goyave - 功能完备的 REST API 框架,旨在实现干净的代码和快速开发,具有强大的内置功能.
  • hiboot - hiboot 是一个高性能的 web 应用程序框架,具有自动配置和依赖注入支持.
  • Macaron - Macaron 是 Go 中一个高效且模块化的设计 Web 框架.
  • mango - Mango 是 Go 的模块化 Web 应用程序框架,受 Rack 和 PEP333 的启发.
  • Microservice - 用于创建微服务的框架,用 Golang 编写.
  • neo - Neo 是最小且快速的 Go Web 框架,具有极其简单的 API.
  • patron - Patron 是一个遵循最佳云实践的微服务框架,专注于生产力.
  • Resoursea - 用于快速编写基于资源的服务的 REST 框架.
  • REST Layer - 在数据库之上构建 REST/GraphQL API 的框架,主要通过代码进行配置.
  • Revel - Go 语言的高效 Web 框架.
  • rex - Rex 是一个基于 gorilla/mux 的模块化开发库,完全兼容net/http.
  • rux - 用于构建 golang HTTP 应用程序的简单快速的 Web 框架.
  • tango - 用于 Go 的微型和可插拔 Web 框架.
  • tigertonic - 受 Dropwizard 启发,用于构建 JSON Web 服务的 Go 框架.
  • uAdmin - 受 Django 启发的功能齐全的 Golang 网络框架.
  • utron - Go(Golang) 的轻量级 MVC 框架.
  • vox - 人类的 golang web 框架,深受 Koa 启发.
  • WebGo - 构建网络应用程序的微框架; 带有处理程序链接、中间件和上下文注入. 使用符合标准库的 HTTP 处理程序(即 http.HandlerFunc).
  • YARF - 快速微框架,旨在以快速简单的方式构建 REST API 和 Web 服务.

Middlewares

Actual middlewares

  • client-timing - 用于服务器计时标头的 HTTP 客户端.
  • CORS - 轻松地将 CORS 功能添加到您的 API.
  • formjson - 将 JSON 输入作为标准表单 POST 透明处理.
  • go-fault - Go 的故障注入中间件.
  • go-server-timing - 添加/解析服务器计时标头.
  • Limiter - Go 的死简单速率限制中间件.
  • ln-paywall - Go 中间件,用于通过闪电网络(比特币)基于每个请求将 API 货币化.
  • Tollbooth - 速率限制 HTTP 请求处理程序.
  • XFF - 处理 X-Forwarded-For 标头和好友.

Libraries for creating HTTP middlewares

  • alice - Go 的无痛中间件链.
  • catena - http.Handler 包装器连接(与“链”相同的 API).
  • chain - 处理程序包装器链接范围数据(基于网络/上下文的“中间件”).
  • go-wrap - 用于 net/http 的小型中间件包.
  • gores - 处理 HTML、JSON、XML 等响应的 Go 包. 对 RESTful API 很有用.
  • interpose - golang 的极简 net/http 中间件.
  • mediary - 将拦截器添加到 http.Client 以允许转储/整形/跟踪/...请求/响应.
  • muxchain - 用于 net/http 的轻量级中间件.
  • negroni - Golang 的惯用 HTTP 中间件.
  • render - 用于轻松呈现 JSON、XML 和 HTML 模板响应的 Go 包.
  • renderer - 用于 Go 的简单、轻量级和更快的响应(JSON、JSONP、XML、YAML、HTML、文件)渲染包.
  • rye - 支持 JWT、CORS、Statsd 和 Go 1.7 上下文的微型 Go 中间件库(带有罐装中间件).
  • stats - Go 中间件,用于存储有关您的 Web 应用程序的各种信息.

Routers

  • alien - 来自外太空的轻量级快速 http 路由器.
  • bellt - 一个简单的 Go HTTP 路由器.
  • Bone - 闪电般快速的 HTTP 多路复用器.
  • Bxog - 用于 Go 的简单快速的 HTTP 路由器. 它适用于不同难度、长度和嵌套的路线. 他知道如何根据接收到的参数创建 URL.
  • chi - 建立在网络/上下文上的小型、快速和富有表现力的 HTTP 路由器.
  • fasthttprouter - 从httprouter分叉的高性能路由器. 第一个适合“fasthttp”的路由器.
  • FastRouter - 用 Go 编写的快速、灵活的 HTTP 路由器.
  • gocraft/web - Go 中的 Mux 和中间件包.
  • Goji - Goji 是一个简约而灵活的 HTTP 请求多路复用器,支持 net/context.
  • goroute - 简单而强大的 HTTP 请求多路复用器.
  • GoRouter - GoRouter 是一个服务器/API 微框架、HTTP 请求路由器、多路复用器、多路复用器,为请求路由器提供支持 net/context 的中间件.
  • gowww/router - 闪电般快速的 HTTP 路由器完全兼容 net/http.Handler 接口.
  • httprouter - 高性能路由器. 使用这个和标准的 http 处理程序来形成一个非常高性能的 web 框架.
  • httptreemux - 用于 Go 的高速、灵活的基于树的 HTTP 路由器. 灵感来自 httprouter.
  • lars - 是用于创建可定制框架的轻量级、快速和可扩展的 Go 零分配 HTTP 路由器.
  • mux - 强大的用于 golang 的 URL 路由器和调度程序.
  • ozzo-routing - 极快的 Go (golang) HTTP 路由器,支持正则表达式路由匹配. 完全支持构建 RESTful API.
  • pure - 是一个轻量级的 HTTP 路由器,坚持标准的“net/http”实现.
  • Siesta - 编写中间件和处理程序的可组合框架.
  • vestigo - 高性能、独立、符合 HTTP 的 URL 路由器,用于 Go Web 应用程序.
  • violetear - 去 HTTP 路由器.
  • xmux - 基于httprouternet/context 支持的高性能多路复用器.
  • xujiajun/gorouter - 用于 Go 的简单快速的 HTTP 路由器.

WebAssembly

  • dom - DOM 库.
  • go-canvas - 使用 HTML5 Canvas 的库,所有绘图都在 go 代码中.
  • tinygo - 小地方的编译器. 微控制器、WebAssembly 和命令行工具. 基于LLVM.
  • vert - Interop between Go and JS values.
  • wasmbrowsertest - 在浏览器中运行 Go WASM 测试.
  • webapi - 从 WebIDL 生成的 DOM 和 HTML 的绑定.

Windows

  • d3d9 - 转到 Direct3D9 的绑定.
  • go-ole - golang 的 Win32 OLE 实现.
  • gosddl - 从 SDDL 字符串转换为用户友好的 JSON. SDDL 由四部分组成:Owner、Primary Group、DACL、SACL.

XML

用于操作 XML 的库和工具.

  • XML-Comp - 生成文件夹、文件和标签差异的简单命令行 XML 比较器.
  • xml2map - 用 Golang 编写的 XML 到 MAP 转换器.
  • xmlwriter - 基于 libxml2 的 xmlwriter 模块的过程 XML 生成 API.
  • xpath - 用于 Go 的 XPath 包.
  • xquery - XQuery 允许您使用 XPath 表达式从 HTML/XML 文档中提取数据.
  • zek - 从 XML 生成 Go 结构.

Tools

Go 软件和插件.

Code Analysis

  • apicompat - 检查 Go 项目的最近更改是否有向后不兼容的更改.
  • dupl - Tool for code clone detection.
  • errcheck - Errcheck 是一个用于检查 Go 程序中未检查错误的程序.
  • gcvis - 实时可视化 Go 程序 GC 跟踪数据.
  • go-checkstyle - checkstyle 是一个类似于java checkstyle 的样式检查工具. 这个工具的灵感来自 java checkstyle,golint. 该样式引用了 Go Code Review Comments 中的一些要点.
  • go-cleanarch - 创建 go-cleanarch 是为了验证 Clean Architecture 规则,例如依赖规则和 Go 项目中包之间的交互.
  • go-critic - 源代码 linter 带来了当前未在其他 linter 中实现的检查.
  • go-mod-outdated - 一种查找 Go 项目过时依赖项的简单方法.
  • go-outdated - 显示过时包的控制台应用程序.
  • goast-viewer - 基于 Web 的 Golang AST 可视化工具.
  • GoCover.io - GoCover.io 提供任何 golang 包的代码覆盖即服务.
  • goimports - 自动修复(添加、删除)Go 导入的工具.
  • golang-ifood-sdk - iFood API SDK.
  • golines - 在 Go 代码中自动缩短长行的格式化程序.
  • GoLint - Golint 是 Go 源代码的 linter.
  • Golint online - 使用 golint 包在 GitHub、Bitbucket 和 Google Project Hosting 上在线查找 Go 源文件.
  • GoPlantUML - 生成文本植物类图的库和 CLI,其中包含有关结构和接口以及它们之间关系的信息.
  • goreturns - 添加零值返回语句以匹配 func 返回类型.
  • gosimple - gosimple 是 Go 源代码的 linter,专门用于简化代码.
  • gostatus - 命令行工具,显示包含 Go 包的存储库的状态.
  • lint - 作为 go test 的一部分运行 linter.
  • php-parser - 用 Go 编写的 PHP 解析器.
  • staticcheck - staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
  • tarp - tarp 在 Go 源代码中查找没有直接单元测试的函数和方法.
  • tickgit - CLI 和 go 包用于显示代码注释 TODO(以任何语言)并应用 git blame 来识别作者.
  • unconvert - 从 Go 源中删除不必要的类型转换.
  • unused - 未使用的检查 未使用的常量、变量、函数和类型的代码.
  • validate - 自动验证带有标签的结构字段.

Editor Plugins

  • Go plugin for JetBrains IDEs - JetBrains IDE 的 Go 插件.
  • go-language-server - 将 VSCode go 扩展转换为支持语言服务器协议的语言服务器的包装器.
  • go-mode - GNU/Emacs 的 Go 模式.
  • go-plus - 用于 Atom 的 Go (Golang) 包,它添加了自动完成、格式化、语法检查、Linting 和审查.
  • gocode - Go 编程语言的自动完成守护进程.
  • goimports-reviser - 用于导入的格式化工具.
  • goprofiling - 此扩展为 VS Code 添加了对 Go 语言的基准分析支持.
  • GoSublime - 文本编辑器 SublimeText 3 的 Golang 插件集合,提供代码完成和其他类似 IDE 的功能.
  • gounit-vim - Vim 插件,用于根据函数或方法的签名生成 Go 测试.
  • theia-go-extension - Theia IDE 的 Go 语言支持.
  • vim-compiler-go - Vim 插件在保存时突出显示语法错误.
  • vim-go - Vim 的 Go 开发插件.
  • vscode-go - Visual Studio Code (VS Code) 的扩展,提供对 Go 语言的支持.
  • Watch - 在文件更改的 acme win 中运行命令.

Go Generate Tools

  • generic - Go 的灵活数据类型.
  • genny - 优雅的 Go 泛型.
  • gocontracts - 通过将代码与文档同步,将合同设计引入 Go.
  • gonerics - Go 中的惯用泛型.
  • gotests - 从源代码生成 Go 测试.
  • gounit - 使用您自己的模板生成 Go 测试.
  • hasgo - 为您的切片生成受 Haskell 启发的函数.
  • re2dfa - 将正则表达式转换为有限状态机并输出 Go 源代码.
  • TOML-to-Go - 在浏览器中立即将 TOML 翻译成 Go 类型.
  • xgen - XSD(XML 模式定义)解析器和 Go/C/Java/Rust/TypeScript 代码生成器.

Go Tools

  • colorgo - Wrapper around go command for colorized go build output.
  • depth - 通过分析导入来可视化任何包的依赖树.
  • docs - 自动为 GO 项目生成 RESTful API 文档 - 与开放 API 规范标准一致.
  • generator-go-lang - 一种 Yeoman 生成器来启动新的 Go 项目.
  • go-callvis - 使用点格式可视化 Go 程序的调用图.
  • go-james - Go 项目骨架创建者,无需手动设置即可构建和测试您的项目.
  • go-pkg-complete - go 和 wgo 的 Bash 完成.
  • go-swagger - 用于 Go 的 Swagger 2.0 实现. Swagger 是 RESTful API 的简单而强大的表示.
  • godbg - 实现 Rusts dbg! 宏,以便在开发过程中快速轻松地进行调试.
  • gomodrun - 执行和缓存包含在 go.mod 文件中的二进制文件的 Go 工具.
  • gothanks - GoThanks 会自动为您的 go.mod github 依赖项加星标,以这种方式向他们的维护者发送一些爱.
  • igo - 一个 igo to go 转译器(Go 语言的新语言特性!)
  • OctoLinker - 使用 GitHub 的 OctoLinker 浏览器扩展有效地浏览 go 文件.
  • richgo - 用文本装饰丰富 go test 输出.
  • roumon - 通过命令行界面监控所有活动 goroutine 的当前状态.
  • rts - RTS:对结构的响应. 从服务器响应生成 Go 结构.
  • typex - 检查 Go 类型及其传递依赖项,或者将结果导出为 TypeScript 值对象(或类型)声明.

Software Packages

用 Go 编写的软件.

DevOps Tools

  • abbreviate - abbreviate 是一种将长字符串转换为具有可配置分隔符的较短字符串的工具,例如将分支名称嵌入到部署堆栈 ID 中.
  • aptly - aptly 是一个 Debian 存储库管理工具.
  • aurora - 跨平台的基于 Web 的 Beanstalkd 队列服务器控制台.
  • awsenv - 为配置文件加载 Amazon (AWS) 环境变量的小型二进制文件.
  • Blast - 用于 API 负载测试和批处理作业的简单工具.
  • bombardier - 快速的跨平台 HTTP 基准测试工具.
  • bosun - Time Series Alerting Framework.
  • cassowary - 用 Go 编写的现代跨平台 HTTP 负载测试工具.
  • DepCharge - 帮助协调大型项目中跨多个依赖项的命令执行.
  • docker-go-mingw - Docker 镜像,用于使用 MinGW 工具链为 Windows 构建 Go 二进制文件.
  • Dockerfile-Generator - 使用各种输入通道生成有效 Dockerfile 的 go 库和可执行文件.
  • dogo - 监控源文件的变化并自动编译运行(重启).
  • drone-jenkins - 使用二进制、docker 或 Drone CI 触发下游 Jenkins 作业.
  • drone-scp - 使用二进制文件、docker 或 Drone CI 通过 SSH 复制文件和工件.
  • Dropship - 通过 CDN 部署代码的工具.
  • easyssh-proxy - Golang 包,可通过 SSH 和 SCP 通过ProxyCommand 轻松远程执行.
  • fac - 用于修复 git 合并冲突的命令行用户界面.
  • gaia - 使用任何编程语言构建强大的管道.
  • ghorg - 快速将整个 org/users 存储库克隆到一个目录中 - 支持 GitHub、GitLab、Gitea 和 Bitbucket.
  • Gitea - Gogs 的叉子,完全由社区驱动.
  • gitea-github-migrator - 将您所有的 GitHub 存储库、问题、里程碑和标签迁移到您的 Gitea 实例.
  • go-furnace - 用 Go 编写的托管解决方案. 在 AWS、GCP 或 DigitalOcean 上轻松部署您的应用程序.
  • go-selfupdate - 使您的 Go 应用程序能够自我更新.
  • gobrew - gobrew 让您可以轻松地在多个版本的 go 之间切换.
  • godbg - 基于 Web 的 gdb 前端应用程序.
  • Gogs - Go 编程语言中的自托管 Git 服务.
  • gonative - 创建 Go 构建的工具,该构建可以交叉编译到所有平台,同时仍然使用支持 Cgo 的 stdlib 包版本.
  • govvv - “go build”包装器可以轻松地将版本信息添加到 Go 二进制文件中.
  • gox - 非常简单,没有多余的装饰 Go 交叉编译工具.
  • goxc - Go 的构建工具,重点是交叉编译和打包.
  • grapes - 轻量级工具,旨在轻松通过 ssh 分发命令.
  • GVM - GVM 提供了管理 Go 版本的接口.
  • Hey - Hey 是一个向 Web 应用程序发送一些负载的小程序.
  • httpref - httpref 是 HTTP 方法、状态代码、标头以及 TCP 和 UDP 端口的便捷 CLI 参考.
  • jcli - Jenkins CLI 允许您以一种简单的方式管理您的 Jenkins.
  • kala - 简单、现代和高性能的作业调度程序.
  • kcli - 用于检查 kafka 主题/分区/消息的命令行工具.
  • kubernetes - 来自 Google 的容器集群管理器.
  • lstags - 用于跨不同注册表同步 Docker 映像的工具和 API.
  • lwc - UNIX wc 命令的实时更新版本.
  • manssh - manssh 是一个命令行工具,用于轻松管理您的 ssh 别名配置.
  • Moby - 容器生态系统的协作项目,用于组装基于容器的系统.
  • Mora - 用于访问 MongoDB 文档和元数据的 REST 服务器.
  • ostent - 收集和显示系统指标,并可选择中继到 Graphite 和/或 InfluxDB.
  • Packer - Packer 是一种用于从单一源配置为多个平台创建相同机器映像的工具.
  • Pewpew - 灵活的 HTTP 命令行压力测试器.
  • Pomerium - Pomerium 是一种身份感知访问代理.
  • Rodent - Rodent 帮助您管理 Go 版本、项目和跟踪依赖项.
  • s3-proxy - 具有 GET、PUT 和 DELETE 方法和身份验证(OpenID Connect 和基本身份验证)的 S3 代理.
  • s3gof3r - 针对大型对象进出 Amazon S3 的高速传输进行了优化的小型实用程序/库.
  • s5cmd - 极快的 S3 和本地文件系统执行工具.
  • Scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker).
  • script - 使在 Go 中为 DevOps 和系统管理任务编写类似 shell 的脚本变得容易.
  • sg - 对一组 HTTP 端点(如 ab)进行基准测试,可以根据之前的响应在每次调用之间使用响应代码和数据来应对特定的服务器压力.
  • skm - SKM 是一个简单而强大的 SSH 密钥管理器,它可以帮助您轻松管理多个 SSH 密钥!
  • StatusOK - 监控您的网站和 REST API.当您的服务器关闭或响应时间超过预期时,通过 Slack、电子邮件获得通知.
  • terraform-provider-openapi - Terraform 提供程序插件,可在运行时根据包含公开的 API 定义的 OpenAPI 文档(以前称为 swagger 文件)动态配置自身.
  • traefik - 反向代理和负载均衡器,支持多个后端.
  • trubka - 用于管理和排除 Apache Kafka 集群故障的 CLI 工具,具有向 Kafka 发布/使用协议缓冲区和纯文本事件的能力.
  • uTask - 对 yaml 中声明的业务流程进行建模和执行的自动化引擎.
  • Vegeta - HTTP 负载测试工具和库. 超过9000!
  • webhook - 允许用户创建在服务器上执行命令的 HTTP 端点(钩子)的工具.
  • Wide - 使用 Golang 的团队的基于 Web 的 IDE.
  • winrm-cli - 用于在 Windows 机器上远程执行命令的 Cli 工具.

Other Software

  • Better Go Playground - 使用语法高亮、代码完成和其他功能去游乐场.
  • blocky - 快速轻量的 DNS 代理作为具有许多功能的本地网络的广告拦截器.
  • borg - 基于终端的 bash 片段搜索引擎.
  • boxed - 基于 Dropbox 的博客引擎.
  • Cherry - Go 中的微型网络聊天服务器.
  • Circuit - Circuit 是一种可编程的平台即服务 (PaaS) 和/或基础设施即服务 (IaaS),用于管理、发现、同步和编排服务和包含云应用程序的主机.
  • Comcast - 模拟不良的网络连接.
  • confd - 使用来自 etcd 或 consul 的模板和数据管理本地应用程序配置文件.
  • croc - 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机.
  • Docker - 面向开发人员和系统管理员的分布式应用程序开放平台.
  • Documize - 集成来自 SaaS 工具的数据的现代 wiki 软件.
  • dp - 通过与区块链进行数据交换的SDK,开发者可以轻松接入DAPP开发.
  • drive - 用于命令行的 Google Drive 客户端.
  • Duplicacy - 基于无锁重复数据删除思想的跨平台网络和云备份工具.
  • Gebug - 一种工具,通过无缝启用调试器和热重载功能,使 Dockerized Go 应用程序的调试变得非常容易.
  • gfile - 通过 WebRTC 在两台计算机之间安全传输文件,无需任何第三方.
  • Go Package Store - 显示 GOPATH 中 Go 包更新的应用程序.
  • go-peerflix - 视频流洪流客户端.
  • GoBoy - 用 Go 编写的 Nintendo Game Boy Color 模拟器.
  • gocc - Gocc 是用 Go 编写的 Go 编译器工具包.
  • GoDocTooltip - 用于 Go Doc 站点的 Chrome 扩展,在功能列表中将功能描述显示为工具提示.
  • GoLand - 全功能的跨平台 Go IDE.
  • Gor - Http 流量复制工具,用于实时重播从生产环境到阶段/开发环境的流量.
  • Guora - 用 Go 编写的类似 Web 应用程序的自托管 Quora.
  • hugo - 快速而现代的静态网站引擎.
  • ide - 浏览器可访问的 IDE. 专为 Go with Go 而设计.
  • ipe - 与用 GO 编写的 Pusher 客户端库兼容的开源 Pusher 服务器实现.
  • joincap - 用于将多个 pcap 文件合并在一起的命令行实用程序.
  • Juju - 与云无关的服务部署和编排 - 支持 EC2、Azure、Openstack、MAAS 等.
  • Leaps - 使用操作转换的配对编程服务.
  • lgo - 使用 Jupyter 进行交互式围棋编程. 它支持代码完成、代码检查和 100% Go 兼容性.
  • limetext - Lime Text 是一个强大而优雅的文本编辑器,主要用 Go 开发,旨在成为 Sublime Text 的免费和开源软件继承者.
  • LiteIDE - LiteIDE 是一个简单、开源、跨平台的 Go IDE.
  • mockingjay - 来自一个配置文件的虚假 HTTP 服务器和消费者驱动的合同. 您还可以让服务器随机出现异常行为,以帮助进行更真实的性能测试.
  • myLG - 用 Go 编写的命令行网络诊断工具.
  • naclpipe - 用 Go 编写的简单的基于 NaCL EC25519 的加密管道工具.
  • nes - 用 Go 编写的任天堂娱乐系统 (NES) 模拟器.
  • Orbit - 一个用于运行命令和从模板生成文件的简单工具.
  • peg - Peg,解析表达式语法,是 Packrat 解析器生成器的实现.
  • restic - De-duplicating backup program.
  • scc - Sloc Cloc and Code,一个非常快速准确的代码计数器,具有复杂性计算和 COCOMO 估计.
  • Seaweed File System - 具有 O(1) 磁盘搜索的快速、简单和可扩展的分布式文件系统.
  • shell2http - 通过 http 服务器执行 shell 命令(用于原型设计或远程控制).
  • snap - 强大的遥测框架.
  • Snitch - 当有人通过 Tsuru 部署任何应用程序时,通知您的团队和许多工具的简单方法.
  • Stack Up - Stack Up,一个超级简单的部署工具 - 只是 Unix - 把它想象成一个服务器网络的“制作”.
  • syncthing - 开放、分散的文件同步工具和协议.
  • tcpdog - 基于 eBPF 的 TCP 可观察性.
  • tcpprobe - 用于网络性能和路径监控的 TCP 工具,包括套接字统计信息.
  • term-quiz - 为您的终端进行测验.
  • toxiproxy - 用于模拟网络和系统条件以进行自动化测试的代理.
  • tsuru - 可扩展的开源平台即服务软件.
  • vaku - 用于 Vault 中基于文件夹的功能的 CLI 和 API,例如复制、移动和搜索.
  • vFlow - 高性能、可扩展且可靠的 IPFIX、sFlow 和 Netflow 收集器.
  • wellington - Sass 项目管理工具,使用精灵函数扩展语言(如 Compass).
  • woke - 检测源代码中的非包容性语言.

Resources

在哪里可以发现新的 Go 库.

Benchmarks

Conferences

E-Books

Gophers

Meetups

在此处添加您所在城市/国家/地区的群组(发送PR

Style Guides

Social Media

Twitter

Reddit

Websites

Tutorials