go有哪些快速开发的web框架?

主要考虑的是开发速度,适合小项目的
关注者
820
被浏览
2,407,442
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

音频和音乐



用于处理音频的库。



  • flac - 支持 FLAC 流的本机 Go FLAC 编码器/解码器。


  • gaad - 本机 Go AAC 比特流解析器。




  • id3v2 -Go 的 ID3 解码和编码库。





  • Oto - 在多个平台上播放声音的低级库。





⬆ 回到顶部



身份验证和 OAuth



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



  • authboss - 用于 Web 的模块化身份验证系统。它试图尽可能多地删除样板文件和“困难的东西”,这样每次你在 Go 中启动一个新的 Web 项目时,你都可以将其插入、配置并开始构建你的应用程序,而无需每次都构建身份验证系统。



  • casbin - 支持 ACL、RBAC、ABAC 等访问控制模型的授权库。


  • cookiestxt - 提供 cookies.txt 文件格式的解析器。


  • go-guardian -Go-Guardian 是一个 golang 库,它提供了一种简单、干净和惯用的方式来创建强大的现代 API 和 Web 身份验证,支持 LDAP、Basic、Bearer 令牌和基于证书的身份验证。


  • go-jose - JOSE 工作组的 JSON Web 令牌、JSON Web 签名和 JSON Web 加密规范的相当完整的实现。


  • gologin - 使用 OAuth1 和 OAuth2 身份验证提供程序登录的可链接处理程序。


  • gorbac - 在 Golang 中提供轻量级的基于角色的访问控制 (RBAC) 实现。


  • goth - 提供了一种简单、干净和惯用的方式来使用 OAuth 和 OAuth2。开箱即用地处理多个提供程序。


  • jeff - 具有可插拔后端的简单、灵活、安全和惯用的 Web 会话管理。


  • jwt - 轻量级 JSON Web 令牌 (JWT) 库。


  • jwt - 用于 Go 的安全、简单和快速的 JSON Web 令牌。


  • jwt-auth - 用于 Golang http 服务器的 JWT 中间件,具有许多配置选项。


  • keto - “桑给巴尔:谷歌一致的全球授权系统”的开源 (Go) 实现. 提供 gRPC、REST API、newSQL 和一种简单而细粒度的权限语言。支持ACL、RBAC等访问模型。


  • 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 - 平台无关安全令牌(PASETO)的 Golang 实现。


  • permissions2 - 用于跟踪用户、登录状态和权限的库。使用安全 cookie 和 bcrypt。


  • rbac - 用于 Go 应用程序的简约 RBAC 包。


  • scope - 在 Go 中轻松管理 OAuth2 范围。


  • scs - HTTP 服务器的会话管理器。



  • session - Web 服务器的 Go 会话管理(包括对 Google App Engine - GAE 的支持)。


  • session - 用于 go http 服务器的简单、高性能、高度可定制的会话服务。


  • sessionup - 简单但有效的 HTTP 会话管理和识别包。


  • sjwt - 简单的 jwt 生成器和解析器。




⬆ 回到顶部



区块链



构建区块链的工具。



  • cosmos-sdk - 在 Cosmos 生态系统中构建公共区块链的框架。




  • solana-go - 与 Solana JSON RPC 和 WebSocket 接口交互的 Go 库。


  • endermint - 高性能中间件,用于使用 Tendermint 共识和区块链协议将用任何编程语言编写的状态机转换为拜占庭容错复制状态机。




⬆ 回到顶部



机器人大楼



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



  • 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 文件、基于会话的路由器和中间件生成。





  • hanu - 编写 Slack 机器人的框架。


  • Kelp - Stellar DEX的官方交易和做市机器人。开箱即用,用 Golang 编写,与中心化交易所和自定义交易策略兼容。


  • larry -Larry 是一个非常简单的 Twitter 机器人生成器,它从 Go 内置的 Github 发布随机存储库。


  • margelet - 构建 Telegram 机器人的框架。


  • micha - 用于 Telegram bot api 的 Go 库。


  • olivia - 使用人工神经网络构建的聊天机器人。


  • slack-bot - 准备好为懒惰的开发人员使用 Slack Bot:自定义命令、Jenkins、Jira、Bitbucket、Github ......


  • slacker - 易于使用的框架来创建 Slack 机器人。


  • slackscot - 构建 Slack 机器人的另一个框架。


  • tbot - 具有类似于 net/http 的 API 的 Telegram 机器人服务器。


  • telebot - 用 Go 编写的 Telegram 机器人框架。


  • telego - Golang 的 Telegram Bot API 库,具有完整的一对一 API 实现。




  • Tenyks - 面向服务的 IRC 机器人,使用 Redis 和 JSON 进行消息传递。


  • wayback - Telegram、Mastodon、Slack 和其他消息平台存档网页的机器人。




⬆ 回到顶部



构建自动化



帮助构建自动化的库和工具。



  • 1build - 命令行工具,可轻松管理特定于项目的命令。


  • anko - 多种编程语言的简单应用程序观察器。


  • gaper - 在 Go 项目崩溃或某些监视的文件更改时构建并重新启动它。


  • gilbert - 为 Go 项目构建系统和任务运行器。


  • goyek - 在 Go 中创建构建管道。


  • mage - Mage 是使用 Go 的类似 make/rake 的构建工具。



  • 实现 - 使用文件观察器和实时重新加载构建系统。使用自定义路径运行、构建和观察文件更改。


  • 任务 - 简单的“制作”替代方案。





⬆ 回到顶部



命令行



高级控制台 UI



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



  • asciigraph -Go 包以在没有其他依赖项的命令行应用程序中制作轻量级 ASCII 线图 ╭┈╯.


  • aurora - 支持 fmt.Printf/Sprintf 的 ANSI 终端颜色。



  • cfmt - 受引导颜色类启发的上下文 fmt。


  • cfmt - 简单方便的格式化程式化输出,与 fmt 库完全兼容。


  • chalk - 用于美化终端/控制台输出的直观包。




  • ctc - 非侵入式跨平台终端颜色库,无需修改 Print 方法。


  • go-ataman - 用于在终端中呈现 ANSI 彩色文本模板的 Go 库。






  • gocui - 旨在创建控制台用户界面的极简 Go 库。



  • gookit/color - 终端显色工具库,支持16色、256色、RGB显色输出,兼容Windows。


  • 标记 - 匹配和标记彩色终端输出的字符串的最简单方法。


  • mpb - 终端应用程序的多进度条。


  • progressbar - 适用于每个操作系统的基本线程安全进度条。


  • pterm - 一个库,用于美化每个平台上的控制台输出,具有许多可组合的组件。



  • spinner - Go 软件包,可以轻松地为终端微调器提供选项。


  • tabby - 一个用于超级简单 Golang 表的小型库。


  • table - 基于终端颜色的表格的小型库。


  • 表格 - 从命令行实用程序打印 ASCII 表,无需将大量数据传递给 API。


  • termbox-go - Termbox 是一个用于创建跨平台基于文本的界面的库。



  • termenv - 为您的终端应用程序提供高级 ANSI 样式和颜色支持。



  • uilive - 用于实时更新终端输出的库。


  • uiprogress - 在终端应用程序中呈现进度条的灵活库。


  • uitable - 使用表格数据提高终端应用程序可读性的库。


  • yacspin - 另一个 CLi Spinner 包,用于使用终端微调器。




⬆ 回到顶部



标准命令行界面



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



  • acmd - Go 中简单、有用且自以为是的 CLI 包。


  • argparse - 受 Python 的 argparse 模块启发的命令行参数解析器。


  • argv - 使用 bash 语法将命令行字符串拆分为参数数组的 Go 库。


  • carapace - spf13/cobra 的命令参数完成生成器。




  • cli - 基于 golang 结构标签的功能丰富且易于使用的命令行包。


  • 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 应用程序:根据结构字段和标签设置标志、默认值和用法。


  • 完成 - 在 Go + Go 命令 bash 完成中编写 bash 完成。


  • Dnote - 具有多设备同步功能的简单命令行笔记本。


  • elvish - 一种富有表现力的编程语言和多功能交互式外壳。


  • env - 结构的基于标签的环境配置。


  • flag - Go 支持子命令的简单但强大的命令行选项解析库。


  • flaggy - 一个强大且惯用的标志包,具有出色的子命令支持。


  • flagvar flag - Go 标准包的标志参数类型的集合。



  • go-arg -Go 中基于结构的参数解析。




  • go-getoptions - Go 选项解析器的灵感来自 Perl 的 GetOpt::Long 的灵活性。


  • gocmd - 用于构建命令行应用程序的 Go 库。


  • hiboot cli - 具有自动配置和依赖注入的 cli 应用程序框架。


  • job - JOB,把你的短期指挥变成长期的工作。


  • 主销 - 支持子命令的命令行和标志解析器(由 ; 取代, kong 见下文)。


  • liner - 用于命令行界面的类似 readline 的库。



  • mow.cli - 用于构建具有复杂标志和参数解析和验证的 CLI 应用程序的 Go 库。


  • ops -Unikernel 构建器/协调器。


  • pflag - Go 的 flag 包的直接替代品,实现 POSIX/GNU 风格的 –flags.


  • sand - 用于创建解释器的简单 API 等等。


  • sflags - 用于 flag、urfave/cli、pflag、cobra、kingpin 和其他库的基于结构的标志生成器。



  • subcmd - 解析和运行子命令的另一种方法。与标准 flag 包一起工作。


  • ts - 时间戳转换和比较工具。



  • urfave/cli - 用于在 Go 中构建命令行应用程序的简单、快速且有趣的包(以前称为 codegangsta/cli)。


  • wlog - 简单的日志接口,支持跨平台颜色和并发。


  • wmenu - 易于使用的 cli 应用程序菜单结构,提示用户做出选择。




⬆ 回到顶部



配置



用于配置解析的库。



  • aconfig - 简单、有用和固执己见的配置加载器。


  • cleanenv - 简约的配置阅读器(来自文件、ENV 和任何你想要的地方)。


  • config - 云原生应用程序配置。仅用两行将 ENV 绑定到结构。


  • config - 在两行代码中使用文件、环境变量或标志配置您的应用程序


  • config - 带有环境变量和标志解析的 JSON 或 YAML 配置包装器。


  • configuration - 用于从 env 变量、文件、标志和“默认”标签初始化配置结构的库。


  • configure - 通过多个来源提供配置,包括 JSON、标志和环境变量。


  • configuro - 来自 ENV 和 Files 的自以为是的配置加载和验证框架,专注于 12-Factor 兼容的应用程序。


  • confita - 将配置从多个后端级联加载到一个结构中。


  • conflate - 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件的库/工具,针对 JSON 模式进行验证,以及应用模式中定义的默认值。


  • env - 将环境变量解析为 Go 结构(使用默认值)。


  • env - 用于将环境变量加载到结构中的轻量级包。


  • envcfg - 将环境变量解组到 Go 结构。




  • envh - 管理环境变量的助手。


  • fig - 用于从文件和环境变量(带有验证和默认值)读取配置的微型库。


  • gcfg - 将 INI 样式的配置文件读入 Go 结构;支持用户定义的类型和小节。


  • genv - 使用 dotenv 支持轻松读取环境变量。


  • go-aws-ssm - 从 AWS System Manager - Parameter Store 获取参数的 Go 包。


  • go-conf - 基于注释结构的应用程序配置的简单库。它支持从环境变量、配置文件和命令行参数中读取配置。


  • go-ini - 编组和解组 INI 文件的 Go 包。


  • go-ssm-config - 用于从 AWS SSM(参数存储)加载配置参数的 Go 实用程序。


  • go-up - 一个简单的配置库,具有递归占位符解析且没有魔法。


  • goConfig - 解析一个结构作为输入,并使用来自命令行、环境变量和配置文件的参数填充这个结构的字段。


  • godotenv - Ruby 的 dotenv 库的 Go 端口(从 加载环境变量 .env ).



  • GoLobby/Config - GoLobby Config 是 Go 编程语言的轻量级但功能强大的配置管理器。


  • got/jconf - 模块化 JSON 配置。让您配置结构以及它们配置的代码并将解析委托给子模块,而不会牺牲完整的配置序列化。


  • gonfig - 基于标签的配置解析器,它将来自不同提供者的值加载到类型安全的结构中。


  • gookit/config - 应用程序配置管理(加载、获取、设置)。支持 JSON、YAML、TOML、INI、HCL。多文件加载,数据覆盖合并。


  • Harvester - Harvester,一个易于使用的静态和动态配置包,支持播种、环境变量和 Consul 集成。


  • hjson - 人类 JSON,人类的配置文件格式。轻松的语法,更少的错误,更多的评论。


  • hocon - 用于处理 HOCON(人类友好的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。


  • ingo - 标志保留在类似 ini 的配置文件中。


  • ini - 用于读取和写入 INI 文件的包。


  • ini - INI 解析器和写入库,解组到结构,编组到 Json,写入文件,监视文件。


  • joshbetz/config - Go 的小型配置库,可解析环境变量、JSON 文件并在 SIGHUP 上自动重新加载。



  • koanf - 轻量级、可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON、TOML、YAML、env、命令行的支持。


  • konfig - 分布式处理时代的 Go 的可组合、可观察和高性能配置处理。


  • kong - 命令行解析器,支持任意复杂的命令行结构和其他配置源,例如 YAML、JSON、TOML 等(继承者 kingpin ).


  • mini - 用于解析 ini 样式配置文件的 Golang 包。



  • nfigure - 来自命令行的基于每个库结构标签的配置(Posix 和 Go 风格);环境、JSON、YAML


  • onion - 基于层的 Go 配置,支持 JSON、TOML、YAML、属性、etcd、env 和使用 PGP 的加密。


  • piper - 具有配置继承和密钥生成的 Viper 包装器。


  • store -Go 的轻量级配置管理器。


  • 交换 - 基于构建环境递归地实例化/配置结构。(YAML、TOML、JSON 和环境)。


  • typenv - 简约、零依赖、类型化的环境变量库。


  • uConfig - 轻量级、零依赖和可扩展的配置管理。


  • viper - 使用尖牙进行配置。






⬆ 回到顶部



持续集成



帮助持续集成的工具。



  • CDS - 企业级 CI/CD 和 DevOps 自动化开源平台。


  • drone -Drone 是一个基于 Docker 的持续集成平台,用 Go 编写。


  • duci - 一个简单的 ci 服务器,不需要特定领域的语言。


  • go-fuzz-action - 在 GitHub Actions 中使用 Go 1.18 的内置模糊测试。


  • gomason - 从干净的工作区测试、构建、签名和发布您的 go 二进制文件。



  • govalls - Coveralls.io 连续代码覆盖跟踪系统的 Go 集成。


  • 工作服 - Multi-Package go 项目封面配置文件,用于 goveralls 等工具。





⬆ 回到顶部



CSS 预处理器



用于预处理 CSS 文件的库。



  • gcss - 纯 Go CSS 预处理器。





⬆ 回到顶部



数据结构和算法



位打包和压缩



  • bingo - 将本机类型快速、零分配、保持字典顺序的打包成字节。


  • binpacker - 二进制打包器和解包器帮助用户构建自定义二进制流。


  • bit - Golang 设置数据结构,具有额外的位旋转功能。


  • crunch - Go 包实现用于轻松处理各种数据类型的缓冲区。


  • go-ef - Elias-Fano 编码的 Go 实现。





位组



  • bitmap - Go 中密集、零分配、启用 SIMD 的位图/位集。





Bloom 和 Cuckoo 过滤器



  • Bloom - 实现 Bloom 过滤器的 Go 包。


  • Bloom - 在 Go 中实现的 Bloom 过滤器。


  • bloom -Golang 布隆过滤器实现。


  • bloomfilter - Go 中的另一个 Bloomfilter 实现,与 Java 的 Guava 库兼容.


  • boomfilters - 用于处理连续、无界流的概率数据结构。


  • cuckoo-filter - Cuckoo 过滤器:一个全面的布谷鸟过滤器,与其他工具相比可配置和空间优化,原论文中提到的所有功能都可用。


  • cuckoofilter - Cuckoo 过滤器:Go 中实现的计数布隆过滤器的一个很好的替代品。


  • ring - 高性能、线程安全的布隆过滤器的 Go 实现。




数据结构和算法集合



  • 算法 - 算法和数据结构。CLRS 研究。



  • 众神 - Go 数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet 等。


  • gostl - go 的数据结构和算法库,旨在提供类似于 C++ STL 的功能。




迭代器



  • geterator - 提供 map 和 reduce 功能的迭代器实现。


  • iter - C++ STL 迭代器和算法的 Go 实现。




地图



另请参阅 数据库 以获取更复杂的键值存储,以及 以获取其他有序映射实现。



  • cmap - go 的线程安全并发映射,支持 interface{} 用作键和自动扩展分片。


  • dict - 用于 Go 的类似 Python 的字典 (dict)。


  • goradd/maps - 用于地图的 Go 1.18+ 通用地图接口;安全地图;有序地图;有序、安全的地图;等等




杂项数据结构和算法




  • conjungo - 一个小型、强大且灵活的合并库。


  • count-min-log -Go 实现 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用更少的内存).


  • fsm - 有限状态机包。


  • genfuncs - 受 Kotlin 的 Sequence 和 Map 启发的 Go 1.18+ 泛型包。




  • go-rquad - 具有高效点定位和邻居查找的区域四叉树。



  • go18ds - 使用 Go 1.18 泛型的 Go 数据结构。



  • gota - Go 的数据帧、系列和数据整理方法的实现。


  • hide - 带有编组到/来自散列的 ID 类型,以防止向客户端发送 ID。


  • hilbert - Go 包,用于将值映射到空间填充曲线,例如 Hilbert 和 Peano 曲线。


  • hyperloglog - 具有 Sparse、LogLog-Beta 偏差校正和 TailCut 空间减少的 HyperLogLog 实现.


  • slices - 对切片进行操作的函数;喜欢 package strings 但适用于切片。





可空类型



  • nan - 一个库中的零分配 Nullable 结构,具有方便的转换功能、编组器和解组器。


  • null - 可以编组/解组到 JSON 的可空 Go 类型。


  • typ - Null 类型、安全的原始类型转换和从复杂结构中获取值。




队列



  • deque - 高度优化的双端队列。


  • deque - 快速环形缓冲区双端队列(双端队列)。



  • memlog - 受 Apache Kafka 启发的易于使用、轻量级、线程安全且仅追加的内存数据结构。






  • dsu - Go 中的不相交集数据结构实现。



  • goset - 一个有用的 Go 集合集合实现。


  • set - Go 中使用 LinkedHashMap 的简单集合数据结构实现。




文本分析



  • bleve - 用于 Go 的现代文本索引库。



  • go-edlib - 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。


  • levenshtein - Levenshtein 距离和相似度指标,具有可定制的编辑成本和通用前缀的 Winkler 式奖金。



  • mspm - 用于信息检索的多字符串模式匹配算法。


  • parsefields - 用于解析类似 JSON 的日志以收集唯一字段和事件的工具。



  • trie - Go 中的 Trie 实现。




树木



  • hashsplit - 将字节流拆分成块,并将块排列成树,边界由内容决定,而不是位置。


  • merkle - Merkle 根哈希和包含证明的空间高效计算。




  • treap - 使用树堆的持久、快速有序的地图。


  • treemap - 在引擎盖下使用红黑树的通用键排序图。




管道




  • parapipe - FIFO 管道,在每个阶段并行执行,同时保持消息和结果的顺序。


  • 管道 - 具有扇入和扇出的管道实现。




⬆ 回到顶部



数据库



缓存



具有过期记录的数据存储、内存中分布式数据存储或基于文件的数据库的内存子集。



  • 2q - 2Q 内存缓存实现。


  • bcache - 最终一致的分布式内存缓存 Go 库。


  • BigCache - 用于千兆字节数据的高效键/值缓存。


  • 缓存 - 内存中键:具有过期时间、0 依赖项、<100 LoC、100% 覆盖率的值存储。


  • cache2go - 内存中键:值缓存,支持基于超时自动失效。


  • cachego - 用于多个驱动程序的 Golang 缓存组件。



  • couchcache - 由 Couchbase 服务器支持的 RESTful 缓存微服务。


  • fastcache - 用于大量条目的快速线程安全内存缓存。最小化 GC 开销。


  • GCache - 支持过期缓存、LFU、LRU 和 ARC 的缓存库。


  • gdcache - 一个由 golang 实现的纯非侵入式缓存库,您可以使用它来实现自己的分布式缓存。


  • go-cache - 一个灵活的多层 Go 缓存库,通过采用 Cache-Aside 模式来处理内存和共享缓存。


  • go-mcache - 快速的内存键:值存储/缓存库。指针缓存。


  • gocache - 一个完整的 Go 缓存库,具有多个存储(内存、memcache、redis ......)、可链接、可加载、指标缓存等。


  • groupcache - Groupcache 是一个缓存和缓存填充库,旨在在许多情况下替代 memcached。


  • remember-go - 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或 in-memory 支持)。



  • ttlcache - 具有项目过期和泛型的内存缓存。


  • ttlcache - 内存中键值存储,每条记录都有 TTL。




Go 中实现的数据库



  • badger -Go 中的快速键值存储。


  • bbolt - Go 的嵌入式键/值数据库。


  • Bitcask -Bitcask 是一个可嵌入、持久且快速的键值 (KV) 数据库,用纯 Go 编写,具有可预测的读/写性能、低延迟和高吞吐量,这要归功于 bitcask 磁盘布局 (LSM+WAL)。


  • buntdb - 用于 Go 的快速、可嵌入的内存键/值数据库,具有自定义索引和空间支持。


  • clover - 用纯 Golang 编写的轻量级的面向文档的 NoSQL 数据库。


  • cockroach - 可扩展的、地理复制的、事务性数据存储。


  • Coffer - 支持事务的简单 ACID 键值数据库。


  • column - 具有位图索引和事务的高性能、列式、可嵌入内存存储。



  • Databunker - 为遵守 GDPR 和 CCPA 而构建的个人身份信息 (PII) 存储服务。


  • dgraph - 可扩展、分布式、低延迟、高吞吐量的图形数据库。


  • diskv - 本土磁盘支持的键值存储。


  • dtf - 分布式事务管理器。支持 XA、TCC、SAGA、可靠消息。


  • eliasdb - 具有 REST API、短语搜索和类似 SQL 的查询语言的无依赖、事务性图形数据库。


  • godis - Golang 实现的高性能 Redis 服务器和集群。



  • hare - 一个简单的数据库管理系统,将每个表存储为行分隔的 JSON 文本文件。


  • immudb - immudb 是用于用 Go 编写的系统和应用程序的轻量级、高速不可变数据库。


  • influxdb - 用于指标、事件和实时分析的可扩展数据存储。


  • ledisdb - Ledisdb 是一个类似于 Redis 的高性能 NoSQL,基于 LevelDB.


  • levigo - Levigo 是 LevelDB 的 Go 包装器.


  • lotusdb - 与 lsm 和 b+tree 兼容的快速 k/v 数据库。


  • Milvus - Milvus 是一个用于嵌入管理、分析和搜索的矢量数据库。


  • moss -Moss 是一个简单的 LSM 键值存储引擎,用 100% Go 编写。


  • nutsdb - Nutsdb 是一个用纯 Go 编写的简单、快速、可嵌入、持久的键/值存储。它支持完全可序列化的事务和许多数据结构,例如列表、集合、排序集合。


  • piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎。


  • pogreb - 用于读取繁重工作负载的嵌入式键值存储。



  • pudge - 使用 Go 的标准库编写的快速简单的键/值存储。


  • rosedb - 基于 LSM+WAL 的嵌入式 kv 数据库,支持 string、list、hash、set、zset。


  • rqlite - 基于 SQLite 构建的轻量级分布式关系数据库。


  • tempdb - 临时项目的键值存储。


  • tidb - TiDB 是一个分布式 SQL 数据库。灵感来自 Google F1 的设计。


  • tiedot - 由 Golang 提供支持的 NoSQL 数据库。


  • unitdb - 用于物联网、实时消息传递应用程序的快速时间序列数据库。使用 github.com/unit-io/unitd 应用程序通过 tcp 或 websocket 使用 pubsub 访问 unitdb。


  • Vasto - 分布式高性能键值存储。在磁盘上。最终一致。哈。能够在不中断服务的情况下增长或缩小。


  • VictoriaMetrics - 快速、资源有效且可扩展的开源时间序列数据库。可用作 Prometheus 的长期远程存储。支持 PromQL。




数据库架构迁移



  • atlas - 一个数据库工具包。旨在帮助公司更好地处理数据的 CLI。


  • avro - 发现 SQL 模式并将它们转换为 AVRO 模式。将 SQL 记录查询为 AVRO 字节。


  • darwin -Go 的数据库模式演变库。


  • go-fixtures - Golang 优秀的内置数据库/sql 库的 Django 样式夹具。




  • goavro - 一个对 Avro 数据进行编码和解码的 Go 包。


  • godfish - 数据库迁移管理器,使用原生查询语言。支持 cassandra、mysql、postgres、sqlite3。


  • goose - 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。




  • libschema - 在每个库中分别定义您的迁移。开源库的迁移。MySQL 和 PostgreSQL。


  • migrate - 数据库迁移。CLI 和 Golang 库。



  • migrator - MySQL 数据库迁移器,旨在运行迁移到您的功能并使用直观的 go 代码管理数据库模式更新。


  • pravasan - 简单的迁移工具 - 目前用于 MySQL,但计划很快支持 Postgres、SQLite、MongoDB 等。


  • schema - 用于在 Go 二进制文件中嵌入数据库/sql 兼容数据库的模式迁移的库。


  • skeema - MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。


  • soda - 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。


  • sql-migrate - 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。


  • sqlize - 数据库迁移生成器。允许通过不同的方式从模型和现有 sql 生成 sql 迁移。




数据库工具



  • chproxy - ClickHouse 数据库的 HTTP 代理。



  • datagen - 一种快速数据生成器,支持多表并支持多行 DML。


  • dbbench - 支持多个数据库和脚本的数据库基准测试工具。



  • go-mysql - 用于处理 MySQL 协议和复制的工具集。



  • hasql - 用于访问多主机 SQL 数据库安装的库。


  • kingshard - kingshard 是由 Golang 提供支持的 MySQL 的高性能代理.


  • myreplication - MySql 二进制日志复制侦听器。支持基于语句和行的复制。


  • octillery - 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL)。




  • pgweb - 基于 Web 的 PostgreSQL 数据库浏览器。


  • prep - 在不更改代码的情况下使用准备好的 SQL 语句。


  • perst - 在任何 Postgres 应用程序(现有的或新的)上简化和加速开发、⚡ 即时、实时、高性能。


  • rdb - 用于二次开发和内存分析的 Redis RDB 文件解析器。


  • rwdb - rwdb 为多个数据库服务器设置提供读取副本功能。


  • vitess - vitess 提供有助于扩展 MySQL 数据库以实现大规模 Web 服务的服务器和工具。




SQL 查询构建器



用于构建和使用 SQL 的库。



  • bqb - 轻量级且易于学习的查询构建器。


  • buildsqlx - 用于 PostgreSQL 的 Go 数据库查询构建器库。


  • dbq - Go 的零样板数据库操作。


  • Dotsql - Go 库,可帮助您将 sql 文件保存在一个地方并轻松使用它们。


  • gendry - 非侵入性 SQL 构建器和强大的数据绑定器。


  • godbal - 用于 Go 的数据库抽象层(dbal)。支持SQL builder,轻松获取结果。


  • goqu - 惯用的 SQL 构建器和查询库。


  • gosql - 具有更好的空值支持的 SQL 查询构建器。


  • igor - PostgreSQL 的抽象层,支持高级功能并使用类似 gorm 的语法。


  • jet - 用于在 Go 中编写类型安全 SQL 查询的框架,能够轻松地将数据库查询结果转换为所需的任意对象结构。


  • ormlite - 轻量级包,包含一些类似 ORM 的功能和 sqlite 数据库的帮助程序。


  • ozzo-dbx - 强大的数据检索方法以及与数据库无关的查询构建功能。


  • qry - 使用原始 SQL 查询从文件生成常量的工具。


  • sg - 用于生成用 Go 编写的标准 SQL(支持:CRUD)的 SQL Gen。


  • sq - Go 的类型安全 SQL 构建器和结构映射器。


  • sqlc - 从 SQL 生成类型安全的代码。


  • sqlf - 快速 SQL 查询生成器。


  • sqlingo - 在 Go 中构建 SQL 的轻量级 DSL。


  • sqrl - SQL 查询构建器,Squirrel 的分支,具有改进的性能。


  • Squalus - Go SQL 包上的薄层,可以更轻松地执行查询。


  • Squirrel - 帮助您构建 SQL 查询的 Go 库。


  • xo - 根据现有模式定义或支持 PostgreSQL、MySQL、SQLite、Oracle 和 Microsoft SQL Server 的自定义查询为数据库生成惯用的 Go 代码。




⬆ 回到顶部



数据库驱动程序



多个后端的接口



  • cayley - 支持多个后端的图形数据库。


  • dsc - SQL、NoSQL、结构化文件的数据存储连接。


  • gokv - Go 的简单键值存储抽象和实现(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等等)。




关系数据库驱动程序



  • avatica - 用于数据库/sql 的 Apache Avatica/Phoenix SQL 驱动程序。


  • bgc - 适用于 Go 的 BigQuery 的数据存储连接。



  • go-adodb - 使用数据库/sql 的 Microsoft ActiveX 对象数据库驱动程序。


  • go-mssqldb - 用于 Go 的 Microsoft MSSQL 驱动程序。


  • go-oci8 - 使用数据库/sql 的 Oracle 驱动程序。



  • go-sqlite3 - 使用数据库/sql 的 go 的 SQLite3 驱动程序。


  • godror - 用于 Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。



  • Kivik - Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库。


  • pgx - PostgreSQL 驱动程序支持超出数据库/sql 公开的功能。



  • pq - 用于数据库/sql 的纯 Go Postgres 驱动程序。



  • sqlhooks - 将挂钩附加到任何数据库/sql 驱动程序。




NoSQL 数据库驱动程序





  • asc - 适用于 Aerospike 的数据存储连接。





  • go-rejson - 使用 Redigo golang 客户端的 redislabs 的 ReJSON 模块的 Golang 客户端。在 redis 中轻松地将结构存储和操作为 JSON 对象。


  • gocb - 官方 Couchbase Go SDK。


  • gocosmos database/sql - Azure Cosmos DB 的REST 客户端和标准驱动程序。


  • gocql - Apache Cassandra 的 Go 语言驱动程序。


  • godis - 受 jedis 启发,由 golang 实现的 redis 客户端。


  • godscache - Google Cloud Platform Go Datastore 包的包装器,它使用 memcached 添加缓存。




  • goriak - Riak KV 的 Go 语言驱动程序。


  • mgm - Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序).


  • mgo - Go 语言的(未维护的)MongoDB 驱动程序,它在遵循标准 Go 习惯用法的非常简单的 API 下实现了丰富且经过良好测试的功能选择。






  • qmgo - Go 的 MongoDB 驱动程序。它基于官方的 MongoDB 驱动程序,但像 Mgo 一样更易于使用。


  • redeo - Redis 协议兼容的 TCP 服务器/服务。


  • redigo - Redigo 是 Redis 数据库的 Go 客户端。


  • redis - Golang 的 Redis 客户端。


  • rueidis - 具有自动流水线和服务器辅助客户端缓存的快速 Redis RESP3 客户端。


  • xredis - 类型安全、可定制、干净且易于使用的 Redis 客户端。




搜索和分析数据库



  • elastic - Go 的 Elasticsearch 客户端。


  • elasticsql - 在 Go 中将 sql 转换为 elasticsearch dsl.




  • go - 与 Elasticsearch 交互的库。


  • skizze - 概率数据结构服务和存储。




⬆ 回到顶部



日期和时间



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



  • carbon - 一个简单、语义化且对开发人员友好的 golang 日期时间包。


  • carbon - 具有许多实用方法的简单时间扩展,从 PHP Carbon 库移植。


  • cronrange - 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。


  • 日期 - 增加使用日期、日期范围、时间跨度、时段和时间的时间。


  • dateparse - 在事先不知道格式的情况下解析日期。


  • durafmt - Go 的持续时间格式化库。


  • feiertage - 一组计算德国公共假期的函数,包括。德国(Bundesländer)各州的专业化。比如复活节、五旬节、感恩节……



  • go-str2duration - 将字符串转换为持续时间。支持 time.Duration 返回字符串等。


  • go-sunrise - 计算给定位置的日出和日落时间。


  • go-week - 处理 ISO8601 周日期的有效软件包。



  • iso8601 - 无需正则表达式即可有效解析 ISO8601 日期时间。


  • kair - 日期和时间 - Golang 格式库。


  • now - 现在是 golang 的时间工具包。



  • strftime - C99 兼容的 strftime 格式化程序。


  • 时间跨度 - 用于与时间间隔进行交互,定义为开始时间和持续时间。


  • timeutil - 对 golang 时间包的有用扩展(Timedelta,Strftime,...)。


  • tuesday - Ruby 兼容的 Strftime 函数。




⬆ 回到顶部



分布式系统



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



  • arpc - 更有效的网络通信,支持双向呼叫、通知、广播。


  • celeriac - 添加对交互和监控 Celery 工作人员、Go 中的任务和事件的支持的库。


  • 一致 的 - 有界负载的一致散列。


  • 一致 哈希 - 具有可配置副本的一致哈希。



  • digota - grpc 电子商务微服务。


  • dot - 使用操作转换/OT 的分布式同步。




  • drmaa - 基于 DRMAA 标准的集群调度程序的作业提交库。



  • dynatomic - 使用 DynamoDB 作为原子计数器的库。


  • emitter-io - 使用 MQTT、Websockets 和 love 构建的高性能、分布式、安全和低延迟的发布-订阅平台。


  • failured - 分布式系统的自适应应计故障检测器。



  • gleam - 用纯 Go 和 Luajit 编写的快速且可扩展的分布式 map/reduce 系统,结合了 Go 的高并发性和 Luajit 的高性能,可以独立运行或分布式运行。


  • glow - 易于使用的可扩展分布式大数据处理、Map-Reduce、DAG 执行,全部在纯 Go 中。


  • gmsec - Go 分布式系统开发框架。


  • go-doudou - 一个基于 gossip 协议和 OpenAPI 3.0 规范的去中心化微服务框架。专注于低代码和快速开发的内置 go-doudou cli 可以提高您的生产力。


  • go-health - 用于在您的服务中启用异步依赖健康检查的库。


  • go-jump - 谷歌“跳转”一致性哈希函数的端口。


  • go-kit - 支持服务发现、负载平衡、可插拔传输、请求跟踪等的微服务工具包。




  • go-pdu - 一个分散的基于身份的社交网络。


  • go-sundheit - 一个库,旨在为定义 golang 服务的异步服务健康检查提供支持。


  • go-zero - 一个 web 和 rpc 框架。它的诞生是为了通过弹性设计确保繁忙站点的稳定性。内置 goctl 大大提高了开发效率。


  • gorpc - 用于高负载的简单、快速和可扩展的 RPC 库。


  • grpc-go - gRPC 的 Go 语言实现。基于 HTTP/2 的 RPC。


  • hprose - 非常新的 RPC 库,现在支持 25 多种语言。


  • jsonrpc - jsonrpc 包帮助实现 JSON-RPC 2.0.


  • jsonrpc - JSON-RPC 2.0 HTTP 客户端实现。


  • Kratos - Go 中模块化设计且易于使用的微服务框架。


  • liftbridge - 用于 NATS 的轻量级、容错消息流。


  • lura - 带有中间件的超高性能 API 网关框架。


  • micro - 云及其他分布式系统运行时。


  • NATS - 用于微服务、物联网和云原生系统的轻量级、高性能消息传递系统。


  • outboxer - Outboxer 是一个实现发件箱模式的 go 库。


  • pglock - PostgreSQL 支持的分布式锁定实现。


  • pjrpc - 带有 Protobuf 规范的 Golang JSON-RPC 服务器客户端。


  • raft - Raft 共识协议的 Golang 实现,由 HashiCorp.


  • raft - 由 CoreOS 实现 Raft 共识协议。


  • rain -BitTorrent 客户端和库。


  • redis-lock - 使用 Redis 的简化分布式锁定实现。


  • resgate - 用于构建 REST、实时和 RPC API 的实时 API 网关,所有客户端都在其中无缝同步。


  • ringpop-go -Go 应用程序的可扩展、容错应用层分片。


  • rpcx - 类似于阿里巴巴 Dubbo 的分布式可插拔 RPC 服务框架。


  • Semaphore - 一个简单的(微)服务编排器。


  • sleuth - 用于无主 p2p 自动发现和 HTTP 服务之间的 RPC 的库(使用 ZeroMQ )。





⬆ 回到顶部



动态 DNS



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



  • DDNS - 以 Digital Ocean Networking DNS 作为后端的个人 DDNS 客户端。


  • dyndns - 后台 Go 进程定期自动检查您的 IP 地址,并在您的地址更改时更新(一个或多个)Google 域的动态 DNS 记录。


  • GoDNS - 一个动态 DNS 客户端工具,支持 DNSPod 和 HE.net,用 Go 编写。




⬆ 回到顶部



电子邮件



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




  • douceur - 用于 HTML 电子邮件的 CSS 内联器。


  • email - 一个强大而灵活的 Go 电子邮件库。


  • email-verifier - 用于电子邮件验证的 Go 库,无需发送任何电子邮件。


  • go-dkim - DKIM 库,用于签名和验证电子邮件。



  • go-email-validator - 用于语法、一次性、smtp 等检查的模块化电子邮件验证器。


  • go-imap - 用于客户端和服务器的 IMAP 库。


  • go-mail - 一个简单的 Go 库,用于在 Go 中发送邮件。


  • go-message - Internet 消息格式和邮件消息的流媒体库。



  • go-simple-mail - 使用 SMTP Keep Alive 和两个超时发送电子邮件的非常简单的包:连接和发送。


  • Hectane - 提供 HTTP API 的轻量级 SMTP 客户端。


  • hermes - 生成干净、响应式 HTML 电子邮件的 Golang 包。


  • mailchain - 将加密的电子邮件发送到用 Go 编写的区块链地址。



  • MailHog - 使用 Web 和 API 接口进行电子邮件和 SMTP 测试。


  • mailx -Mailx 是一个库,可以更轻松地通过 SMTP 发送电子邮件。它是对 golang 标准库的增强 net/smtp


  • SendGrid - SendGrid 用于发送电子邮件的 Go 库。


  • smtp - SMTP 服务器协议状态机。


  • smtpmock - 轻量级的可配置多线程假 SMTP 服务器。为您的测试环境模拟任何 SMTP 行为。


  • truemail-go - 可配置的 Golang 电子邮件验证器/验证器。通过 Regex、DNS、SMTP 等验证电子邮件。




⬆ 回到顶部



可嵌入的脚本语言



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



  • anko - 用 Go 编写的脚本解释器。



  • cel-go - 快速、便携、非图灵完整的表达式评估,带有渐进式输入。


  • ecal - 一种简单的可嵌入脚本语言,支持并发事件处理。


  • expr - Go 的表达式评估引擎:快速、非图灵完备、动态类型、静态类型。


  • gentee - 可嵌入的脚本编程语言。




  • go-lua - Lua 5.2 VM 到纯 Go 的端口。





  • golua - Lua C API 的 Go 绑定。



  • gval - 用 Go 编写的高度可定制的表达式语言。


  • metacall - 支持 NodeJS、JavaScript、TypeScript、Python、Ruby、C#、WebAssembly、Java、Cobol 等的跨平台 Polyglot 运行时。


  • ngaro - 可嵌入的 Ngaro VM 实现在 Retro 中启用脚本。



  • purl - 嵌入在 Go 中的 Perl 5.18.2.


  • tengo - Go 的字节码编译脚本语言。




⬆ 回到顶部



错误处理



用于处理错误的库。



  • emperror - Go 库和应用程序的错误处理工具和最佳实践。


  • eris - 在 Go 中处理、跟踪和记录错误的更好方法。兼容标准错误库和 github.com/pkg/errors。


  • errlog - 确定错误源代码的​​可破解包(以及其他一些快速调试功能)。可就地插入任何记录器。


  • errors - 标准库错误包和 github.com/pkg/errors 的直接替换。提供各种错误处理原语。


  • errors - 提供简单错误处理原语的包。


  • errors - 使用分类原语进行简单的 golang 错误处理。


  • errors - 最简单的错误包装器,具有出色的性能和最小的内存开销。


  • errors - 内置 Go 错误的直接替换。这是一个最小的错误处理包,带有自定义错误类型、用户友好的消息、Unwrap & Is。具有非常易于使用和直接的辅助功能。


  • errors - 通过网络具有错误可移植性的 Go 错误库。


  • errorx - 一个功能丰富的错误包,带有堆栈跟踪、错误组合等。


  • exception - 一个简单的实用程序包,用于在 Golang 中使用 try-catch 处理异常。


  • Falcon - 一个简单但功能强大的错误处理包。


  • go-multierror - Go (golang) 包,用于将错误列表表示为单个错误。


  • tracerr - 堆栈跟踪和源代码片段的 Golang 错误。




⬆ 回到顶部



文件处理



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




  • afs - Go 的抽象文件存储(mem、scp、zip、tar、云:s3、gs)。


  • baraka - 一个轻松处理 http 文件上传的库。


  • bigfile - 文件传输系统,支持使用 http api、rpc 调用和 ftp 客户端管理文件。


  • 校验和 - 计算大文件的消息摘要,如 MD5、SHA256、SHA1、CRC 或 BLAKE2s。



  • flop - 文件操作库,旨在与 GNU cp 镜像功能奇偶校验。


  • gdu - 带有控制台界面的磁盘使用分析器。




  • go-exiftool - ExifTool 的 Go 绑定,这是一个著名的库,用于从文件(图片、PDF、office 等)中提取尽可能多的元数据(EXIF、IPTC 等)。



  • gofs - 开箱即用的文件同步工具。


  • gut/yos - 简单可靠的文件操作包,例如文件、目录和符号链接上的复制/移动/差异/列表。


  • higgs - 一个小型跨平台 Go 库,用于隐藏/取消隐藏文件和目录。


  • notify - 具有简单 API 的文件系统事件通知库,类似于 os/signal.


  • opc - 为 Go 加载开放打包约定 (OPC) 文件。



  • pathtype - 将路径视为自己的类型,而不是使用字符串。



  • skywalker - 允许一个人轻松地同时通过文件系统的软件包。


  • stl - 用于读取和写入 STL(立体光刻)文件的模块。用于读取的并发算法。




  • vfs - 一组可插入、可扩展和自以为是的文件系统功能,用于 Go 跨多种文件系统类型,如 os、S3 和 GCS。




⬆ 回到顶部



金融



会计和财务软件包。



  • 会计 - golang 的货币和货币格式。


  • ach - 自动票据交换所 (ACH) 文件的读取器、写入器和验证器。


  • bbgo - 用 Go 编写的加密交易机器人框架。包括常见的加密交换 API、标准指标、回测和许多内置策略。


  • 货币 - 处理货币金额,提供货币信息和格式。


  • currency - 高性能和准确的货币计算包。


  • decimal - 任意精度的定点十进制数。


  • fastme - 快速可扩展匹配引擎 Go 实现。


  • fpdecimal - 小定点小数的快速和精确的序列化和算术


  • fpmoney - 快速简单的 ISO4217 定点十进制货币。



  • go-finance - 货币时间价值(年金)、现金流、利率转换、债券和折旧计算的财务函数库。


  • go-finance - 获取汇率、通过 VIES 检查增值税号和检查 IBAN 银行帐号的模块。


  • go-finnhub - 来自 finnhub.io 的股票市场、外汇和加密数据客户端。访问来自 60 多家证券交易所、10 家外汇经纪商和 15 多家加密货币交易所的实时金融市场数据。



  • ofxgo - 查询 OFX 服务器和/或解析响应(使用示例命令行客户端)。


  • orderbook - Golang 中限价订单簿的匹配引擎。


  • payme - 用于 SEPA 付款的 QR 码生成器(ASCII 和 PNG)。


  • sleet - 多个支付服务提供商 (PsP) 处理在线支付的统一接口。


  • techan - 具有高级市场分析和交易策略的技术分析库。


  • ticker - 终端股票观察者和股票头寸跟踪器。


  • transaction - 嵌入式帐户事务数据库,以多线程模式运行。


  • 增值税 - 增值税号验证和欧盟增值税税率。




⬆ 回到顶部



形式



用于处理表单的库。



  • bind - 将表单数据绑定到任何 Go 值。


  • binding - 将来自 net/http 请求的表单和 JSON 数据绑定到结构。


  • 符合 - 检查用户输入。基于结构标签修剪、清理和清理数据。


  • form - 将 url.Values 解码为 Go 值,并将 Go 值编码为 url.Values。双阵列和全地图支持。


  • formam - 将表单的值解码为结构。


  • forms - 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON 数据。


  • gbind - 将数据绑定到任何 Go 值。可以使用内置和自定义的表达式绑定能力;支持数据验证



  • httpin - 将 HTTP 请求解码为自定义结构,包括查询字符串、表单、HTTP 标头等。



  • qs - 用于将结构编码为 URL 查询参数的 Go 模块。


  • queryparam - 解码 url.Values 为标准或自定义类型的可用结构值。




⬆ 回到顶部



功能性



支持 Go 函数式编程的包。



  • fp-go - 由 Golang 1.18+ 泛型提供支持的函数式编程助手的集合。


  • fpGo - Monad,Golang 的函数式编程特性。




  • gofp - 一个类似于 lodash 的强大的 Golang 实用程序库。


  • mo - Monads 和流行的 FP 抽象,基于 Go 1.18+ 泛型(选项,结果,无论...)。


  • underscore -Go 1.18 及更高版本的函数式编程助手。


  • valor - 可选包含值的通用选项和结果类型。




⬆ 回到顶部



游戏开发



很棒的游戏开发库。



  • Azul3D - 用 Go 编写的 3D 游戏引擎。



  • engo - Engo 是一个用 Go 编写的开源 2D 游戏引擎。它遵循实体-组件-系统范式。


  • g3n - Go 3D 游戏引擎。


  • go-astar - A* 路径查找算法的 Go 实现。




  • gott - 使用 golang 实现的游戏服务器骨架。


  • goworld - 可扩展的游戏服务器引擎,具有空间实体框架和热交换。


  • Leaf - 轻量级游戏服务器框架。


  • nano - 轻量级、便利、高性能的基于 golang 的游戏服务器框架。


  • Oak - 纯围棋游戏引擎。


  • Pitaya - 通过 C SDK 为 iOS、Android、Unity 等提供集群支持和客户端库的可扩展游戏服务器框架。


  • Pixel - Go 中手工制作的 2D 游戏库。


  • 原型 - 使用最小 API 创建桌面游戏的跨平台(Windows/Linux/Mac)库。



  • termloop - 基于终端的围棋游戏引擎,建立在 Termbox 之上。


  • tile - 面向数据和缓存友好的 2D 网格库 (TileMap),包括寻路、观察器和导入/导出。




⬆ 回到顶部



发电机



生成 Go 代码的工具。



  • copygen - 无需反射即可生成类型到类型和基于类型的代码。


  • generis - 提供泛型、自由格式宏、条件编译和 HTML 模板的代码生成工具。


  • go-enum - 从代码注释中生成枚举的代码。


  • go-linq - 用于 Go 的 .NET 类似 LINQ 的查询方法。


  • go-xray - 帮助更轻松地使用反射。



  • gotype - Golang 源代码解析,用法如反射包。



  • GoWrap - 使用简单的模板为 Go 接口生成装饰器。


  • interfaces - 用于生成接口定义的命令行工具。


  • jennifer - 无需模板即可生成任意 Go 代码。





⬆ 回到顶部



地理



地理工具和服务器



  • geoserver -geoserver 是一个 Go 包,用于通过 GeoServer REST API 操作 GeoServer 实例。


  • gismanager - 将您的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver.



  • [h3-go] - H3 的 Go 绑定,一个分层的六边形地理空间索引系统。


  • H3 GeoJSON - H3 索引和 GeoJSON 之间的转换实用程序。


  • H3GeoDist - 通过虚拟节点分发 Uber H3geo 单元。


  • mbtileserver - 一个简单的基于 Go 的服务器,用于以 mbtiles 格式存储的地图图块。


  • osm - 用于读取、写入和使用 OpenStreetMap 数据和 API 的库。


  • pbf - OpenStreetMap PBF golang 编码器/解码器。


  • S2 geojson - 将 geojson 转换为 s2 单元并在地图上展示一些 S2 几何特征。



  • simplefeatures - simplesfeatures 是一个 2D 几何库,它提供了对几何进行建模的 Go 类型,以及对其进行操作的算法。


  • Tile38 - 具有空间索引和实时地理围栏的地理定位数据库。


  • Web-Mercator-Projection 使用 Web Mercator Projection 在地图中轻松使用和转换 LonLat、Point 和 Tile 以显示信息、标记等的项目。


  • WGS84 - 坐标转换和转换库(ETRS89、OSGB36、NAD83、RGF93、Web Mercator、UTM)。




⬆ 回到顶部



编译器



将 Go 编译成其他语言的工具。



  • c2go - 将 C 代码转换为 Go 代码。


  • c4go - 将 C 代码转换为 Go 代码。


  • esp32 - 转译进入 Arduino 代码。


  • f4go - 将 FORTRAN 77 代码转换为 Go 代码。


  • gopherjs - 从 Go 到 JavaScript 的编译器。


  • tardisgo - Golang 到 Haxe 到 CPP/CSharp/Java/JavaScript 转译器。




⬆ 回到顶部



协程



用于管理和使用 Goroutine 的工具。



  • ants - Go 中高性能和低成本的 goroutine 池。


  • artifex - Golang 的简单内存中作业队列,使用基于工作者的调度。


  • async - Go 的替代同步库(Future,Promise,Locks)。


  • async - 一种异步执行函数的安全方法,在出现恐慌时恢复它们。


  • async-job - AsyncJob 是一个异步队列作业管理器,具有轻量级、清晰和快速的代码。


  • 断路器 - 使执行流程可中断的灵活机制。


  • channelify - 将您的函数转换为返回通道,以实现简单而强大的并行处理。


  • concurrency-limiter - 并发限制器,支持超时、动态优先级和 goroutine 的上下文取消。


  • conexec - 一个并发工具包,可帮助以高效和安全的方式同时执行函数。它支持指定整体超时以避免阻塞,并使用 goroutine 池来提高效率。



  • execpool - 围绕 exec.Cmd 构建的池,可提前启动给定数量的进程,并在需要时将 stdin 和 stdout 附加到它们。与 FastCGI 或 Apache Prefork MPM 非常相似,但适用于任何命令。



  • go-flow - 控制 goroutine 的执行顺序。




  • go-waitgroup - sync.WaitGroup 与错误处理和并发控制类似。


  • go-workers - 轻松安全地运行大型数据处理管道的工作人员。


  • goccm - Go 并发管理器包限制了允许并发运行的 goroutine 的数量。


  • gohive - 用于 Go 的高性能且易于使用的 Goroutine 池。


  • gollback - 异步简单函数实用程序,用于管理闭包和回调的执行。


  • gowl - Gowl 是一个流程管理和流程监控工具。无限工作池使您能够控制池和进程并监控它们的状态。


  • goworker - goworker 是一个基于 Go 的后台工作者。


  • gowp - gowp 是并发限制 goroutine 池。


  • gpool - 管理一个可调整大小的上下文感知 goroutine 池以绑定并发。



  • hands - 一个进程控制器,用于控制多个 goroutine 的执行和返回策略。


  • Hunch - Hunch 提供了如下函数: All , First , Retry Waterfall ,使异步流控制更加直观。


  • kyoo - 提供无限的作业队列和并发工作池。




  • 监督 - 监督是 Erlang 监督树的完整实现。



  • 池塘 - 用 Go 编写的简约和高性能 goroutine 工作池。


  • pool - 有限的消费者 goroutine 或无限的 goroutine 池,以便于 goroutine 处理和取消。


  • queue - 为您提供 sync.WaitGroup 类似队列组的可访问性。帮助您限制和限制 goroutine,等待所有 goroutine 结束等等。


  • 例程 - 带上下文的例程控制,支持:Main、Go、Pool 和一些有用的 Executors。


  • semaphore - 基于通道和上下文的锁定/解锁操作超时的信号量模式实现。


  • semaphore - 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。


  • stl - 基于软件事务内存 (STM) 并发控制机制的软件事务锁。



  • tunny -golang 的 Goroutine 池。



  • workerpool - 限制任务执行并发的 Goroutine 池,而不是排队的任务数量。




⬆ 回到顶部



图形用户界面



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



工具包



  • app - 使用 GO、HTML 和 CSS 创建应用程序的包。支持:MacOS、Windows 正在进行中。


  • fyne - 基于 Material Design 为 Go 设计的跨平台原生 GUI。支持:Linux、macOS、Windows、BSD、iOS 和 Android。


  • gio - Gio 是一个用于在 Go 中编写跨平台即时模式 GUI-s 的库。Gio 支持所有主要平台:Linux、macOS、Windows、Android、iOS、FreeBSD、OpenBSD 和 WebAssembly。


  • go-astilectron - 使用 GO 和 HTML/JS/CSS(由 Electron 提供支持)构建跨平台 GUI 应用程序.



  • go-sciter -Sciter 的 Go 绑定:用于现代桌面 UI 开发的可嵌入 HTML/CSS/脚本引擎. 跨平台。




  • gowd - 使用 GO、HTML、CSS 和 NW.js 进行快速简单的桌面 UI 开发。跨平台。


  • qt - Go 的 Qt 绑定(支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).


  • ui - Go 的平台原生 GUI 库。跨平台。


  • Wails - 使用内置 OS HTML 渲染器的带有 HTML UI 的 Mac、Windows、Linux 桌面应用程序。


  • walk - Go 的 Windows 应用程序库工具包。


  • webview - 具有简单的双向 JavaScript 绑定(Windows / macOS / Linux)的跨平台 webview 窗口。




相互作用







  • robotsgo - Go Native 跨平台 GUI 系统自动化。控制鼠标、键盘等。


  • systray - 跨平台 Go 库,用于在通知区域放置图标和菜单。


  • Trayhost - 跨平台 Go 库,用于在主机操作系统的任务栏中放置图标。


  • zenity - 跨平台 Go 库和 CLI,用于创建与用户进行图形交互的简单对话框。




⬆ 回到顶部



硬件



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



  • arduino-cli - 官方 Arduino CLI 和库。可以独立运行,也可以合并到更大的 Go 项目中。


  • emgo - 用于编程嵌入式系统(例如 STM32 MCU)的类似 Go 的语言。


  • ghw - Golang 硬件发现/检查库。


  • go-osc -Go 的开放声音控制(OSC)绑定。




  • 操纵杆 - 一个轮询 API,用于读取附加操纵杆的状态。


  • sysinfo - 一个纯 Go 库,提供 Linux 操作系统/内核/硬件系统信息。




⬆ 回到顶部



图片



用于处理图像的库。



  • bild - 纯 Go 中图像处理算法的集合。


  • bimg - 使用 libvips 进行快速高效图像处理的小包。



  • canvas - 将矢量图形转换为 PDF、SVG 或光栅化图像。


  • darkroom - 具有可变存储后端和图像处理引擎的图像代理,专注于速度和弹性。


  • Draft - 使用简单的 YAML 语法为 GraphViz 生成高级微服务架构图。


  • geopattern - 从字符串创建漂亮的生成图像模式。


  • gg - 纯 Go 中的 2D 渲染。



  • gltf - 高效且强大的 glTF 2.0 阅读器、编写器和验证器。







  • go-webp - 使用 libwebp 对 webp 图片进行编码和解码的库。


  • gocv - 使用 OpenCV 3.3+ 的计算机视觉 Go 包。



  • goimghdr - imghdr 模块确定 Go 文件中包含的图像类型。


  • govatar - 用于生成有趣头像的库和 CMD 工具。


  • govips - 用于 Go 的闪电般快速的图像处理和大小调整库。


  • gowitness - 在命令行上使用 go 和 headless chrome 截屏网页。




  • imagick - 绑定到 ImageMagick 的 MagickWand C API.


  • imaginary - 用于图像大小调整的快速简单的 HTTP 微服务。



  • img - 图像处理工具的选择。


  • ln - Go 中的 3D 线条艺术渲染。


  • mergi - 用于图像处理(合并、裁剪、调整大小、水印、动画)的 Tool & Go 库。


  • mort - 用 Go 编写的存储和图像处理服务器。


  • mpo - MPO 3D 照片的解码器和转换工具。


  • picfit - 用 Go 编写的图像大小调整服务器。


  • pt - 用 Go 编写的路径跟踪引擎。


  • resize - 使用常用插值方法调整 Go 的图像大小。


  • rez - 在纯 Go 和 SIMD 中调整图像大小。


  • scout -Scout 是一个独立的开源软件解决方案,用于 DIY 视频安全。


  • smartcrop - 为任意图像和裁剪尺寸找到好的裁剪。



  • stegify - 用于 LSB 隐写术的 Go 工具,能够隐藏图像中的任何文件。


  • svgo - 用于 SVG 生成的 Go 语言库。


  • tga - 包 tga 是一个 TARGA 图像格式解码器/编码器。


  • webp-server - 简单且最小的图像服务器,能够存储、调整大小、转换和缓存图像。




⬆ 回到顶部



物联网(物联网)



用于物联网设备编程的库。




  • devices - 物联网设备的库套件,x/exp/io 的实验性.


  • eywa - Project Eywa 本质上是一个连接管理器,用于跟踪连接的设备。


  • flogo -Flogo 项目是 IoT Edge 应用程序和集成的开源框架。


  • gatt -Gatt 是用于构建低功耗蓝牙外围设备的 Go 包。


  • gobot - Gobot 是机器人、物理计算和物联网的框架。


  • huego - 适用于 Go 的广泛的飞利浦 Hue 客户端库。


  • iot - IoT 是一个用于实现 Google IoT Core 设备的简单框架。


  • mainflux - 工业物联网消息和设备管理服务器。


  • periph - 外设 I/O 与低级板设备接口。


  • sensorbee - 用于 IoT 的轻量级流处理引擎。




⬆ 回到顶部



作业调度程序



用于调度作业的库。



  • cdule - 具有数据库支持的作业调度程序库


  • 脸颊 - 一个类似 crontab 的简单调度程序,旨在为作业调度提供 KISS 方法。


  • clockwerk - 使用简单流畅的语法安排定期作业的 Go 包。



  • Dagu - 无代码工作流执行器。它执行以简单 YAML 格式定义的 DAG。


  • go-cron - 用于 go 的简单 Cron 库,可以在特定日期和时间以不同的时间间隔执行闭包或函数,从每秒一次到每年一次。主要用于 Web 应用程序和长时间运行的守护进程。




  • goflow - 用于 ETL/ML/AI 管道快速原型设计的工作流编排器和调度器。


  • gron - 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们。


  • gronx - Cron 表达式解析器,任务运行程序和使用 crontab 的守护程序,如任务列表。


  • JobRunner - 智能且功能强大的 cron 作业调度程序,内置作业队列和实时监控。


  • jobs - 持久且灵活的后台作业库。


  • leprechaun - 支持 webhook、crons 和经典调度的作业调度程序。


  • sched - 具有快进时间能力的作业调度程序。



  • tasks - 一个易于使用的进程内调度程序,用于 Go 中的重复任务。




⬆ 回到顶部



JSON



用于处理 JSON 的库。



  • ajson - 支持 JSONPath 的 golang 抽象 JSON。


  • ask - 轻松访问地图和切片中的嵌套值。与 encoding/json 和其他将任意数据“解组”为 Go 数据类型的包结合使用。


  • dynjson - 用于动态 API 的客户端可自定义 JSON 格式。


  • ej - 简洁地从不同来源写入和读取 JSON。


  • epoch - 包含用于编组/解组 Unix 时间戳/纪元到/从内置 time.Time 类型在 JSON 中的原语。


  • fastjson - Go 的快速 JSON 解析器和验证器。没有自定义结构,没有代码生成,没有反射。


  • gjo - 创建 JSON 对象的小工具。


  • GJSON - 使用一行代码获取 JSON 值。


  • go-jsonerror -Go-JsonError 允许我们轻松创建遵循 JsonApi 规范的 json 响应错误。


  • go-respond - 用于处理常见 HTTP JSON 响应的 Go 包。



  • gojson - 从示例 JSON 中自动生成 Go (golang) 结构定义。


  • JayDiff - 用 Go 编写的 JSON diff 实用程序。


  • jettison - 用于 Go 的快速灵活的 JSON 编码器。


  • jscan - 高性能零分配 JSON 迭代器。




  • json2go - 高级 JSON 到 Go 结构转换。提供可以解析多个 JSON 文档并创建适合它们的结构的包。



  • jsoncolor - 用于 encoding/json 输出彩色 JSON 的直接替换。


  • jsondiff - 基于 RFC6902(JSON 补丁)的 Go 的 JSON 差异库。


  • jsonf - 用于突出显示格式和获取 JSON 的结构查询的控制台工具。


  • jsongo - 流利的 API,可以更轻松地创建 Json 对象。


  • jsonhal - 简单的 Go 包,用于将自定义结构编组为 HAL 兼容的 JSON 响应。


  • json - 用于处理和查询 JSON 的实用程序,无需以类型安全的方式定义结构。


  • jzon - 具有标准兼容 API/行为的 JSON 库。


  • kazaam - 用于 JSON 文档任意转换的 API。


  • mapslice-json - 使用 MapSlice 以 JSON 格式对地图进行有序编组/解组。



  • mp - 简单的 cli 电子邮件解析器。它目前采用标准输入并输出 JSON。


  • OjG - 为 Go 优化的 JSON 是一种高性能解析器,具有各种附加的 JSON 工具,包括 JSONPath。


  • omg.jsonparser - 简单的 JSON 解析器,通过 golang 结构字段标签进行条件验证。


  • ujson - 适用于非结构化 JSON 的快速且最小的 JSON 解析器和转换器。


  • vjson - 用于通过流式 API 声明 JSON 模式来验证 JSON 对象的 Go 包。




⬆ 回到顶部



日志记录



用于生成和使用日志文件的库。



  • distillog - 提炼的水平日志记录(将其视为 stdlib + 日志级别)。


  • glg -glg 是用于 Go 的简单快速的分级日志库。


  • glo - 具有相同严重级别的受 PHP Monolog 启发的日志记录工具。



  • go-cronowriter - 根据当前日期和时间自动轮换日志文件的简单编写器,如 cronolog。


  • go-log - 带有堆栈跟踪、对象转储和可选时间戳的日志库。


  • go-log - 简单且可配置的 Go 日志记录,具有级别、格式化程序和编写器。


  • go-log - 日志库支持级别和多处理程序。



  • go-logger - Go 程序的简单记录器,带有级别处理程序。


  • gologger - 简单易用的 go 日志库,登录彩色控制台、简单控制台、文件或 Elasticsearch.


  • gomol - 具有可扩展日志输出的 Go 多输出结构化日志记录。


  • got/log - 快速、可扩展、功能齐全、std-lib 源代码兼容的日志库。


  • httpretty - 在终端上漂亮地打印您的常规 HTTP 请求以进行调试(类似于 http.DumpRequest)。


  • journald - 执行 systemd Journal 的本地日志记录 API。


  • kemba - 受 debug 启发​​的小型调试日志记录工具,非常适合 CLI 工具和应用程序。


  • log - 一个 O(1) 日志系统,允许您将一个日志连接到多个写入器(例如 stdout、一个文件和一个 TCP 连接)。


  • log - Go 的结构化日志记录包。


  • log - 简单、可配置和可扩展的 Go 结构化日志记录。


  • log - Go 的结构化日志接口将日志记录外观与其实现完全分开。


  • log-voyage - 用 golang 编写的全功能日志记录 saas。


  • log15 - 简单、强大的 Go 日志记录。


  • logdump - 用于多级日志记录的包。


  • logex -Golang 日志库,支持跟踪和级别,由标准日志库包装。



  • logmatic - 具有动态日志级别配置的 Golang 彩色记录器。


  • logo - Golang 记录器到不同的可配置编写器。






  • logutils - 用于在 Go (Golang) 中更好地登录的实用程序,扩展了标准记录器。


  • logxi - 12 因素应用程序记录器,速度快,让您开心。


  • lumberjack - 简单的滚动记录器,实现 io.WriteCloser.


  • mlog - 用于 go 的简单日志记录模块,具有 5 个级别,可选的旋转日志文件功能和 stdout/stderr 输出。


  • noodlog - 参数化 JSON 日志库,可让您混淆敏感数据并编组任何类型的内容。没有更多的打印指针而不是值,也没有 JSON 字符串的转义字符。


  • onelog - Onelog 是一个非常简单但非常高效的 JSON 记录器。它是所有场景中最快的 JSON 记录器。此外,它是分配最低的记录器之一。


  • ozzo-log - 支持日志严重性、分类和过滤的高性能日志记录。可以将过滤后的日志消息发送到各种目标(例如控制台、网络、邮件)。



  • rollingwriter - RollingWriter 是一种自动轮换 io.Writer 实现,具有多种策略来提供日志文件轮换。


  • seelog - 具有灵活调度、过滤和格式化的日志记录功能。


  • slf4g - Golang 的简单日志记录外观:简单的结构化日志记录;但功能强大、可扩展和可定制,从过去几十年的日志框架中汲取了大量经验。


  • slog 轻量级、可配置、可扩展的 Go 记录器。


  • spew - 为 Go 数据结构实现一个深度漂亮的打印机以帮助调试。


  • sqldb-logger - Go SQL 数据库驱动程序的记录器,无需修改现有的 *sql.DB stdlib 使用。


  • stdlog -Stdlog 是一个面向对象的库,提供分级日志记录。它对 cron 作业非常有用。


  • structy/log - 一个简单易用的日志系统,简约但具有调试和区分消息的功能。


  • tail - 努力模仿 BSD tail 程序功能的 Go 包。


  • xlog - Go 的插件架构和灵活的日志系统,具有级别 ctrl、多个日志目标和自定义日志格式。


  • xlog - 结构化记录器,用于 net/context 具有灵活调度的感知 HTTP 处理程序。


  • 叫喊 - 另一个简约的日志库。


  • zap - Go 中快速、结构化、分级的日志记录。






⬆ 回到顶部



机器学习



机器学习库。




  • CloudForest - 快速、灵活、多线程的决策树集合,用于纯 Go 中的机器学习。


  • ddt - 动态决策树,创建定义可定制规则的树。



  • evoli - 遗传算法和粒子群优化库。


  • fonet - 用 Go 编写的深度神经网络库。


  • go-cluster - k-modes 和 k-prototypes 聚类算法的 Go 实现。


  • go-deep -Go 中功能丰富的神经网络库。


  • go-fann - 快速人工神经网络(FANN)库的 Go 绑定。



  • go-galib - 用 Go / golang 编写的遗传算法库。


  • go-pr -Go 语言中的模式识别包。



  • godist - 各种概率分布和相关方法。





  • GoMind - Go 中一个简单的神经网络库。




  • Goptuna - 用 Go 编写的黑盒函数的贝叶斯优化框架。一切都会被优化。



  • gorgonia - 基于图形的计算库,如 Go 的 Theano,提供用于构建各种机器学习和神经网络算法的原语。


  • gorse - 基于 Go 编写的协同过滤的离线推荐系统后端。



  • gosseract - 用于 OCR(光学字符识别)的 Go 包,使用 Tesseract C++ 库。


  • libsvm - 基于 LIBSVM 3.14 的 libsvm golang 版本派生工作。


  • m2cgen - 一个 CLI 工具,用于将经过训练的经典 ML 模型转换为具有零依赖关系的本机 Go 代码,用 Python 编写并支持 Go 语言。


  • 整洁 - 用于增强拓扑神经进化(NEAT)的即插即用并行 Go 框架.


  • neural-go - 用 Go 实现的多层感知器网络,通过反向传播进行训练。


  • ocrserver - 一个简单的 OCR API 服务器,非常容易被 Docker 和 Heroku 部署。


  • onnx-go - 开放神经网络交换 (ONNX) 的 Go 接口。


  • probab - 概率分布函数。贝叶斯推理。用纯 Go 编写。




  • shield - 具有灵活标记器和 Go 存储后端的贝叶斯文本分类器。


  • tfgo - 易于使用的 Tensorflow 绑定:简化了官方 Tensorflow Go 绑定的使用。在 Go 中定义计算图,加载和执行用 Python 训练的模型。





⬆ 回到顶部



消息传递



实现消息系统的库。



  • ami - 将客户端转到基于 Redis Cluster Streams 的可靠队列。


  • amqp - 转到 RabbitMQ 客户端库。


  • APNs2 - 适用于 Go 的 HTTP/2 Apple 推送通知提供程序 - 向 iOS、tvOS、Safari 和 OSX 应用程序发送推送通知。


  • Asynq - 一个简单、可靠、高效的 Go 分布式任务队列,构建在 Redis 之上。


  • Beaver - 一个实时消息服务器,用于构建可扩展的应用内通知、多人游戏、网络和移动应用中的聊天应用。


  • Benthos - 一系列协议之间的消息流桥。


  • Bus - 用于内部通信的极简主义消息总线实现。


  • Centrifugo -Go 中的实时消息传递(Websockets 或 SockJS)服务器。


  • Chanify - 推送通知服务器向您的 iOS 设备发送消息。


  • Commander - 高级事件驱动的消费者/生产者,支持各种“方言”,例如 Apache Kafka。



  • dbus - D-Bus 的本机 Go 绑定。



  • 发射器 - 使用 Go 方式发出事件,具有通配符、谓词、取消可能性和许多其他好的胜利。


  • event - 模式观察者的实现。


  • EventBus - 具有异步兼容性的轻量级事件总线。



  • Glue - 强大的 Go 和 Javascript 套接字库(Socket.io 的替代品)。


  • go-mq - 具有声明性配置的 RabbitMQ 客户端。


  • go-notify -freedesktop 通知规范的本机实现。



  • go-res - 使用 NATS 和 Resgate 构建客户端无缝同步的 REST/实时服务的包。




  • Gollum - 一个 n:m 多路复用器,它从不同来源收集消息并将它们广播到一组目的地。


  • golongpoll - HTTP longpoll 服务器库,使 web pub-sub 变得简单。




  • gosd - 用于调度何时向频道发送消息的库。


  • guble - 使用推送通知(Google Firebase 云消息传递、Apple 推送通知服务、SMS)以及 websockets(一种 REST API)的消息传递服务器,具有分布式操作和消息持久性。


  • hare - 一个用户友好的库,用于发送消息和侦听 TCP 套接字。


  • hub - Go 应用程序的消息/事件中心,使用发布/订阅模式,支持 rabbitMQ 交换等别名。


  • jazz - 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费。


  • machine - 基于分布式消息传递的异步任务队列/作业队列。


  • mangos - 具有传输互操作性的 Nanomsg(“可扩展性协议”)的纯 go 实现。


  • melody - 处理 websocket 会话的极简框架,包括广播和自动 ping/pong 处理。


  • Mercure - 使用 Mercure 协议(构建在服务器发送事件之上)调度服务器发送更新的服务器和库。


  • messagebus - messagebus 是一个 Go 简单的异步消息总线,非常适合在进行事件溯源、CQRS、DDD 时用作事件总线。


  • NATS Go Client - 轻量级和高性能的发布-订阅和分布式队列消息系统 - 这是 Go 库。



  • oplog - 用于 REST API 的通用 oplog/复制系统。



  • Quamina - 用于过滤消息和事件的快速模式匹配。


  • rabbus - amqp 交换和队列的小型包装器。



  • RapidMQ - RapidMQ 是一个轻量级且可靠的库,用于管理本地消息队列。


  • redisqueue - redisqueue 提供了使用 Redis 流的队列的生产者和消费者。


  • rmqconn - RabbitMQ 重新连接。amqp.Connection 和 amqp.Dial 的包装器。允许在连接断开时重新连接,然后强制关闭对 Close() 方法的调用。



  • Uniqush-Push - Redis 支持的统一推送服务,用于向移动设备发送服务器端通知。





⬆ 回到顶部



微软办公软件



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




微软Excel



用于使用 Microsoft Excel 的库。



  • excelize - 用于读写 Microsoft Excel 的 Golang 库 (XLSX) 文件。


  • exl - Excel 绑定到用 Go 编写的结构。(仅支持 Go1.18+)


  • go-excel - 一个简单轻巧的阅读器,可以将类似相关 db 的 excel 作为表格读取。


  • goxlsxwriter - 用于编写 XLSX(Microsoft Excel)文件的 libxlsxwriter 的 Golang 绑定。


  • xlsx - 用于简化读取最新版本 Microsoft Excel 在 Go 程序中使用的 XML 格式的库。


  • xlsx - 在 Go 程序中读取/更新现有 Microsoft Excel 文件的快速且安全的方法。




⬆ 回到顶部



各种各样的



依赖注入



用于依赖注入的库。



  • alice - Golang 的附加依赖注入容器。


  • di - Go 编程语言的依赖注入容器。


  • dig - 一个基于反射的 Go 依赖注入工具包。


  • dingo - 基于 Guice 的 Go 依赖注入工具包。


  • do - 基于泛型的依赖注入框架。


  • fx - 一个基于依赖注入的 Go 应用程序框架(建立在 dig 之上)。



  • goioc/di - 受 Spring 启发的依赖注入容器。


  • GoLobby/Container - GoLobby Container 是 Go 编程语言的轻量级但功能强大的 IoC 依赖注入容器。



  • HnH/di - 专注于清洁 API 和灵活性的 DI 容器库。


  • kinit - 具有全局模式、级联初始化和恐慌安全终结的可定制依赖注入容器。


  • 链接器 - 基于反射的依赖注入和具有组件生命周期支持的控制库反转。


  • nject - 用于库、测试、http 端点和服务启动的类型安全、反射框架。


  • wire -Golang 的严格运行时依赖注入。




⬆ 回到顶部



项目布局



用于构建项目的非官方 模式集。




  • cookiecutter-golang - 一个 Go 应用程序样板模板,用于按照生产最佳实践快速启动项目。


  • go-sample - 带有真实代码的 Go 应用程序项目的示例布局。


  • go-starter - 一个自以为是的生产就绪 RESTful JSON 后端模板,与 VSCode DevContainers 高度集成。


  • go-todo-backend - 使用产品微服务的模块化项目布局的 Go Todo 后端示例.


  • gobase - 一个简单的 golang 应用程序框架,具有真正的 golang 应用程序的基本设置。


  • golang-standards/project-layout -Go 生态系统中一组常见的历史和新兴项目布局模式。注意:尽管 org-name 不代表官方 golang 标准,请参阅 此问题 以获取更多信息。尽管如此,有些人可能会发现布局很有用。





  • pagoda -Go 中内置的快速、简单的全栈 Web 开发入门套件。


  • 脚手架 - 脚手架生成一个入门 Go 项目布局。让您专注于实现的业务逻辑。





⬆ 回到顶部



字符串



用于处理字符串的库。



  • bexp - 大括号扩展机制的 Go 实现以生成任意字符串。


  • go-formatter - 实现由大括号格式字符串包围的 替换字段。 {}


  • gobeam/Stringy - 字符串操作库,用于将字符串转换为驼峰式、蛇式、烤肉串式 / slugify 等。



  • sttr - 跨平台的 cli 应用程序,用于对字符串执行各种操作。


  • xstrings - 从其他语言移植的有用字符串函数的集合。




⬆ 回到顶部



未分类



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



  • anagent - 具有依赖注入的简约、可插拔 Golang evloop/timer 处理程序。


  • antch - 一个快速、强大且可扩展的网络爬虫和抓取框架。


  • archiver - 用于制作和提取 .zip 和 .tar.gz 档案的库和命令。


  • autoflags - Go 包以自动从结构字段定义命令行标志。


  • avgRating - 根据威尔逊分数方程计算平均分数和评级。


  • 横幅 - 将漂亮的横幅添加到您的 Go 应用程序中。


  • base64Captcha - Base64captch 支持数字、数字、字母、算术、音频和数字字母验证码。


  • basexx - 在各种数字基数中转换为、从数字字符串以及在数字字符串之间转换。


  • battery - 跨平台、标准化的电池信息库。


  • bitio - 高度优化的 Go 位级读写器。



  • captcha - 包验证码为验证码生成提供了一个易于使用、不受​​约束的 API。


  • conv - 包 conv 提供跨 Go 类型的快速和直观的转换。


  • datacounter - 用于 reader/writer/http.ResponseWriter 的计数器。



  • faker -Go 的随机假数据和结构生成器。


  • ffmt - 为人类美化数据显示。


  • gatus - 自动化服务健康仪表板。




  • go-openapi - 用于解析和利用 open-api 模式的包集合。


  • go- resilency -golang 的弹性模式。



  • gofakeit - 用 go 编写的随机数据生成器。


  • gommit - 分析 git 提交消息以确保它们遵循定义的模式。


  • gopsutil - 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台库。


  • gosh - 提供 Go 统计处理程序、结构、测量方法。


  • gosms - Go 中您自己的本地 SMS 网关,可用于发送 SMS。


  • gotoprom - 官方 Prometheus 客户端的类型安全指标构建器包装库。



  • gtree - 为从 Markdown 或以编程方式创建树输出和目录提供 CLI 和包。


  • health - 一个简单灵活的 Go 健康检查库。


  • health - 易于使用、可扩展的健康检查库。


  • healthcheck - 用于 RESTful 服务的自以为是的并发健康检查 HTTP 处理程序。


  • hostutils - 用于打包和解包 FQDN 列表的 golang 库。


  • indigo - 使用 Sonyflake 并由 Base58 编码的分布式唯一 ID 生成器。


  • lk - 一个简单的 golang 许可库。


  • llvm - 用于在纯 Go 中与 LLVM IR 交互的库。


  • 指标 - 指标检测和普罗米修斯博览会的库。


  • morse - 与莫尔斯电码相互转换的库。


  • numa - NUMA 是一个用 go 编写的实用程序库。它可以帮助我们编写一些 NUMA-AWARED 代码。



  • pdfgen - 从 Json 请求生成 PDF 的 HTTP 服务。


  • persian - go 中波斯语的一些实用程序。


  • sandid - 地球上的每一粒沙子都有自己的 ID。


  • shellwords - 根据 UNIX Bourne shell 的单词解析规则来操作字符串的 Golang 库。


  • shortid - 分布式生成超短、唯一、非顺序、URL 友好的 ID。


  • sayrrr - 通知库,可轻松访问各种消息服务,如 slack、mattermost、gotify 和 smtp 等。



  • stats - 监控 Go MemStats + 系统统计信息,例如内存、交换和 CPU,并通过 UDP 发送到您想要记录的任何地方等……



  • url-shortener - 一个现代、强大、健壮的 URL 缩短器微服务,支持 mysql。



  • varint - 一种比标准库中提供的更快的变长整数编​​码器/解码器。


  • xdg - 在 Go 中实现的 FreeDesktop.org (xdg) 规范。


  • xkg - X 键盘抓取器。


  • xz - 用于读取和写入 xz 压缩文件的纯 golang 包。




⬆ 回到顶部



自然语言处理



用于处理人类语言的库。



另请参阅 文本处理 文本分析



语言检测



  • detectlanguage - 语言检测 API Go 客户端。支持批量请求、短语或单字语言检测。




  • whatlanggo - Go 的自然语言检测包。支持 84 种语言和 24 种文字(书写系统,例如拉丁文、西里尔文等)。




形态分析仪



  • go-stem - 搬运工词干算法的实现。


  • go2vec - word2vec 嵌入的阅读器和实用功能。


  • golibstemmer - 雪球 libstemmer 库的 Go 绑定,包括 porter 2.





  • kagome - 用纯 Go 编写的 JP 形态分析器。


  • libtextcat - libtextcat C 库的 Cgo 绑定。保证与 2.2 版本的兼容性。


  • nlp - 从字符串中提取值并用 nlp 填充您的结构。


  • nlp - 支持 LSA(潜在语义分析)的 Go 自然语言处理库。



  • porter - 这是 Martin Porter 的 Porter 词干算法的 C 实现的一个相当简单的移植。


  • porter2 - 真正快速的 Porter 2 词干分析器。


  • RAKE.go - 快速自动关键字提取算法 (RAKE) 的 Go 端口。



  • spaGO - Go 中的自包含机器学习和自然语言处理库。


  • 拼写校正器 - 西班牙语拼写校正器或创建您自己的拼写校正器。




打浆机



  • go-slugify - 使用多种语言支持制作漂亮的 slug。


  • slug - URL 友好的 slugify,支持多种语言。


  • Slugify - 处理字符串的 slugify 应用程序。




分词器



  • gojieba - 这是 jieba 的 Go 实现, 是一种中文分词算法。


  • gotokenizer - 基于 Golang 的字典和 Bigram 语言模型的分词器。(现在只支持中文分词)


  • gse - 高效的文本分割;支持英文、中文、日文等。



  • prose - 支持标记化、词性标记、命名实体提取等的文本处理库。仅限英语。



  • 句子 - 句子标记器:将文本转换为句子列表。


  • shamoji - shamoji 是用 Go 编写的单词过滤包。


  • stemmer - Go 编程语言的 Stemmer 包。包括英语和德语词干分析器。


  • textcat - 用于基于 n-gram 的文本分类的 Go 包,支持 utf-8 和原始文本。




翻译



  • go-i18n - 用于处理本地化文本的软件包和随附工具。


  • go-localize - 简单易用的 i18n(国际化和本地化)引擎 - 用于翻译语言环境字符串。


  • go-mystem -CGo 绑定到 Yandex.Mystem - 俄罗斯形态分析仪。



  • gotext - 用于 Go 的 GNU gettext 实用程序。


  • icu - 用于 icu4c C 库检测和转换功能的 Cgo 绑定。保证与版本 50.1 的兼容性。


  • iuliia-go - 以各种可能的方式音译西里尔字母 → 拉丁语。


  • spreak - 基于 gettext 背后的概念的灵活翻译和人性化库。


  • t - golang 的另一个 i18n pkg,它遵循 GNU gettext 样式并支持 .po/.mo 文件: t.T (gettext) , t.N (ngettext) 等。它包含一个 cmd 工具 xtemplate ,它可以从 text/html 模板中提取消息作为 pot 文件。




音译






  • transliterator - 提供单向字符串音译,支持特定语言的音译规则。




⬆ 回到顶部



联网



用于处理网络各个层的库。



  • arp - 包 arp 实现 ARP 协议,如 RFC 826 中所述。


  • buffstreams - 通过 TCP 流式传输协议缓冲区数据变得容易。


  • canopus - CoAP 客户端/服务器实现 (RFC 7252).



  • dhcp6 - 包 dhcp6 实现 DHCPv6 服务器,如 RFC 3315 中所述。


  • dns - 用于处理 DNS 的 Go 库。



  • easytcp - 用 Go (Golang) 编写的轻量级 TCP 框架,使用消息路由器构建。EasyTCP 可帮助您轻松快速且不那么痛苦地构建 TCP 服务器。


  • ether - 用于发送和接收以太网帧的跨平台 Go 包。


  • ethernet - 包 ethernet 实现了 IEEE 802.3 Ethernet II 帧和 IEEE 802.1Q VLAN 标签的编组和解组。


  • fasthttp - 包 fasthttp 是 Go 的快速 HTTP 实现,比 net/http 快 10 倍。


  • fortio - 负载测试库和命令行工具、高级回显服务器和 Web UI。允许指定一组每秒查询负载并记录延迟直方图和其他有用的统计数据并绘制它们。Tcp、Http、gRPC。




  • fullproxy - 具有 SOCKS5、HTTP、原始端口和反向代理协议的功能齐全的可脚本化和守护进程可配置代理和旋转工具包。


  • gaio - 前摄器模式下 Golang 的高性能异步 io 网络。


  • gev - gev 是一个基于 Reactor 模式的轻量级、快速的非阻塞 TCP 网络库。


  • gldap -gldap 提供了一个 ldap 服务器实现,并且您为其 ldap 操作提供了处理程序。


  • gmqtt - Gmqtt 是一个灵活、高性能的 MQTT 代理库,完全实现了 MQTT 协议 V3.1.1。


  • gnet - gnet 是一个用纯 Go 编写的高性能、轻量级、非阻塞、事件驱动的网络框架。


  • gNxI - 一组使用 gNMI 和 gNOI 协议的网络管理工具。


  • go-getter - Go 库,用于使用 URL 从各种来源下载文件或目录。



  • go-stun - STUN 客户端的 Go 实现(RFC 3489 和 RFC 5389)。


  • gobgp - 用 Go 编程语言实现的 BGP。


  • gohooks -GoHooks 可以轻松地从 Go 应用程序发送和使用安全的 web-hook。受到 Spatie 的 Laravel Webhook 客户端和服务器的启发。


  • golibwireshark - 打包 golibwireshark 使用 libwireshark 库来解码 pcap 文件并分析解剖数据.


  • gopacket - 使用 libpcap 绑定进行数据包处理的 Go 库。



  • goshark - 包 goshark 使用 tshark 解码 IP 数据包并创建数据结构来分析数据包.


  • gosnmp - 用于执行 SNMP 操作的本机 Go 库。


  • gotcp - 用于快速编写 tcp 应用程序的 Go 包。


  • grab - 用于管理文件下载的 Go 包。


  • graval - 实验性 FTP 服务器框架。


  • HTTPLab - HTTPLabs 让您检查 HTTP 请求并伪造响应。


  • httpproxy - HTTP 代理处理程序和拨号程序。



  • jazigo - Jazigo 是一个用 Go 编写的工具,用于检索多个网络设备的配置.


  • kcp-go - KCP - 快速可靠的 ARQ 协议。


  • kcptun - 基于 KCP 协议的极其简单和快速的 udp 隧道。


  • lhttp - 强大的 websocket 框架,更轻松地构建您的 IM 服务器。


  • linkio - Reader/Writer 接口的网络链接速度模拟。


  • llb - 这是一个非常简单但快速的代理服务器后端。可用于快速重定向到具有零内存分配和快速响应的预定义域。


  • mdns - Golang 中的简单 mDNS(多播 DNS)客户端/服务器库。


  • mqttPaho - Paho Go 客户端提供 MQTT 客户端库,用于通过 TCP、TLS 或 WebSockets 连接到 MQTT 代理。


  • nbio - Pure Go 1000k+ 连接解决方​​案,支持 tls/http1.x/websocket 并基本兼容 net/http,具有高性能和低内存成本,非阻塞,事件驱动,易于使用。


  • netpoll - 字节跳动开发的专注于 RPC 场景的高性能非阻塞 I/O 网络框架。


  • NFF-Go - 用于快速开发云和裸机(前 YANFF)的高性能网络功能的框架。


  • packet - 通过 TCP 和 UDP 发送数据包。如果需要,它可以缓冲消息和热插拔连接。


  • panoptes-stream - 云原生分布式流网络遥测(gNMI、Juniper JTI 和 Cisco MDT)。


  • peerdiscovery - 纯 Go 库,用于使用 UDP 多播的跨平台本地对等点发现。


  • portproxy - 将 CORS 支持添加到不支持它的 API 的简单 TCP 代理。


  • publicip - 包 publicip 返回您面向公众的 IPv4 地址(互联网出口)。


  • quic-go - 纯 Go 中 QUIC 协议的实现。


  • raw - 包 raw 允许在网络接口的设备驱动程序级别读取和写入数据。



  • ssh - 用于构建 SSH 服务器的高级 API(包装 crypto/ssh)。


  • sslb - 这是一个超级简单的负载均衡器,只是一个实现某种性能的小项目。


  • stun - RFC 5389 STUN 协议的 Go 实现。


  • tcp_server - Go 库,用于更快地构建 tcp 服务器。


  • tspool - TCP 库使用工作池来提高性能并保护您的服务器。


  • utp - Go uTP 微传输协议实现。


  • vssh - 用于通过 SSH 协议构建网络和服务器自动化的 Go 库。



  • webrtc - WebRTC API 的纯 Go 实现。


  • winrm - 使用 WinRM 客户端在 Windows 机器上远程执行命令。


  • xtcp - 具有同时全双工通信、正常关闭和自定义协议的 TCP 服务器框架。




⬆ 回到顶部



HTTP 客户端



用于发出 HTTP 请求的库。



  • 绅士 - 功能齐全的插件驱动的 HTTP 客户端库。


  • go-cleanhttp - 轻松获取 stdlib HTTP 客户端,它不与其他客户端共享任何状态。




  • go-req - 声明式 golang HTTP 客户端。


  • go- retryablehttp -Go 中可重试的 HTTP 客户端。


  • go-zoox/fetch - 一个功能强大、轻量级、简单的 Http 客户端,受 Web Fetch API 的启发。


  • grequests - 伟大而著名的 Requests 库的 Go “克隆”。


  • heimdall - 具有重试和 hystrix 功能的增强型 http 客户端。


  • httpc - 一个可定制且简单的 HTTP 客户端库。仅依赖于 stdlib HTTP 客户端。


  • httpretry - 使用重试功能丰富了默认的 go HTTP 客户端。


  • pester - 使用重试、退避和并发进行 HTTP 客户端调用。


  • req - 带有 Black Magic 的简单 Go HTTP 客户端(代码更少,效率更高)。


  • request - golang 的 HTTP 客户端。如果你有关于 axios 或 requests 的经验,你会喜欢的。没有第三依赖。


  • requests - Gophers 的 HTTP 请求。使用 context.Context 并且不隐藏底层的 net/http.Client,使其与标准 Go API 兼容。还包括测试工具。


  • resty - 受 Ruby rest-client 启发的用于 Go 的简单 HTTP 和 REST 客户端。


  • rq - golang stdlib HTTP 客户端的更好接口。


  • sling - Sling 是一个 Go HTTP 客户端库,用于创建和发送 API 请求。




⬆ 回到顶部



OpenGL



在 Go 中使用 OpenGL 的库。



  • gl - 用于 OpenGL 的 Go 绑定(通过发光生成)。


  • glfw - GLFW 3 的 Go 绑定。



  • goxjs/gl - Go 跨平台 OpenGL 绑定(OS X、Linux、Windows、浏览器、iOS、Android)。


  • goxjs/glfw - 用于创建 OpenGL 上下文和接收事件的跨平台 glfw 库。


  • mathgl - 专门用于 3D 数学的纯 Go 数学包,灵感来自 GLM.




⬆ 回到顶部



甲骨文



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



  • cacheme - Go 的基于模式的类型化 Redis 缓存/memoize 框架。


  • ent - Go 的实体框架。用于建模和查询数据的简单但强大的 ORM。



  • go-pg - PostgreSQL ORM,专注于 PostgreSQL 特定功能和性能。


  • go-queryset - 100% 类型安全的 ORM,具有代码生成和基于 GORM 的 MySQL、PostgreSQL、Sqlite3、SQL Server 支持。



  • go-sqlbuilder - 一个灵活而强大的 SQL 字符串构建器库以及一个零配置 ORM。


  • go-store - 简单快速的 Redis 支持的 Go 键值存储库。


  • golobby/orm - 简单、快速、类型安全、通用的 orm,让开发者开心。


  • GORM - Golang 的出色 ORM 库,旨在对开发人员友好。


  • gormt - Mysql 数据库到 golang gorm 结构。


  • gorp -Go 关系持久性,用于 Go 的 ORM-ish 库。


  • grimoire -Grimoire 是 golang 的数据库访问层和验证. (支持:MySQL、PostgreSQL 和 SQLite3)。


  • lore -Go 的简单轻量级伪 ORM/伪结构映射环境。


  • marlow - 从项目结构生成的 ORM 以确保编译时安全。


  • pop/soda - MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。


  • Prisma - Prisma Client Go,Go 的 Typesafe 数据库访问。


  • 改革 - 基于非空接口和代码生成的 Go 更好的 ORM。


  • rel - Golang 的现代数据库访问层 - 可测试、可扩展并精心打造为干净优雅的 API。


  • SQLBoiler - ORM 生成器。生成为您的数据库模式量身定制的功能强大且速度极快的 ORM。


  • upper.io/db - 通过使用包装成熟数据库驱动程序的适配器与不同数据源交互的单一接口。


  • XORM - 用于 Go 的简单而强大的 ORM。(支持:MySQL、MyMysql、PostgreSQL、Tidb、SQLite3、MsSql 和 Oracle)。


  • Zoom - 基于 Redis 构建的超快数据存储和查询引擎。




⬆ 回到顶部



包管理



用于依赖和包管理的官方工具



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




包管理的官方实验工具



  • dep - Go 依赖工具。


  • vgo - 版本化的 Go。




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



  • glide - 轻松管理您的 golang 供应商和供应商包。受到 Maven、Bundler 和 Pip 等工具的启发。


  • godep - go 的依赖工具,godep 通过修复它们的依赖关系来帮助构建包的可重复性。


  • gom - Go 管理器 - 用于 go 的捆绑包。


  • goop - Go (golang) 的简单依赖管理器,受 Bundler 启发。




  • govendor -Go 包管理器。使用标准供应商文件的 Go 供应商工具。


  • gpm -Go 的准系统依赖管理器。



  • modgv - 将“go mod graph”输出转换为 Graphviz 的 DOT 语言。


  • mvn-golang - 插件,提供在 Maven 项目基础设施中自动加载 Golang SDK、依赖管理和启动构建环境的方式。


  • nut - 供应商 Go 依赖项。


  • VenGO - 创建和管理可导出的隔离 Go 虚拟环境。




⬆ 回到顶部



表现




  • pixie - 没有通过 eBPF 对 Golang 应用程序进行仪器跟踪。



  • statsviz - Go 应用程序运行时统计数据的实时可视化。


  • tracer - 简单、轻量级的跟踪。




⬆ 回到顶部



查询语言




  • dasel - 使用命令行中的选择器查询和更新数据结构。与 jq/yq 类似,但支持 JSON、YAML、TOML 和 XML,运行时依赖项为零。


  • gojsonq - 一个简单的 Go 包,用于查询 JSON 数据。


  • goven - 适用于任何数据库模式的插入式查询语言。


  • gqlgen - 生成基于 graphql 服务器库。


  • graphql -graphql 解析器 + 实用程序。


  • graphql - 专注于易用性的 GraphQL 服务器。



  • gws -Apollos 的“Websocket 上的 GraphQL”客户端和服务器实现。


  • jsonpath - 一个基于 JSONPath 语法检索部分 JSON 的查询库。



  • jsonslice - 带有高级过滤器的 Jsonpath 查询。


  • rql - REST API 的资源查询语言。


  • rqp - REST API 的查询解析器。查询中直接支持过滤、验证等 AND 操作。 OR


  • straf - 轻松将 Golang 结构转换为 GraphQL 对象。




⬆ 回到顶部



资源嵌入



  • debme embed.FS -从现有 embed.FS 子目录创建一个。


  • esc - 将文件嵌入 Go 程序并为它们提供 http.FileSystem 接口。


  • fileb0x - 将文件嵌入到 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 文件。




⬆ 回到顶部



科学与数据分析



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



  • assocentity - 包关联性返回单词到给定实体的平均距离。




  • chart -Go 的简单图表绘图库。支持多种图表类型。


  • dataframe -go - 用于机器学习和统计的数据帧(类似于 pandas)。


  • decimal - 包 decimal 实现任意精度的十进制浮点运算。


  • evaler - 简单的浮点算术表达式求值器。


  • ewma - 指数加权移动平均线。


  • geom - golang 的 2D 几何。




  • go-gt - 用“Go”语言编写的图论算法。


  • godesim - 扩展/多变量 ODE 求解器框架,用于使用简单 API 进行基于事件的模拟。


  • goent - 熵测量的 GO 实施。



  • gonum -Gonum 是一组用于 Go 编程语言的数字库。它包含矩阵、统计、优化等库。


  • gonum/plot - gonum/plot 提供了一个用于在 Go 中构建和绘制绘图的 API。


  • goraph - 纯 Go 图论库(数据结构,算法可视化)。


  • gosl - 用于线性代数、FFT、几何、NURBS、数值方法、概率、优化、微分方程等的 Go 科学库。


  • GoStats - GoStats 是一个开源 GoLang 库,用于主要用于机器学习领域的数学统计,它涵盖了大多数统计度量函数。



  • jsonl-graph - 使用 graphviz 支持操作 JSONL 图的工具。


  • ode - 常微分方程 (ODE) 求解器,支持扩展状态和基于通道的迭代停止条件。


  • orb - 具有裁剪、GeoJSON 和 Mapbox 矢量平铺支持的 2D 几何类型。


  • pagerank -Go 中实现的加权 PageRank 算法。



  • PiHex - 实现十六进制数 Pi 的“Bailey-Borwein-Plouffe”算法。



  • sparse - Go 稀疏矩阵格式,用于支持科学和机器学习应用的线性代数,与 gonum 矩阵库兼容。


  • stats -Golang 标准库中缺少常用功能的统计包。



  • TextRank - Golang 中的 TextRank 实现,具有可扩展的功能(摘要、加权、短语提取)和多线程(goroutine)支持。


  • triangolatte - 2D 三角测量库。允许将线和多边形(均基于点)转换为 GPU 的语言。




⬆ 回到顶部



安全



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



  • acmetool - 具有自动续订功能的 ACME(Let's Encrypt)客户端工具。


  • acra - 保护基于数据库的应用程序免受数据泄露的网络加密代理:强选择性加密、SQL 注入预防、入侵检测系统。


  • age - 一个简单、现代且安全的加密工具(和 Go 库),具有小的显式密钥、无配置选项和 UNIX 风格的可组合性。


  • argon2-hashing - 围绕 Go 的 argon2 包的轻量级包装器,与 Go 的标准库 Bcrypt 和 simple-scrypt 包密切相关。


  • argon2pw - 具有恒定时间密码比较的 Argon2 密码哈希生成。


  • autocert - 自动配置让我们加密证书并启动 TLS 服务器。


  • BadActor - 本着 fail2ban 精神构建的内存中、应用程序驱动的监狱器。


  • Cameradar - 远程破解来自监控摄像头的 RTSP 流的工具和库。


  • 证书 - 用于生成 tls 证书的自以为是的工具。


  • CertMagic - 成熟、强大和强大的 ACME 客户端集成,用于完全托管的 TLS 证书颁发和更新。


  • Coraza - 企业级、modsecurity 和 OWASP CRS 兼容的 WAF 库。


  • dongle - 一个简单、语义和开发人员友好的 golang 包,用于编码和解码以及加密和解密。


  • firewalld-rest - 在 linux 服务器上动态更新 firewalld 规则的 rest 应用程序。





  • go-yara - YARA 的Go Bindings ,“用于恶意软件研究人员(和其他所有人)的模式匹配瑞士刀”.


  • goArgonPass - Argon2 密码哈希和验证,旨在与现有的 Python 和 PHP 实现兼容。



  • Interpol - 用于模糊测试和渗透测试的基于规则的数据生成器。


  • lego - Pure Go ACME 客户端库和 CLI 工具(用于 Let's Encrypt).


  • memguard - 一个纯 Go 库,用于处理内存中的敏感值。


  • nacl - NaCL API 集的 Go 实现。



  • passlib - 面向未来的密码哈希库。


  • 秘密 - 防止您的秘密泄露到日志、std* 等中。


  • 安全 - 用于 Go 的 HTTP 中间件,有助于快速获得一些安全性胜利。


  • secureio io.ReadWriteCloser -基于 XChaCha20-poly1305、ECDH 和 ED25519 的密钥交换 + 身份验证 + 加密包装器和多路复用器。


  • simple-scrypt - Scrypt 包,具有​​简单、明显的 API 和内置的自动成本校准。



  • sslmgr - 使用 acme/autocert 的高级包装器使 SSL 证书变得容易。


  • themis - 用于解决典型数据安全任务(安全数据存储、安全消息传递、零知识证明身份验证)的高级加密库,可用于 14 种语言,最适合多平台应用程序。




⬆ 回到顶部



序列化



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




  • bambam - 来自 Go 的 Cap'n Proto 模式的生成器。


  • bel - 从 Go 结构/接口生成 TypeScript 接口。对 JSON RPC 很有用。


  • binstruct - Golang 二进制解码器,用于将数据映射到结构中。


  • cbor - 小型、安全且简单的 CBOR 编码和解码库。


  • colfer - Colfer 二进制格式的代码生成。


  • csvutil - 高性能、惯用的 CSV 记录编码和解码为原生 Go 结构。


  • elastic - 在运行时转换不同类型的切片、映射或任何其他未知值,无论如何。


  • fixedwidth - 固定宽度的文本格式(支持 UTF-8)。




  • go-codec - 用于 msgpack、cbor 和 json 的高性能、功能丰富、惯用的编码、解码和 rpc 库,具有基于运行时的 OR 代码生成支持。




  • goprotobuf - 以库和协议编译器插件的形式支持 Google 的协议缓冲区。


  • jsoniter - 高性能 100% 兼容的“encoding/json”替代品。


  • mapstructure - 用于将通用地图值解码为原生 Go 结构的 Go 库。


  • php_session_decoder - GoLang 库,用于处理 PHP 会话格式和 PHP 序列化/反序列化函数。


  • pletter - 为消息代理包装原始消息的标准方法。


  • structomap - 用于从静态结构轻松动态地生成地图的库。


  • unitpacking - 将单位向量打包成尽可能少的字节的库。




⬆ 回到顶部



服务器应用程序



  • algernon - HTTP/2 Web 服务器,内置对 Lua、Markdown、GCSS 和 Amber 的支持。


  • Caddy - Caddy 是一种替代的 HTTP/2 Web 服务器,易于配置和使用。


  • consul - Consul 是一个用于服务发现、监控和配置的工具。


  • cortex-tenant - Prometheus 远程写入代理,添加基于度量标签的添加 Cortex 租户 ID 标头。


  • devd - 开发人员的本地网络服务器。


  • 发现 - 用于弹性中间层负载平衡和故障转移的注册表。


  • dudeldu - 一个简单的 SHOUTcast 服务器。


  • dummy - 使用一个命令根据 API 合约运行模拟服务器。


  • Easegress - 具有可观察性和可扩展性的云原生高可用性/性能流量编排系统。


  • etcd - 用于共享配置和服务发现的高可用键值存储。


  • Euterpe - 具有内置 Web UI 和 REST API 的自托管音乐流媒体服务器。


  • 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 的反向代理,并从lets-encrypt 发出证书。


  • minio - Minio 是一个分布式对象存储服务器。


  • Moxy - Moxy 是一个简单的模拟程序和代理应用程序服务器,您可以创建模拟端点以及代理请求,以防端点不存在模拟。



  • nsq - 一个实时分布式消息传递平台。


  • protox - 将 JSON 请求正文转换为协议缓冲区的代理服务器。


  • psql-streamer - 将数据库事件从 PostgreSQL 流式传输到 Kafka。


  • riemann-relay - 用于负载平衡 Riemann 事件和/或将它们转换为 Carbon 的中继。


  • RoadRunner - 高性能 PHP 应用程序服务器、负载平衡器和进程管理器。


  • SFTPGo - 功能齐全且高度可配置的 SFTP 服务器,具有可选的 FTP/S 和 WebDAV 支持。它可以服务于本地文件系统和云存储后端,例如 S3 和谷歌云存储。


  • simple-jwt-provider - 展示 JWT 的简单轻量级提供程序,支持登录、密码重置(通过邮件)和用户管理。


  • Trickster - HTTP 反向代理缓存和时间序列加速器。


  • Wish - 像这样制作 SSH 应用程序!




⬆ 回到顶部



流处理



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




  • goio -Golang 的 IO、Stream、Fiber 的实现,灵感来自很棒的 Scala 库 cat 和 fs2.


  • machine - 用于编写和生成具有内置指标和可追溯性的流工作者的 Go 库。


  • stream - Go Stream,如 Java 8 Stream:Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce…




⬆ 回到顶部



模板引擎



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



  • ego - 轻量级模板语言,可让您在 Go 中编写模板。模板被翻译成 Go 并编译。


  • extemplate - 围绕 html/template 的微小包装器,以允许基于文件的简单模板继承。



  • gospin - 文章旋转和 spintax/spinning 语法引擎,对 A/B、测试文本/文章片段和创建更自然的对话很有用。


  • got - 受 Hero 和 Fasttemplate 启发的 Go 代码生成器。包含文件、自定义标签定义、注入的 Go 代码、语言翻译等。


  • goview -Goview 是一个基于 golang html/template 的轻量级、极简主义和惯用的模板库,用于构建 Go Web 应用程序。


  • jet - Jet 模板引擎。


  • 液体 - 去实施 Shopify 液体模板。


  • maroto - 创建 PDF 的 maroto 方式。Maroto 受到 Bootstrap 的启发并使用 gofpdf。快速简单。


  • pongo2 - 类似 Django 的 Go 模板引擎。


  • quicktemplate - 快速、强大且易于使用的模板引擎。将模板转换为 Go 代码,然后编译它。



  • Razor - Golang 的 Razor 视图引擎.



  • sprig - Go 模板的有用模板函数。


  • tbd - 一种使用占位符创建文本模板的非常简单的方法 - 公开了额外的内置 Git 存储库元数据。




⬆ 回到顶部



测试



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



  • 测试框架


    • apitest - 用于基于 REST 的服务或 HTTP 处理程序的简单且可扩展的行为测试库,支持模拟外部 http 调用和序列图的呈现。


    • assert - 与原生 go 测试一起使用的基本断言库,具有自定义断言的构建块。


    • badio - Go testing/iotest 包的扩展。


    • baloo - 富有表现力和多功能的端到端 HTTP API 测试变得容易。


    • be - 极简的通用测试断言库。


    • biff - 分叉测试框架,BDD 兼容。


    • charlatan - 为测试生成假接口实现的工具。


    • command - 用于在 windows、linux 和 osx 上测试 cli 应用程序的工具。


    • covergates - 自托管代码覆盖率报告审查和管理服务。


    • cupaloy - 用于测试框架的简单快照测试插件。


    • dbcleaner - 用于测试目的的清洁数据库,灵感来自 database_cleaner Ruby。


    • dsunit - SQL、NoSQL、结构化文件的数据存储测试。


    • Embedded-postgres - 在 Linux、OSX 或 Windows 上本地运行真正的 Postgres 数据库,作为另一个 Go 应用程序或测试的一部分。


    • endly - 声明式端到端功能测试。


    • fixenv - 夹具管理引擎,灵感来自 pytest 夹具。


    • flute - HTTP 客户端测试框架。





    • gnomock - 在 Docker 中运行的具有真实依赖项(数据库、缓存,甚至 Kubernetes 或 AWS)的集成测试,无需模拟。


    • go-carpet - 在终端中查看测试覆盖率的工具。


    • go-cmp - 用于在测试中比较 Go 值的包。


    • go-hit -Hit 是一个用 golang 编写的 http 集成测试框架。




    • go-snaps -Golang 中类似 Jest 的快照测试。


    • go-testdeep - 极其灵活的 golang 深度比较,扩展了 go 测试包。



    • go-vcr - 记录和重放您的 HTTP 交互,以进行快速、确定性和准确的测试。


    • goblin - 类似 Mocha 的 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 testing -通过利用 Go1.7 的子测试,带来带有设置/拆卸工具的轻量级测试套件。


    • got - 一个令人愉快的 golang 测试框架。


    • gotest.tools - 一组包,用于扩充 go testing 包并支持常见模式。


    • Hamcrest - 用于声明性 Matcher 对象的流畅框架,当应用于输入值时,会产生自描述结果。


    • httpexpect - 简洁、声明性且易于使用的端到端 HTTP 和 REST API 测试。


    • is - Go 的专业轻量级测试迷你框架。


    • jsonassert - 用于验证您的 JSON 有效负载是否正确序列化的包。



    • restit - 帮助编写 RESTful API 集成测试的微型框架。


    • schema - 请求和响应中使用的 JSON 模式的快速简便的表达式匹配。



    • testcase - 行为驱动开发的惯用测试框架。


    • testfixtures - Rails 的帮助程序,用于测试数据库应用程序的测试装置。


    • Testify - 标准 go 测试包的神圣扩展。


    • testmd - 将 markdown 片段转换为可测试的 go 代码。


    • testsql - 测试前从 SQL 文件生成测试数据,完成后清除。


    • testza - 功能齐全的测试框架,具有漂亮的彩色输出。


    • trial - 快速简单的可扩展断言,无需引入太多样板。


    • Tt - 简单而多彩的测试工具。


    • wstest - 用于对 websocket http.Handler 进行单元测试的 Websocket 客户端。






    • genmock - 带有代码生成器的 Go 模拟系统,用于构建接口方法的调用。



    • go-sqlmock - 用于测试数据库交互的模拟 SQL 驱动程序。


    • go-txdb - 基于单一事务的数据库驱动程序,主要用于测试目的。


    • gock - 多功能 HTTP 模拟变得容易。


    • gomock - Go 编程语言的模拟框架。


    • govcr - Golang 的 HTTP 模拟:记录和重放 HTTP 交互以进行离线测试。


    • hoverfly - HTTP(S) 代理,用于使用可扩展的中间件和易于使用的 CLI 记录和模拟 REST/SOAP API。


    • httpmock - 轻松模拟来自外部资源的 HTTP 响应。




    • mockhttp - Go http.ResponseWriter 的模拟对象。


    • mockit - 允许函数和方法轻松模拟,无需定义新类型;它类似于 Java 的 Mockito。


    • timex time - 本机包的测试友好替代品。





  • 模糊和增量调试/减少/缩小。



    • gofuzz - 用随机值填充 go 对象的库。


    • Tavor - 通用的 fuzzing 和 delta 调试框架。





  • Selenium 和浏览器控制工具。


    • cdp - Chrome 调试协议的类型安全绑定,可与实现它的浏览器或其他调试目标一起使用。


    • chromedp - 一种驱动/测试 Chrome、Safari、Edge、Android Webview 和其他支持 Chrome 调试协议的浏览器的方法。


    • ggr - 一个轻量级服务器,将 Selenium WebDriver 请求路由和代理到多个 Selenium 集线器。


    • playwright-go - 浏览器自动化库,通过单个 API 控制 Chromium、Firefox 和 WebKit。


    • rod - 一个 Devtools 驱动程序,使 Web 自动化和抓取变得容易。


    • selenoid - 在容器中启动浏览器的替代 Selenium 集线器服务器。










⬆ 回到顶部



文本处理



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



另请参阅 自然语言处理 文本分析



格式化程序



  • address - 处理地址表示、验证和格式化。


  • align - 对齐文本的通用应用程序。


  • bytes - 格式化和解析数字字节值(10K、2M、3G 等)。


  • go-fixedwidth - 固定宽度的文本格式(带反射的编码器/解码器)。


  • go-humanize - 将时间、数字和内存大小格式化为人类可读格式。


  • gotabulate - 使用 Go 轻松漂亮地打印您的表格数据。


  • textwrap - 在行尾换行文本。 textwrap 从 Python实现模块。




标记语言



  • bafi - 使用模板将通用 JSON、BSON、YAML、XML 翻译成任何格式。


  • bbConvert - 将 bbCode 转换为 HTML,允许您添加对自定义 bbCode 标签的支持。



  • github_flavored_markdown - GitHub 风格的 Markdown 渲染器(使用 blackfriday),带有围栏代码块突出显示,可点击的标题锚链接。


  • go-output-format - 在命令行应用程序中将 go 结构输出为多种格式(YAML/JSON/等)。


  • go-toml - 带有查询支持和方便的 cli 工具的 TOML 格式的 Go 库。


  • goldmark - 用 Go 编写的 Markdown 解析器。易于扩展,符合标准 (CommonMark),结构良好。


  • goq - 使用带有 jQ​​uery 语法的 struct 标记对 HTML 进行声明式解组(使用 GoQuery)。


  • html-to-markdown - 将 HTML 转换为 Markdown。甚至适用于整个网站,并且可以通过规则进行扩展。


  • htmlquery - 用于 HTML 的 XPath 查询包,允许您通过 XPath 表达式从 HTML 文档中提取数据或求值。


  • mxj - 将 XML 编码/解码为 JSON 或 map[string]interface{};使用点符号路径和通配符提取值。替换 x2j 和 j2x 包。


  • toml - TOML 配置格式(带反射的编码器/解码器)。




解析器/编码器/解码器



  • allot - CLI 工具和机器人的占位符和通配符文本解析。


  • codetree - 解析缩进代码(python、pixy、scarlet 等)并返回树结构。



  • did -Go 中的 DID(去中心化标识符)解析器和 Stringer。


  • doi -Go 中的文档对象标识符 (doi) 解析器。



  • encdec - 包为编码器和解码器提供通用接口。





  • gofeed - 在 Go 中解析 RSS 和 Atom 提要。





  • normalize - 清理、规范化和比较模糊文本。


  • omn​​iparser - 一个多功能 ETL 库,以流方式解析文本输入 (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc),并使用数据驱动模式将数据转换为 JSON 输出。


  • parseargs-go - 理解引号和反斜杠的字符串参数解析器。


  • parth - URL 路径分段解析。



  • sh - Shell 解析器和格式化程序。


  • tokenizer — 将任何字符串、切片或无限缓冲区解析为任何标记。


  • when - 具有可插入规则的自然 EN 和 RU 语言日期/时间解析器。


  • xj2go - 将 xml 或 json 转换为 go struct。




常用表达



  • genex - 计算正则表达式并将其扩展为所有匹配的字符串。



  • goregen - 用于从正则表达式生成随机字符串的库。


  • regroup - 使用结构标签和自动解析将命名组的正则表达式匹配到 go 结构中。


  • rex - 正则表达式生成器。




卫生







刮板



  • colly - 快速优雅的 Gophers 抓取框架。


  • dataflowkit - 将网站转换为结构化数据的 Web 抓取框架。


  • GoQuery - GoQuery 为 Go 语言带来了类似于 jQuery 的语法和一组特性。


  • gospider - 一个简单的 golang 蜘蛛/抓取框架,用 3 行构建一个蜘蛛。 从goribot 迁移而来


  • pagser - Pagser 是一个简单、可扩展、可配置的解析和反序列化 html 页面,以基于 goquery 和 struct 标签的 golang 爬虫。


  • Tagify - 从给定的源生成一组标签。


  • xurls - 从文本中提取 url。






  • podcast -Golang 中的 iTunes 兼容和 RSS 2.0 播客生成器


  • syndfeed - Atom 1.0 和 RSS 2.0 的联合提要。




实用程序/杂项





  • kace - 涵盖常见首字母缩写的常见案例转换。


  • petrovich - Petrovich 是一个库,它可以根据给定的语法大小写俄语名称。


  • radix - 快速字符串排序算法。


  • TySug - 关于键盘布局的替代建议。




⬆ 回到顶部



第三方 API



用于访问第三方 API 的库。





  • anaconda - Twitter 1.1 API 的 Go 客户端库。



  • aws-sdk-go - Go 编程语言的官方 AWS 开发工具包。





  • circleci - 用于与 CircleCI 的 API 交互的 Go 客户端库。


  • clarifai - 用于与 Clarifai API 交互的 Go 客户端库。


  • codeship-go - 用于与 Codeship 的 API v2 交互的 Go 客户端库。






  • ethrpc - 以太坊 JSON RPC API 的 Go 绑定。


  • facebook - 支持 Facebook Graph API 的 Go 库。



  • fcm - Firebase 云消息传递的 Go 库。


  • gads - 谷歌 Adwords 非官方 API。


  • gami - Asterisk Manager 界面的 Go 库。


  • gcm - 谷歌云消息传递的 Go 库。



  • github - 用于访问 GitHub REST API v3 的 Go 库。


  • githubql - 用于访问 GitHub GraphQL API v4 的 Go 库。



  • go-aws-news - Go 应用程序和库以从 AWS 获取新内容。




  • go-here - 围绕基于 HERE 位置的 API 的客户端库。


  • go-hibp - 简单的 Go 绑定到“我被 Pwned”API。





  • go-marathon - 用于与 Mesosphere 的 Marathon PAAS 交互的 Go 库。











  • go-twitch - 用于与 Twitch v3 API 交互的 Go 客户端。






  • goagi - 构建 Asterisk PBX agi/fastagi 应用程序的 Go 库。


  • goami2 - 用于 Asterisk PBX 的 AMI v2 库。




  • golyrics -Golyrics 是一个 Go 库,用于从 Wikia 网站获取音乐歌词数据。




  • google - 为 Go 自动生成的 Google API。







  • gosip - Go 客户端库 SharePoint API。


  • gostorm -GoStorm 是一个 Go 库,它实现了在 Go 中编写与 Storm shell 通信的 Storm spout 和 Bolts 所需的通信协议.


  • hipchat - 该项目为 Hipchat API 实现了一个 golang 客户端库。








  • Medium - 用于 Medium 的 OAuth2 API 的 Golang SDK。



  • minio-go - 适用于 Amazon S3 兼容云存储的 Minio Go 库。


  • mixpanel -Mixpanel 是一个库,用于跟踪事件并将 Mixpanel 配置文件更新从您的 Go 应用程序发送到 Mixpanel.




  • paypal - PayPal 支付 API 的包装器。





  • rrdaclient - 访问 statdns.com API 的 Go 库,这又是 RRDA API。基于 HTTP 的 DNS 查询。


  • shopify - 去图书馆向 Shopify API 发出 CRUD 请求。


  • simples3 - 简单的 AWS S3 库,使用 REST 和用 Go 编写的 V4 签名。



  • smite - Go 包以包装对 Smite 游戏 API 的访问。


  • spotify - 去图书馆访问 Spotify WEB API。


  • steam - 去图书馆与 Steam 游戏服务器交互。


  • stripe - Stripe API 的 Go 客户端。


  • textbelt - textbelt.com txt 消息 API 的 Go 客户端。



  • Trello - Trello API 的 Go 包装器。



  • tumblr - Tumblr v2 API 的包装器。


  • twitter-scraper - 在没有身份验证和限制的情况下抓取 Twitter 前端 API。


  • uptimerobot - Uptime Robot v2 API 的 Go 包装器和命令行客户端。


  • vl-go - 围绕 VerifID 身份验证层 API 的客户端库。


  • webhooks - GitHub 和 Bitbucket 的 Webhook 接收器。


  • wit-go - 用于 wit.ai HTTP API 的 Go 客户端。


  • ynab - YNAB API 的包装器。


  • zooz - Zooz API 的 Go 客户端。




⬆ 回到顶部



实用程序



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



  • apm - 带有 HTTP API 的 Golang 应用程序的进程管理器。


  • backscanner - 类似于 bufio.Scanner 的扫描器,但它以相反的顺序读取和返回行,从给定位置开始并向后移动。


  • 超越 - 将带您进入 AOP 世界的 Go 工具!


  • 空白 - 验证或删除字符串中的空白和空格。


  • bleep - 在 Go 中对任何一组 OS 信号执行任意数量的操作。


  • 锅炉 - 极快的 CLI 工具,用于从样板模板创建项目。


  • changie - 自动更改日志工具,用于准备具有许多自定义选项的版本。


  • chyle - 使用具有多种配置可能性的 git 存储库的变更日志生成器。


  • circuit - 一个高效且功能完整的 Hystrix,如断路器模式的 Go 实现。





  • cmd - 用于在 osx、windows 和 linux 上执行 shell 命令的库。


  • command - 带有线程安全串行和并行调度程序的 Go 命令模式。


  • copy - 用于快速复制不同类型结构的包。


  • copy-pasta - 通用多工作站剪贴板,使用类似 S3 的后端进行存储。


  • 国家 - 全面实施 ISO-3166-1、ISO-4217、ITU-T E.164、Unicode CLDR 和 IANA ccTLD 标准。


  • create-go-app - 一个强大的 CLI,用于通过运行一个命令创建具有后端(Golang)、前端(JavaScript、TypeScript)和部署自动化(Ansible、Docker)的新生产就绪项目。


  • cryptgo - Crytpgo 是一个基于 TUI 的应用程序,纯粹用 Go 编写,用于实时监控和观察加密货币价格!



  • ctxutil - 上下文实用函数的集合。


  • cvt - 轻松安全地将任何值转换为另一种类型。


  • dbt - 用于从中央可信存储库运行自更新签名二进制文件的框架。


  • Death - 使用信号管理 go 应用程序关闭。




  • dlog - 编译时控制的记录器,在不删除调试调用的情况下使您的版本更小。


  • EaseProbe - 一个简单、独立且轻量级的工具,可以执行健康/状态检查守护进程,支持 HTTP/TCP/SSH/Shell/Client/... 探测和 Slack/Discord/Telegram/SMS... 通知。


  • equalizer - Go 的配额管理器和速率限制器集合。


  • ergo - 在不同端口上运行的多个本地服务的管理变得容易。


  • evaluator - 根据 s-expression 动态评估表达式。它简单且易于扩展。


  • filetype - 用于推断文件类型检查幻数签名的小包。


  • 填充器 - 使用“填充”标签填充结构的小实用程序。


  • filter - 提供 Go 数据的过滤、清理和转换。


  • fzf - 用 Go 编写的命令行模糊查找器。


  • generate - 在指定的路径或环境变量上递归运行 go generate 并且可以通过正则表达式进行过滤。


  • ghokin - 并行格式化程序,对小黄瓜没有外部依赖项(黄瓜,behat ......)。



  • gitbatch - 在一处管理您的 git 存储库。




  • go-bind-plugin - go:generate 用于包装由 golang 插件导出的符号的工具(仅限 1.8).


  • go-bsdiff - 纯 Go bsdiff 和 bspatch 库和 CLI 工具。


  • go-clip - 适用于 Mac 的简约剪贴板管理器。


  • go-convert - 包 go-convert 使您能够将值转换为另一种类型。



  • go-dry -Go 的 DRY(不要重复自己)包.


  • go-funk - 现代 Go 实用程序库,提供帮助程序(map、find、contains、filter、chunk、reverse 等)。


  • go-health - 健康包简化了您将健康检查添加到服务的方式。



  • go-lock - go-lock 是一个锁库,实现了读写互斥锁和读写 trylock 而没有饥饿。







  • go-trigger -Go-lang 全局事件触发器,使用 id 注册事件并从项目的任何位置触发事件。


  • go-type - 提供用于存储/验证和传输 ISO-4217、ISO-3166 和其他类型的 Go 类型的库。


  • goback - 去简单的指数退避包。


  • goctx - 以高性能获取您的上下文价值。



  • godropbox - 用于从 Dropbox 编写 Go 服务/应用程序的通用库。


  • gohper - 各种工具/模块有助于开发。


  • golarm - 带有系统事件的火警。


  • golog - 简单轻量级的 CLI 工具,用于时间跟踪您的任务。


  • gopencils - 小而简单的包,可轻松使用 REST API。



  • goreadability - 使用 Facebook Open Graph 和 arc90 的可读性的网页摘要提取器.


  • goreleaser - 尽可能快速轻松地交付 Go 二进制文件。


  • goreporter - 执行静态分析、单元测试、代码审查和生成代码质量报告的 Golang 工具。


  • goseaweedfs - 具有几乎全部功能的 SeaweedFS 客户端库。



  • gotenv .env - 从 Go或任何 io.Reader Go 中加载环境变量。


  • goval - 评估 Go 中的任意表达式。


  • gpath - 使用 Go 的反射表达式简化访问结构字段的库。


  • grofer - 用 Golang 编写的系统和资源监控工具!


  • gubrak - 带有语法糖的 Golang 实用程序库。这就像 lodash,但对于 golang。


  • 方便 - 许多实用程序和助手,如字符串处理程序/格式化程序和验证器。


  • hostctl - 使用简单命令管理 /etc/hosts 的 CLI 工具。


  • htcat - 并行和流水线 HTTP GET 实用程序。


  • 集线器 - 使用附加功能包装 git 命令以从终端与 github 交互。


  • hystrix-go - 实现程序员定义的后备(也称为断路器)的 Hystrix 模式。


  • immortal - *nix 跨平台(与操作系统无关)主管。


  • 内在 - 使用 x86 SIMD 而不编写任何汇编代码。


  • jsend - 用 Go 编写的 JSend 实现。


  • jump - Jump 通过学习你的习惯来帮助你更快地导航。


  • koazee - 受懒惰评估和函数式编程启发的库,可以消除使用数组的麻烦。


  • lancet - 一个全面、高效、可重用的 go 实用函数库。


  • Lets-go - 为云原生 REST API 开发提供通用实用程序的 Go 模块。还包含 AWS 特定实用程序。


  • limiters - Golang 中分布式应用程序的速率限制器,具有可配置的后端和分布式锁。


  • lo - 基于 Go 1.18+ 泛型(映射、过滤器、包含、查找...)的类似 Lodash 的 Go 库


  • loncha - 高性能切片实用程序。



  • mani - CLI 工具,可帮助您管理多个存储库。


  • mc - Minio Client 提供了最少的工具来使用与 Amazon S3 兼容的云存储和文件系统。


  • mergo - 在 Golang 中合并结构和映射的助手。用于配置默认值,避免混乱的 if 语句。


  • mimemagic - Pure Go 超高性能 MIME 嗅探库/实用程序.



  • mimetype - 基于幻数的 MIME 类型检测包。


  • minify - HTML、CSS、JS、XML、JSON 和 SVG 文件格式的快速缩小器。


  • minquery - 支持高效分页的 MongoDB / mgo.v2 查询(光标继续列出我们离开的文档).


  • Moldova - 基于输入模板生成随机数据的实用程序。


  • 摩尔 - cli 应用程序可以轻松创建 ssh 隧道。


  • mongo-go-pagination - 官方 mongodb/mongo-go-driver 包的 Mongodb 分页,支持普通查询和聚合管道。


  • mssqlx - 数据库客户端库,任何主从代理,主主结构。考虑到轻量级和自动平衡。



  • myhttp - 使用超时支持发出 HTTP GET 请求的简单 API。


  • netbug - 轻松远程分析您的服务。


  • nfdump - 读取 nfdump 网络流文件。





  • olaf - 在 Go 中实现的 Twitter 雪花。


  • onecache - 支持多个后端存储(Redis、Memcached、文件系统等)的缓存库。


  • panicparse - 对类似的 goroutine 进行分组并对堆栈转储进行着色。



  • peco - 简单的交互式过滤工具。


  • pgo - PHP 社区的便捷功能。


  • pm - 带有 HTTP API 的进程(即 goroutine)管理器。


  • 指针 - 包指针包含帮助程序,用于简化基本类型的可选字段的创建。


  • ptr - 提供用于从基本类型的常量简化创建指针的功能的包。


  • rclient - 可读、灵活、易于使用的 REST API 客户端。


  • reflectutils - 使用反射的助手:结构标记解析;递归行走;从字符串填充值。


  • repeat - 执行不同的退避策略,用于重试操作和心跳。



  • rerun - 源更改时重新编译和重新运行 go 应用程序。


  • rest-go - 一个包,提供了许多使用 rest api 的有用方法。


  • retry - 重复执行操作直到成功的最先进的功能机制。


  • retry - 一个简单但高度可配置的 Go 重试包。


  • retry - 简单易用的 Go 重试机制包。


  • retry - 一个非常简单的库,可确保您完成工作。


  • retry-go - 重试使 golang 变得简单易行。


  • 稳健 - 弹性运行功能,捕获并重新启动恐慌。


  • rospo - 简单可靠的 ssh 隧道,在 Golang 中具有嵌入式 ssh 服务器。


  • scan - 将 golang sql.Rows 直接扫描到结构、切片或原始类型。


  • scany - 用于将数据库中的数据扫描到 Go 结构等的库。


  • serve - 您需要的任何地方的静态 http 服务器。


  • set - 高性能和灵活的结构映射和松散的类型转换。


  • shutdown os.Signal - 用于处理的应用程序关闭挂钩。


  • Silk - 读取 Silk netflow 文件。


  • slice - 用于常见 Go 切片操作的类型安全函数。




  • sorty - 快速并发/并行排序。


  • sqlx - 在优秀的内置数据库/sql 包之上提供一组扩展。


  • sshman - 用于多个远程服务器上的 authorized_keys 文件的 SSH 管理器。


  • statiks - 快速、零配置、静态 HTTP 文件服务器。


  • Storm - 简单而强大的 BoltDB 工具包。


  • structs - 实现简单的函数来操作结构。


  • 油门 - 油门是一个在每个持续时间内将执行一个动作的对象。


  • tik - 简单易用的 Go 计时轮包。


  • tome - Tome 旨在为简单的 RESTful API 分页.


  • 工具箱 - 切片、映射、多重映射、结构、函数、数据转换实用程序。服务路由器、宏评估器、标记器。


  • 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(通用唯一字典排序标识符)的 Go 实现。


  • uniq - 使用命令轻松安全、快速的唯一标识符。


  • uuid - 使用快速或加密质量的随机节点标识符生成、编码和解码 UUID v1。


  • uuid - 通用唯一标识符 (UUID) 的实现。支持 UUID 的创建和解析。积极维护 satori uuid 的分叉。


  • uuid - 基于 RFC 4122 和 DCE 1.1 的 UUID 包:身份验证和安全服务。


  • wuid - 一个非常快速的唯一数字生成器,比 UUID 快 10-135 倍。


  • xid - Xid 是一个全球唯一的 id 生成器库,可以安全地直接在您的服务器代码中使用。




⬆ 回到顶部



验证



用于验证的库。



  • checkdigit - 提供校验位算法(Luhn、Verhoeff、Damm)和计算器(ISBN、EAN、JAN、UPC 等)。


  • gody - :balloon:Go 的轻量级结构验证器。


  • govalid - 快速、基于标签的结构验证。


  • govalidator - 字符串、数字、切片和结构的验证器和消毒剂。


  • govalidator - 使用简单的规则验证 Golang 请求数据。深受 Laravel 请求验证的启发。


  • jio -jio 是一个类似于 joi 的 json 模式验证器。


  • ozzo-validation - 支持各种数据类型(结构、字符串、映射、切片等)的验证,使用通常代码构造中指定的可配置和可扩展验证规则而不是结构标记。



  • validate - 用于数据验证和过滤的 Go 包。支持验证 Map、Struct、Request(Form、JSON、url.Values、Uploaded Files) 数据等功能。


  • validate - 这个包提供了一个为 Go 应用程序编写验证的框架。


  • validator - Go Struct 和 Field 验证,包括 Cross Field、Cross Struct、Map、Slice 和 Array 潜水。


  • Validator - 用 Go 编写的轻量级模型验证器。包含 VF:Min、Max、MinLength、MaxLength、Length、Enum、Regex。




⬆ 回到顶部



版本控制



用于版本控制的库。



  • froggit-go -Froggit-Go 是一个 Go 库,允许对 VCS 提供程序执行操作。


  • gh - 用于 GitHub Webhooks 的脚本化服务器和 net/http 中间件。



  • githooks - 每个 repo 和共享 Git 挂钩,具有版本控制和自动更新。


  • glab - 一个开源 GitLab 命令行工具,将 GitLab 的酷功能带到您的命令行中。


  • go-git - 纯 Go 中高度可扩展的 Git 实现。


  • go-vcs - 在 Go 中操作和检查 VCS 存储库。


  • hercules - 从 Git 存储库历史中获得高级见解。


  • hgo -Hgo 是 Go 包的集合,提供对本地 Mercurial 存储库的读取访问权限。




⬆ 回到顶部



视频



用于处理视频的库。



  • gmf - FFmpeg av* 库的 Go 绑定。


  • go-astisub - 在 GO 中操作字幕(.srt、.stl、.ttml、.webvtt、.ssa/.ass、图文电视、.smi 等)。


  • go-astits - 在 GO 中本地解析和解复用 MPEG 传输流(.ts)。


  • go-m3u8 - Apple m3u8 播放列表的解析器和生成器库。


  • go-mpd - MPEG-DASH 清单文件的解析器和生成器库。


  • goav - FFmpeg 的综合 Go 绑定。



  • gst - GStreamer 的 Go 绑定。


  • libgosubs - go 的字幕格式支持。支持 .srt、.ttml 和 .ass。


  • libvlc-go - libvlc 2.X/3.X/4.X 的 Go 绑定(由 VLC 媒体播放器使用)。


  • m3u8 - Apple HLS 的 M3U8 播放列表的解析器和生成器库.


  • v4l - 用 Go 编写的 Linux 视频捕获库。




⬆ 回到顶部



网络框架



全栈网络框架。



  • aah - Go 的可扩展、高性能、快速开发 Web 框架。


  • Aero - Go 的高性能 Web 框架,在 Lighthouse 中达到最高分。


  • Air - 一个非常完善的 Go 网络框架。


  • anoweb - 轻量级且功能强大的 Web 框架,使用 Go 的新方式。另一种方式。


  • appy - 一个固执己见的高效 Web 框架,有助于更轻松地扩展业务。


  • Banjo - 非常简单快速的 Go Web 框架。


  • Beego - beego 是 Go 编程语言的开源、高性能 Web 框架。


  • Buffalo - 将 Rails 的生产力带到 Go!


  • Confetti Framework - Confetti 是一个 Go Web 应用程序框架,具有表现力、优雅的语法。Confetti 结合了 Laravel 的优雅和 Go 的简单性。


  • Echo - 高性能、极简的 Go Web 框架。


  • Fiber - 基于 Fasthttp 构建的受 Express.js 启发的 Web 框架。


  • Fireball - 更“自然”的感觉 Web 框架。


  • Flamingo - 可插拔 Web 项目的框架。包括模块概念,并为 DI、Configareas、i18n、模板引擎、graphql、可观察性、安全性、事件、路由和反向路由等提供功能。


  • Flamingo Commerce - 使用干净的架构(如 DDD 和端口和适配器)提供电子商务功能,可用于构建灵活的电子商务应用程序。


  • Gearbox - 一个用 Go 编写的 Web 框架,专注于高性能和内存优化。


  • Gin - Gin 是一个用 Go 编写的 Web 框架!它具有类似 martini 的 API,具有更好的性能,速度提高了 40 倍。如果您需要性能和良好的生产力。


  • Ginrpc - Gin 参数自动绑定工具,gin rpc 工具。


  • Gizmo - 纽约时报使用的微服务工具包。



  • go-rest -Go 的小而邪恶的 REST 框架。


  • Goa - Goa 提供了一种在 Go 中开发远程 API 和微服务的整体方法。


  • goa - goa 就像 golang 的 koajs 一样,是一个灵活、轻量、高性能、可扩展的基于中间件的 Web 框架。


  • golamb - Golamb 使编写 API 端点以与 AWS Lambda 和 API Gateway 一起使用变得更加容易。


  • Golax - 一个非 Sinatra 快速 HTTP 框架,支持 Google 自定义方法、深度拦截器、递归等。


  • Golf - Golf 是一个快速、简单、轻量级的 Go 微型 Web 框架。它具有强大的功能,除了 Go 标准库之外没有其他依赖项。


  • Gondola - 用于更快地编写更快网站的 Web 框架。


  • gongular - 具有输入映射/验证和(DI)依赖注入的 Fast Go Web 框架。


  • GoTuna - 用于 Go 的简约 Web 框架,带有多路复用路由器、中间件、会话、模板、嵌入式视图和静态文件。


  • goweb - 具有路由、websockets、日志记录、中间件、静态文件服务器(可选 gzip)和自动 TLS 的 Web 框架。


  • Goyave - 功能完整的 REST API 框架,旨在清洁代码和快速开发,具有强大的内置功能。


  • hiboot - hiboot 是一个具有自动配置和依赖注入支持的高性能 Web 应用程序框架。


  • Huma - 具有内置 OpenAPI 3、生成的文档和 CLI 的现代 REST/GraphQL API 框架。


  • Macaron -Macaron 是 Go 中的高产和模块化设计 Web 框架。


  • mango -Mango 是 Go 的模块化 Web 应用程序框架,灵感来自 Rack 和 PEP333.


  • 微服务 - 创建微服务的框架,用 Golang 编写


  • neo - Neo 是最小且快速的 Go Web 框架,具有极其简单的 API。


  • 赞助人 - Patron 是一个微服务框架,遵循最佳云实践,专注于生产力。


  • Resoursea - 用于快速编写基于资源的服务的 REST 框架。


  • REST 层 - 在数据库之上构建 REST/GraphQL API 的框架,主要通过代码进行配置。


  • Revel - Go 语言的高生产力 Web 框架。


  • rex - Rex 是一个基于 gorilla/mux 的模块化开发库,与 net/http .


  • rk-boot - 一个引导程序库,用于使用 Gin 和 gRPC 快速轻松地构建企业 go 微服务。


  • rux - 用于构建 golang HTTP 应用程序的简单快速的 Web 框架。


  • tango -Go 的微型和可插拔 Web 框架。


  • tigertonic - 受 Dropwizard 启发的用于构建 JSON Web 服务的 Go 框架。


  • uAdmin - 受 Django 启发的全功能 Golang 网络框架。


  • utron -Go(Golang)的轻量级 MVC 框架。


  • vox - 一个人类的 golang 网络框架,深受 Koa 的启发。


  • WebGo - 构建 Web 应用程序的微框架;处理程序链接、中间件和上下文注入。使用符合标准库的 HTTP 处理程序(即 http.HandlerFunc)。


  • YARF - 快速微框架,旨在以快速简单的方式构建 REST API 和 Web 服务。




⬆ 回到顶部



中间件



实际中间件




  • CORS - 轻松将 CORS 功能添加到您的 API。



  • formjson - 透明地将 JSON 输入作为标准表单 POST 处理。




  • Limiter - Go 的死简单速率限制中间件。


  • ln-paywall - 使用闪电网络(比特币)按请求将 API 货币化的中间件。


  • mid - 其他 HTTP 中间件功能:从处理程序返回惯用错误;接收/响应 JSON 数据;请求跟踪;和更多。


  • rk-gin - 用于 Gin 框架的中间件,具有日志记录、指标、身份验证、跟踪等功能。


  • rk-grpc - 用于 gRPC 的中间件,具有日志记录、指标、身份验证、跟踪等功能。



  • XFF - 处理 X-Forwarded-For 标题和朋友。




用于创建 HTTP 中间件的库



  • alice - Go 的无痛中间件链接。


  • catena - http.Handler 包装器连接(与“链”相同的 API)。


  • chain - 处理程序包装器链接与范围数据(基于网络/上下文的“中间件”)。


  • go-wrap - 用于 net/http 的小型中间件包。


  • gores - 处理 HTML、JSON、XML 等响应的 Go 包。对于 RESTful API 很有用。



  • 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 上下文的 Tiny Go 中间件库(带有罐装中间件)。


  • stats - Go 中间件,用于存储有关您的 Web 应用程序的各种信息。




⬆ 回到顶部



路由器



  • 外星人 - 来自外太空的轻量级和快速的 http 路由器。


  • bellt - 一个简单的 Go HTTP 路由器。


  • Bone - 闪电般快速的 HTTP 多路复用器。


  • Bxog - 用于 Go 的简单快速的 HTTP 路由器。它适用于不同难度、长度和嵌套的路线。他知道如何根据接收到的参数创建 URL。


  • chi - 基于网络/上下文构建的小型、快速和富有表现力的 HTTP 路由器。


  • fasthttprouter - 高性能路由器从 httprouter . 第一款适合 fasthttp .


  • FastRouter - 用 Go 编写的快速、灵活的 HTTP 路由器。


  • goblin - 基于 trie 树的 golang http 路由器。



  • Goji -Goji 是一个简约而灵活的 HTTP 请求多路复用器,支持 net/context .


  • GoLobby/Router - GoLobby 路由器是用于 Go 编程语言的轻量级但功能强大的 HTTP 路由器。


  • goroute - 简单而强大的 HTTP 请求多路复用器。


  • GoRouter - GoRouter 是一个服务器/API 微框架,HTTP 请求路由器,多路复用器,多路复用器,为请求路由器提供中间件支持 net/context


  • gowww/router - 与 net/http.Handler 接口完全兼容的闪电般快速的 HTTP 路由器。


  • httprouter - 高性能路由器。使用这个和标准的 http 处理程序来形成一个非常高性能的 web 框架。


  • httptreemux - 用于 Go 的高速、灵活的基于树的 HTTP 路由器。灵感来自 httprouter。


  • lars - 是一个轻量级、快速和可扩展的零分配 HTTP 路由器,用于创建可定制的框架。


  • mux - 强大的 URL 路由器和 golang 调度程序。


  • nchi - 基于 httprouter 的类似 chi 的路由器,具有基于依赖注入的中间件包装器


  • ngamux - Go 的简单 HTTP 路由器。


  • ozzo-routing - 一个极快的 Go (golang) HTTP 路由器,支持正则表达式路由匹配。完全支持构建 RESTful API。


  • pure - 是一个轻量级的 HTTP 路由器,坚持标准的“net/http”实现。


  • Siesta - 编写中间件和处理程序的可组合框架。


  • vestigo - 用于 Go Web 应用程序的高性能、独立、符合 HTTP 的 URL 路由器。



  • xmux httprouter - 基于支持的高性能多路复用器 net/context





⬆ 回到顶部



WebAssembly




  • go-canvas - 使用 HTML5 Canvas 的库,所有绘图都在 go 代码中。


  • tinygo - 适用于小地方的 Go 编译器。微控制器、WebAssembly 和命令行工具。基于 LLVM。


  • vert - Go 和 JS 值之间的互操作。



  • webapi - 从 WebIDL 生成的 DOM 和 HTML 的绑定。




⬆ 回到顶部



视窗



  • d3d9 - Direct3D9 的 Go 绑定。


  • 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。



  • xquery - XQuery 允许您使用 XPath 表达式从 HTML/XML 文档中提取数据。


  • zek - 从 XML 生成 Go 结构。




零信任



实现零信任架构的库和工具。



  • Cosign - OCI 注册表中的容器签名、验证和存储。


  • in-toto - in-toto 的 Go 实现(提供保护软件供应链完整性的框架)python 参考实现。


  • Spiffe-Vault - 使用 Spiffe JWT 身份验证和 Hashicorp Vault 进行无秘密身份验证。


  • Spire - SPIRE(SPIFFE 运行时环境)是一个 API 工具链,用于在各种托管平台的软件系统之间建立信任。




代码分析



源代码分析工具,也称为静态应用程序安全测试 (SAST) 工具。



  • apicompat - 检查对 Go 项目的最近更改以查找向后不兼容的更改。


  • ChainJacking - 找出你的 Go 语言直接 GitHub 依赖项中哪些容易受到 ChainJacking 攻击。


  • dupl - 代码克隆检测工具。


  • 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 中实现的检查。





  • GoCover.io - GoCover.io 将任何 golang 包的代码覆盖率作为服务提供。


  • goimports - 自动修复(添加、删除)你的 Go 导入的工具。



  • golines - 自动缩短 Go 代码中长行的格式化程序。


  • GoLint - Golint 是 Go 源代码的 linter。


  • GoPlantUML - 库和 CLI 生成文本植物类图,其中包含有关结构和接口以及它们之间关系的信息。


  • goreturns - 添加零值返回语句以匹配 func 返回类型。


  • gosimple -gosimple 是专门用于简化代码的 Go 源代码的 linter。


  • gostatus - 命令行工具,显示包含 Go 包的存储库的状态。


  • lint - 作为 go 测试的一部分运行 linter。



  • staticcheck - staticcheck 是 go vet 在类固醇上,应用大量静态分析检查,您可能习惯于使用 ReSharper for C# 等工具。


  • tarp - tarp 在 Go 源代码中无需直接单元测试即可找到函数和方法。


  • tickgit - CLI 和 go 包,用于显示代码注释 TODO(任何语言)并应用 a git blame 来识别作者.


  • todocheck - 静态代码分析器,它将代码中的 TODO 注释与问题跟踪器中的问题联系起来。


  • unconvert - 从 Go 源代码中删除不必要的类型转换。


  • 未使用 - 未使用检查 Go 代码中未使用的常量、变量、函数和类型。


  • usestdlibvars - 检测使用 Go 标准库中的变量/常量的可能性的 linter。


  • validate - 使用标签自动验证结构字段。




⬆ 回到顶部



编辑器插件



文本编辑器和 IDE 的插件。




  • Go Doc - 用于在输出中显示定义和生成 go doc 的 Visual Studio Code 扩展。



  • go-language-server - 将 VSCode go 扩展转换为支持语言服务器协议的语言服务器的包装器。



  • go-plus - 添加自动完成、格式化、语法检查、Linting 和审查的 Atom 的 Go (Golang) 包.


  • gocode - Go 编程语言的自动完成守护进程。



  • goprofiling - 此扩展为 VS Code 添加了对 Go 语言的基准分析支持。


  • GoSublime - 文本编辑器 SublimeText 3 的 Golang 插件集合,提供代码完成和其他类似 IDE 的功能。


  • gounit-vim - Vim 插件,用于根据函数或方法的签名生成 Go 测试。





  • vscode-go - Visual Studio Code (VS Code) 的扩展,提供对 Go 语言的支持。


  • Watch - 在 acme win 中对文件更改运行命令。




⬆ 回到顶部







  • gocontracts - 通过将代码与文档同步来为 Go 带来按合同设计。


  • godal - 通过指定 sql ddl 文件生成 golang 对应的 orm 模型,gorm 可以使用该文件。



  • gotests - 从您的源代码生成 Go 测试。


  • gounit - 使用您自己的模板生成 Go 测试。


  • hasgo - 为您的切片生成受 Haskell 启发的函数。


  • re2dfa - 将正则表达式转换为有限状态机并输出 Go 源代码。


  • TOML-to-Go - 立即将 TOML 翻译成浏览器中的 Go 类型。


  • xgen - XSD(XML 模式定义)解析器和 Go/C/Java/Rust/TypeScript 代码生成器。




⬆ 回到顶部





  • colorgo - go 用于彩色 go build 输出的包装器。


  • depth - 通过分析导入可视化任何包的依赖树。


  • docs - 为 GO 项目自动生成 RESTful API 文档 - 符合开放 API 规范标准。



  • go-callvis - 使用点格式可视化 Go 程序的调用图。


  • go-james - Go 项目骨架创建者,无需手动设置即可构建和测试您的项目。



  • go-swagger -Go 的Swagger 2.0 实现. Swagger 是 RESTful API 的简单而强大的表示。


  • godbg - Rusts dbg! 宏的实现,用于在开发过程中快速轻松地调试。


  • gomodrun - 执行和缓存 go.mod 文件中包含的二进制文件的 Go 工具。



  • gotestdox - 将 Go 测试结果显示为可读句子。


  • gothanks -GoThanks 会自动为您的 go.mod github 依赖项加注星标,以这种方式向他们的维护者发送一些爱。


  • igo - 一个 igo to go 转译器(Go 语言的新语言功能!)


  • modver - 根据 semver 规则比较 Go 模块的两个版本以检查所需的版本号更改(主要、次要或补丁级别)。


  • OctoLinker - 使用 GitHub 的 OctoLinker 浏览器扩展有效地浏览 go 文件。


  • richgo - go test 使用文本装饰丰富输出。


  • roumon - 通过命令行界面监控所有活动 goroutine 的当前状态。


  • rts - RTS:对结构的响应。从服务器响应生成 Go 结构。


  • typex - 检查 Go 类型及其传递依赖项,或者将结果导出为 TypeScript 值对象(或类型)声明。




⬆ 回到顶部



软件包



用 Go 编写的软件。



⬆ 回到顶部



开发运维工具



  • abbreviate - abbreviate 是一种将长字符串转换为具有可配置分隔符的较短字符串的工具,例如将分支名称嵌入部署堆栈 ID。


  • aptly - aptly 是一个 Debian 存储库管理工具。


  • aurora - 基于 Web 的跨平台 Beanstalkd 队列服务器控制台。


  • awsenv - 为配置文件加载 Amazon (AWS) 环境变量的小型二进制文件。


  • Balerter - 一个自托管的基于脚本的警报管理器。


  • Blast - API 负载测试和批处理作业的简单工具。


  • bombardier - 快速的跨平台 HTTP 基准测试工具。


  • bosun - 时间序列警报框架。


  • cassowary - 用 Go 编写的现代跨平台 HTTP 负载测试工具。


  • Ddosify - 用 Golang 编写的高性能负载测试工具。


  • DepCharge - 帮助在大型项目中跨多个依赖项编排命令的执行。


  • docker-go-mingw - 用于使用 MinGW 工具链为 Windows 构建 Go 二进制文件的 Docker 映像。


  • Dockerfile-Generator - 一个 go 库和一个使用各种输入通道生成有效 Dockerfile 的可执行文件。


  • dogo - 监视源文件中的更改并自动编译和运行(重新启动)。


  • drone-jenkins - 使用二进制、docker 或 Drone CI 触发下游 Jenkins 作业。


  • drone-scp - 使用二进制、docker 或 Drone CI 通过 SSH 复制文件和工件。



  • easyssh-proxy -Golang 包,可通过 SSH 和 SCP 下载轻松远程执行 ProxyCommand


  • fac - 用于修复 git 合并冲突的命令行用户界面。



  • gaia - 用任何编程语言构建强大的管道。


  • ghorg - 将整个 org/users 存储库快速克隆到一个目录中 - 支持 GitHub、GitLab、Gitea 和 Bitbucket。


  • Gitea - Gogs 的分叉,完全由社区驱动。



  • go-furnace - 用 Go 编写的托管解决方案。在 AWS、GCP 或 DigitalOcean 上轻松部署您的应用程序。


  • go-rocket-update - 一种制作自我更新 Go 应用程序的简单方法 - 支持 Github 和 Gitlab。



  • gobrew - gobrew 让您可以轻松地在多个 go 版本之间切换。


  • godbg - 基于 Web 的 gdb 前端应用程序。


  • Gogs - Go 编程语言中的自托管 Git 服务。


  • gonative - 创建 Go 构建的工具,该构建可以交叉编译到所有平台,同时仍使用支持 Cgo 的 stdlib 包版本。


  • govvv - “go build” 包装器,可以轻松地将版本信息添加到 Go 二进制文件中。


  • gox - 死的简单,没有多余的装饰 Go 交叉编译工具。


  • goxc - Go 的构建工具,专注于交叉编译和打包。


  • 葡萄 - 轻量级工具,旨在轻松通过 ssh 分发命令。


  • GVM - GVM 提供了一个管理 Go 版本的接口。


  • Hey - Hey 是一个向 Web 应用程序发送一些负载的小程序。


  • httpref - httpref 是一个方便的 CLI 参考,用于 HTTP 方法、状态代码、标头以及 TCP 和 UDP 端口。


  • jcli - Jenkins CLI 允许您以一种简单的方式管理您的 Jenkins.


  • kala - 简单、现代和高性能的作业调度程序。


  • kcli - 用于检查 kafka 主题/分区/消息的命令行工具。


  • ko - 用于在 Kubernetes 上构建和部署 Go 应用程序的命令行工具


  • kool - 用于以简单方式管理 Docker 环境的命令行工具。



  • kwatch - 立即监控和检测 Kubernetes(K8s)集群中的崩溃。


  • lstags - 用于跨不同注册表同步 Docker 映像的工具和 API。


  • lwc - UNIX wc 命令的实时更新版本。


  • manssh - manssh 是一个命令行工具,用于轻松管理 ssh 别名配置。


  • Mantil - Go 特定框架,用于在 AWS 上构建无服务器应用程序,使您能够专注于纯 Go 代码,而 Mantil 负责基础设施。


  • Mizu - Kubernetes 的 API 流量查看器,使您能够查看微服务之间的所有 API 通信,多协议支持:HTTP1.1、HTTP/2、AMQP、Kafka、Redis.


  • Moby - 容器生态系统的协作项目,用于组装基于容器的系统。


  • Mora - 用于访问 MongoDB 文档和元数据的 REST 服务器。


  • ostent - 收集和显示系统指标,并可选择中继到 Graphite 和/或 InfluxDB。


  • Packer - Packer 是一种工具,用于从单一源配置为多个平台创建相同的机器映像。


  • Pewpew - 灵活的 HTTP 命令行压力测试器。


  • Pomerium - Pomerium 是一个身份感知访问代理。


  • Rodent - Rodent 帮助您管理 Go 版本、项目和跟踪依赖项。


  • s3-proxy - 具有 GET、PUT 和 DELETE 方法和身份验证(OpenID Connect 和 Basic Auth)的 S3 代理.


  • s3gof3r - 小型实用程序/库,针对大型对象进出 Amazon S3 的高速传输进行了优化。


  • s5cmd - 超快的 S3 和本地文件系统执行工具。


  • Scaleway-cli - 从命令行管理 BareMetal 服务器(就像使用 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 - 一个 CLI 工具,用于管理 Apache Kafka 集群并对其进行故障排除,具有向/从 Kafka 发布/消费协议缓冲区和纯文本事件的能力。


  • uTask - 建模和执行在 yaml 中声明的业务流程的自动化引擎。


  • Vegeta - HTTP 负载测试工具和库。超过9000!


  • 等待 - 等待某事发生(从命令行),然后再继续。轻松编排 Docker 服务和其他内容。


  • webhook - 允许用户创建在服务器上执行命令的 HTTP 端点(钩子)的工具。


  • Wide - 用于使用 Golang 的团队的基于 Web 的 IDE。


  • winrm-cli - 在 Windows 机器上远程执行命令的 Cli 工具。




⬆ 回到顶部



其他软件




  • blocky - 快速且轻量级的 DNS 代理,作为具有许多功能的本地网络的广告拦截器。


  • borg - 基于终端的 bash 片段搜索引擎。


  • boxed - 基于 Dropbox 的博客引擎。


  • Cherry -Go 中的微型网络聊天服务器。


  • 电路 - 电路是一种可编程的平台即服务 (PaaS) 和/或基础设施即服务 (IaaS),用于管理、发现、同步和编排包含云应用程序的服务和主机。



  • confd - 使用来自 etcd 或 consul 的模板和数据管理本地应用程序配置文件。


  • crawley - 用于 cli 的 Web 刮板/爬虫。


  • croc - 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机。


  • Docker - 面向开发人员和系统管理员的分布式应用程序的开放平台。


  • Documize - 集成来自 SaaS 工具的数据的现代 wiki 软件。


  • dp - 通过 SDK 与区块链进行数据交换,开发者可以轻松接入 DAPP 开发。


  • drive - 用于命令行的 Google Drive 客户端。


  • Duplicity - 基于无锁重复数据删除思想的跨平台网络和云备份工具。


  • Gebug - 通过无缝启用调试器和热重载功能,使 Dockerized Go 应用程序的调试变得超级容易的工具。


  • gfile - 通过 WebRTC 在两台计算机之间安全地传输文件,无需任何第三方。




  • goblin - 卷曲的 Golang 二进制文件,由 goblins 构建.


  • GoBoy - 用 Go 编写的 Nintendo Game Boy 颜色模拟器。


  • gocc -Gocc 是用 Go 编写的 Go 编译器工具包。


  • GoDocTooltip - Go Doc 站点的 Chrome 扩展,在函数列表中将函数描述显示为工具提示。


  • Gokapi - 用于共享文件的轻量级服务器,在一定的下载量或几天后过期。类似于 Firefox Send,但没有公开上传。


  • GoLand - 全功能的跨平台 Go IDE。


  • Gor - Http 流量复制工具,用于实时回放从生产环境到阶段/开发环境的流量。


  • Guora - 用 Go 编写的类似 Quora 的自托管 Web 应用程序。


  • hoofli - 从 Chrome 或 Firefox 网络检查生成 PlantUML 图。


  • hugo - 快速和现代的静态网站引擎。


  • ide - 浏览器可访问的 IDE。专为 Go with Go 设计。


  • ipe - 与用 GO 编写的 Pusher 客户端库兼容的开源 Pusher 服务器实现。


  • joincap - 用于将多个 pcap 文件合并在一起的命令行实用程序。


  • Juju - 与云无关的服务部署和编排 - 支持 EC2、Azure、Openstack、MAAS 等。


  • Leaps - 使用 Operational Transforms 的配对编程服务。


  • lgo - 使用 Jupyter 进行交互式 Go 编程。它支持代码完成、代码检查和 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 解析器生成器的实现。


  • Plik - Plik 是 Go 中的一个临时文件上传系统(类似 Wetransfer)。


  • protoncheck -waybar/polybar/yabar/i3blocks 的 ProtonMail 模块。


  • restic - 重复数据删除备份程序。


  • 清酒 - 清酒是本地和远程主机的命令运行程序。


  • 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 工具,包括套接字统计信息。



  • toxiproxy - 用于模拟自动化测试的网络和系统条件的代理。


  • tsuru - 可扩展的开源平台即服务软件。


  • vaku -CLI 和 API,用于 Vault 中基于文件夹的功能,例如复制、移动和搜索。


  • vFlow - 高性能、可扩展且可靠的 IPFIX、sFlow 和 Netflow 收集器。


  • wellington - Sass 项目管理工具,使用 sprite 函数(如 Compass)扩展语言。


  • 唤醒 - 检测源代码中的非包容性语言。




⬆ 回到顶部



资源



在哪里发现新的 Go 库。



⬆ 回到顶部



基准



  • autobench - 用于比较不同 Go 版本之间性能的框架。


  • go-benchmark-app - 强大的 HTTP 基准工具与 Аb、Wrk、Siege 工具混合。为基准和比较结果收集统计数据和各种参数。


  • go-benchmarks - 一些杂项 Go 微基准测试. 将某些语言功能与替代方法进行比较。









  • gospeed - 用于计算语言结构速度的 Go 微基准。



  • skynet - Skynet 1M 线程微基准测试.





⬆ 回到顶部



会议






















⬆ 回到顶部



电子书



购买电子书





  • Go 中的持续交付 ——这份持续交付的实用指南向您展示了如何快速建立一个自动化管道,以提高您的测试、代码质量和最终产品。






  • Writing An Interpreter In Go - 这本书介绍了许多用于编写惯用、富有表现力和高效的 Go 代码的技术,以避免常见的陷阱。




免费电子书







  • Go 101 - 一本专注于 Go 语法/语义和各种细节的书。















⬆ 回到顶部



地鼠



  • Free Gophers Pack - Maria Letta 的 Gopher 图形包,带有矢量和光栅中的插图和情感字符。







  • gophers - Ashley McNamara 的 Gopher 艺术品.








⬆ 回到顶部



聚会


































































*在此处添加您所在城市/国家的组(发送 PR )*



⬆ 回到顶部



风格指南














⬆ 回到顶部





推特










⬆ 回到顶部



红迪网






⬆ 回到顶部



网站







  • awesome-go-extra - 解析 awesome-go README 文件并生成一个带有 repo 信息的新 README 文件。



  • Coding Mystery - 使用 Go 解决令人兴奋的以逃生室为灵感的编程挑战。


  • CodinGame - 通过使用小游戏作为实际示例解决交互式任务来学习围棋。



  • Go Code Club - 一群 Gophers 每周阅读并讨论不同的 Go 项目。








  • gocryforhelp - 需要帮助的 Go 项目的集合。在 Go 中开始你的开源方式的好地方。











  • Gophercises - 为初露头角的地鼠提供的免费编码练习。



  • json2go - 高级 JSON 到 Go 结构转换 - 在线工具。











⬆ 回到顶部



教程











  • CodeCrafters Golang Track — 通过构建您自己的 Redis、Docker、Git 和 SQLite 来掌握高级 Go。具有 goroutines、系统编程、文件 I/O 等。













  • go-patterns -Go 设计模式、食谱和习语的精选列表。


  • goapp - 构建和开发 Go Web 应用程序/服务的自以为是的指南。





  • GolangCode - 代码片段和教程的集合,以帮助解决日常问题。


  • GopherSnippets - 带有 Go 编程语言测试和可测试示例的代码片段。


  • Gosamples - 可让您解决日常代码问题的代码片段集合。


  • Hackr.io - 从 golang 编程社区提交和投票的最佳在线 golang 教程中学习 Go。
















⬆ 回到顶部





本文使用 文章同步助手 同步
发布于 2022-08-20 17:23 ・IP 属地湖北