第66节 go 语言工具包
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[TOC]
音频和音乐
用于处理音频的库。
- flac - 支持 FLAC 流的 Native Go FLAC 编码器/解码器.
- gaad - 本机 Go AAC 比特流解析器。
- GoAudio - 本机 Go 音频处理库。
- gosamplerate -go 的 libsamplerate 绑定。
- id3v2 - Go 的 ID3 解码和编码库。
- malgo - 迷你音频库。
- minimp3 - 轻量级 MP3 解码器库。
- Oto - 一个在多个平台上播放声音的低级库。
- PortAudio - PortAudio 音频 I/O 库的绑定。
身份验证和 OAuth
用于实现身份验证方案的库。
- authboss - 用于网络的模块化身份验证系统。它尝试尽可能多地删除样板和“困难的东西”,以便每次您在 Go 中启动一个新的 Web 项目时,您都可以插入它、配置它并开始构建您的应用程序,而不必每次都构建一个身份验证系统.
- branca - Golang 1.15+ 的branca 令牌规范实现。
- 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) 实现。
- gosession - 这是 GoLang 中 net/http 的快速会话。这个包可能是会话机制的最佳实现,或者至少它试图成为一个。
- goth - 提供了一种简单、干净、惯用的方式来使用 OAuth 和 OAuth2。开箱即用地处理多个提供商。
- jeff - 具有可插入后端的简单、灵活、安全和惯用的 Web 会话管理。
- jwt - 轻量级 JSON Web 令牌(JWT)库。
- jwt - 用于 Go 的安全、简单和快速的 JSON Web 令牌。
- jwt-auth - 用于具有许多配置选项的 Golang http 服务器的 JWT 中间件。
- jwt-go - JSON Web Tokens (JWT) 的全功能实现。该库支持 JWT 的解析和验证以及生成和签名。
- keto - “Zanzibar:Google 一致的全球授权系统”的开源(Go)实现。提供 gRPC、REST API、newSQL 和一种简单而精细的权限语言。支持ACL、RBAC等访问模型。
- loginsrv - 具有可插入后端的 JWT 登录微服务,例如 OAuth2 (Github)、htpasswd、osiam.
- oauth2 - goauth2 的继任者。带有 JWT、Google API、Compute Engine 和 App Engine 支持的通用 OAuth 2.0 包。
- osin -Golang OAuth2 服务器库。
- otpgen - 生成 TOTP/HOTP 代码的库。
- otpgo -Go 的基于时间的一次性密码(TOTP)和基于 HMAC 的一次性密码(HOTP)库。
- paseto - 与平台无关的安全令牌 (PASETO) 的 Golang 实现。
- permissions2 - 用于跟踪用户、登录状态和权限的库。使用安全 cookie 和 bcrypt。
- scope - 在 Go 中轻松管理 OAuth2 范围。
- scs - HTTP 服务器的会话管理器。
- securecookie - 高效的安全 cookie 编码/解码。
- session - 用于 Web 服务器的 Go 会话管理(包括对 Google App Engine - GAE 的支持)。
- sessions - 用于 go http 服务器的非常简单、高性能、高度可定制的会话服务。
- sessionup - 简单但有效的 HTTP 会话管理和识别包。
- sjwt - 简单的 jwt 生成器和解析器。
区块链
构建区块链的工具。
- cosmos-sdk - 在 Cosmos 生态系统中构建公共区块链的框架。
- go-ethereum - 以太坊协议的官方 Go 实现。
- gossamer - Polkadot 主机的 Go 实现。
- solana-go - 与 Solana JSON RPC 和 WebSocket 接口交互的 Go 库。
- tendermint - 高性能中间件,用于使用 Tendermint 共识和区块链协议将以任何编程语言编写的状态机转换为拜占庭容错复制状态机。
机器人建筑
用于构建和使用机器人的库。
- bot - 具有附加 UI 组件的零依赖性 Telegram Bot 库
- echotron -Go 中用于电报机器人的优雅且并发的库。
- ephemeral-roles - 一个 Discord 机器人,用于根据语音通道成员的存在来管理临时角色。
- go-chat-bot - 用 Go 编写的 IRC、Slack 和 Telegram 机器人。
- go-joe - 受 Hubot 启发但用 Go 编写的通用机器人库。
- go-sarah - 为所需的聊天服务构建机器人的框架,包括 LINE、Slack、Gitter 等。
- go-tgbot - 纯 Golang Telegram Bot API 包装器,由 swagger 文件、基于会话的路由器和中间件生成。
- go-twitch-irc - 为 twitch.tv 聊天编写机器人的库
- Golang CryptoTrading Bot - 基于控制台的加密货币交易交易机器人的 golang 实现。
- govkbot - 简单的 Go VK机器人库。
- hanu - 编写 Slack 机器人的框架。
- Kelp - Stellar DEX的官方交易和做市机器人。开箱即用,用 Golang 编写,与中心化交易所和自定义交易策略兼容。
- 拉里- 拉里🐦是一个非常简单的 Twitter 机器人生成器,它可以从 Github 中用 Go 构建的随机存储库中发送推文。
- margelet - 用于构建 Telegram 机器人的框架。
- micha - 用于 Telegram bot api 的 Go 库。
- olivia - 使用人工神经网络构建的聊天机器人。
- slack-bot - 准备好为懒惰的开发人员使用 Slack Bot:自定义命令,Jenkins,Jira,Bitbucket,Github ...
- slacker - 易于使用的框架来创建 Slack 机器人。
- slackscot - 用于构建 Slack 机器人的另一个框架。
- tbot - 具有类似于 net/http 的 API 的电报机器人服务器。
- telebot - Telegram 机器人框架是用 Go 编写的。
- telego - 用于 Golang 的 Telegram Bot API 库,具有完整的一对一 API 实现。
- telegram-bot-api - 简单干净的 Telegram 机器人客户端。
- teleterm - 电报 Bot Exec 终端命令。
- Tenyks - 使用 Redis 和 JSON 进行消息传递的面向服务的 IRC 机器人。
- wayback - 用于 Telegram、Mastodon、Slack 和其他消息传递平台的机器人存档网页。
构建自动化
库和工具有助于构建自动化。
- 1build - 用于顺畅管理项目特定命令的命令行工具。
- anko - 多种编程语言的简单应用程序观察器。
- gaper - 在 Go 项目崩溃或某些监视的文件更改时构建并重新启动它。
- gilbert - 为 Go 项目构建系统和任务运行器。
- goyek - 在 Go 中创建构建管道。
- mage -Mage 是一种使用 Go 的类似 make/rake 的构建工具。
- mmake - 现代品牌。
- 实现- 去构建一个带有文件观察器的系统并重新加载。使用自定义路径运行、构建和观察文件更改。
- 任务- 简单的“制作”替代方案。
- taskctl - 并发任务运行器。
- xc - 带有 README.md 定义任务的任务运行器,可执行降价。
命令行
高级控制台用户界面
用于构建控制台应用程序和控制台用户界面的库。
- asciigraph -Go 包可在命令行应用程序中制作轻量级 ASCII 线图 ╭┈╯,无需其他依赖项。
- aurora - 支持 fmt.Printf/Sprintf 的 ANSI 终端颜色。
- box-cli-maker - 为您的 CLI 制作高度定制的盒子。
- bubbles - bubbletea 的 TUI 组件.
- bubbletea - 基于 Elm 架构构建终端应用程序的 Go 框架。
- cfmt - 受引导颜色类启发的上下文 fmt.
- cfmt - 简单方便的格式化程式化输出,与 fmt 库完全兼容。
- chalk - 用于美化终端/控制台输出的直观包。
- colourize - 用于终端中 ANSI 颜色文本的 Go 库。
- crab-config-files-templating - 用于 kubernetes 清单或通用配置文件的动态配置文件模板工具。
- ctc - 非侵入式跨平台终端颜色库,无需修改 Print 方法。
- go-ataman - 用于在终端中呈现 ANSI 彩色文本模板的 Go 库。
- go-colorable - 适用于 windows 的着色器。
- go-colortext - 用于在终端中输出颜色的 Go 库。
- go-isatty -golang 的 isatty。
- go-palette -Go 库,使用 ANSI 颜色提供优雅方便的样式定义。完全兼容并包装fmt 库以获得漂亮的终端布局。
- go-prompt - 受python-prompt-toolkit启发,用于构建强大的交互式提示的库。
- gocui - 旨在创建控制台用户界面的极简主义 Go 库。
- gommon/color - 样式终端文本。
- gookit/color - 终端显色工具库,支持16色、256色、RGB显色输出,兼容Windows。
- lipgloss - 在终端中以声明方式定义颜色、格式和布局的样式。
- marker - 为彩色终端输出匹配和标记字符串的最简单方法。
- mpb - 终端应用程序的多进度条。
- progressbar - 适用于每个操作系统的基本线程安全进度条。
- pterm - 一个库,用于在具有许多可组合组件的每个平台上美化控制台输出。
- simpletable - 使用 Go 的终端中的简单表格。
- spinner -Go 包可以轻松地为终端微调器提供选项。
- tabby - 一个用于超级简单 Golang 表的小型库。
- table - 基于终端颜色的表格的小型库。
- tabular - 从命令行实用程序打印 ASCII 表,无需将大量数据传递给 API。
- termbox-go - Termbox 是一个用于创建基于文本的跨平台界面的库。
- termdash - 基于termbox-go并受termui启发的 Go 终端仪表板。
- termenv - 为您的终端应用程序提供高级 ANSI 样式和颜色支持。
- termui - 基于termbox-go并受blessed-contrib启发的 Go 终端仪表板。
- uilive - 用于实时更新终端输出的库。
- uiprogress - 灵活的库,用于在终端应用程序中呈现进度条。
- uitable - 使用表格数据提高终端应用程序可读性的库。
- yacspin - 另一个 CLi Spinner 包,用于与终端微调器一起工作。
标准命令行界面
用于构建标准或基本命令行应用程序的库。
- acmd -Go 中简单、有用且自以为是的 CLI 包。
- argparse - 受 Python 的 argparse 模块启发的命令行参数解析器。
- argv - Go 库使用 bash 语法将命令行字符串拆分为参数数组。
- carapace - spf13/cobra 的命令参数完成生成器。
- carapace-bin - 多 shell 多命令参数完成器。
- carapace-spec - 使用 spec 文件定义简单的完成。
- cli - 基于 golang struct 标签的功能丰富且易于使用的命令行包。
- cli - 用于在 Go 中构建命令行界面的简单而完整的 API。
- climax - 本着 Go 命令的精神,具有“人脸”的替代 CLI。
- clîr - 一个简单明了的 CLI 库。无依赖性。
- cmd - 以惯用的方式扩展标准
flag
包以支持子命令等。 - cmdr - POSIX/GNU 风格,类似于 getopt 的命令行 UI Go 库。
- cobra - 现代 Go CLI 交互的指挥官。
- command-chain - 用于配置和运行命令链的 go 库 - 例如 unix shell 中的流水线操作。
- commandeer - 开发友好的 CLI 应用程序:根据结构字段和标签设置标志、默认值和用法。
- complete - 在 Go + Go 命令 bash 完成中编写 bash 完成。
- Dnote - 具有多设备同步功能的简单命令行笔记本。
- elvish - 一种富有表现力的编程语言和多功能的交互式 shell。
- env - 结构的基于标签的环境配置。
- flag - 用于 Go 支持子命令的简单但功能强大的命令行选项解析库。
- flaggy - 一个强大且惯用的标志包,具有出色的子命令支持。
- flagvar - Go 标准包的标志参数类型的集合
flag
。 - go-andotp - 用于加密/解密和 OTP文件的 CLI 程序。也可以用作图书馆。
- go-arg -Go 中基于结构的参数解析。
- go-commander - 用于简化 CLI 工作流程的 Go 库。
- go-flags - go 命令行选项解析器。
- go-getoptions - 受 Perl 的 GetOpt::Long 的灵活性启发的 Go 选项解析器。
- gocmd - 用于构建命令行应用程序的 Go 库。
- hiboot cli - 具有自动配置和依赖注入的 cli 应用程序框架。
- job - JOB,让你的短期命令成为长期工作。
- kingpin - 支持子命令的命令行和标志解析器(被取代
kong
;见下文)。 - liner - 用于命令行界面的类似于 readline 的库。
- mcli - 用于 Go 的最小但非常强大的 cli 库。
- mitchellh/cli - 用于实现命令行界面的 Go 库。
- mow.cli - 用于构建具有复杂标志和参数解析和验证的 CLI 应用程序的 Go 库。
- ops - Unikernel Builder/Orchestrator.
- pflag - Go 标志包的直接替换,实现了 POSIX/GNU 风格 --flags。
- sand - 用于创建解释器等的简单 API。
- sflags - 用于 flag、urfave/cli、pflag、cobra、kingpin 和其他库的基于结构的标志生成器。
- strumt - 创建提示链的库。
- subcmd - 另一种解析和运行子命令的方法。与标准
flag
包一起工作。 - survey - 构建交互式和可访问的提示,完全支持 Windows 和 posix 终端。
- ts - 时间戳转换和比较工具。
- ukautz/clif - 小型命令行界面框架。
- urfave/cli - 用于在 Go 中构建命令行应用程序的简单、快速且有趣的包(以前称为 codegangsta/cli)。
- version - 以多种格式收集和显示 CLI 版本信息以及升级通知。
- wlog - 支持跨平台颜色和并发的简单日志记录界面。
- wmenu - 提示用户做出选择的 cli 应用程序易于使用的菜单结构。
配置
用于配置解析的库。
- aconfig - 简单、有用且自以为是的配置加载器。
- cleanenv - 简约的配置阅读器(来自文件、ENV 以及任何你想要的地方)。
- config - 云原生应用程序配置。只需两行即可将 ENV 绑定到结构。
- 配置- 在两行代码中使用文件、环境变量或标志配置您的应用程序
- config - 具有环境变量和标志解析的 JSON 或 YAML 配置包装器。
- configuration - 用于从 env 变量、文件、标志和“默认”标签初始化配置结构的库。
- configure - 通过多个来源提供配置,包括 JSON、标志和环境变量。
- configuro - 来自 ENV 和 Files 的自以为是的配置加载和验证框架,专注于 12-Factor 兼容应用程序。
- confita - 将配置从多个后端级联加载到一个结构中。
- conflate - 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件的库/工具,针对 JSON 模式进行验证,以及模式中定义的默认值的应用。
- env - 将环境变量解析为 Go 结构(具有默认值)。
- env - 用于将环境变量加载到结构中的轻量级包。
- envcfg - 将环境变量取消编组到 Go 结构。
- envconf - 来自环境的配置。
- envconfig - 从环境变量中读取您的配置。
- 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
)。 - gofigure -Go 应用程序配置变得简单。
- GoLobby/Config -GoLobby Config 是 Go 编程语言的轻量级但功能强大的配置管理器.
- gone/jconf - 模块化 JSON 配置。让您配置结构及其配置的代码,并将解析委托给子模块,而不会牺牲完整的配置序列化。
- gonfig - 基于标签的配置解析器,它将来自不同提供程序的值加载到类型安全结构中。
- gookit/config - 应用程序配置管理(加载、获取、设置)。支持 JSON、YAML、TOML、INI、HCL。多文件加载,数据覆盖合并。
- harvester - Harvester,一个易于使用的静态和动态配置包,支持播种、env vars 和 Consul 集成。
- hjson - 人类 JSON,人类的配置文件格式。宽松的语法,更少的错误,更多的评论。
- hocon - 用于使用 HOCON(一种人性化的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
- ingo - 标志保存在类似 ini 的配置文件中。
- ini - 用于读取和写入 INI 文件的 Go 包。
- ini - INI 解析器和写入库,解组到结构,编组到 Json,写入文件,监视文件。
- joshbetz/config -Go 的小型配置库,可解析环境变量、JSON 文件并在 SIGHUP 上自动重新加载。
- kelseyhightower/envconfig - 用于管理来自环境变量的配置数据的 Go 库。
- koanf - 轻量级、可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON、TOML、YAML、env、命令行的支持。
- konfig - 适用于分布式处理时代的 Go 的可组合、可观察和高性能配置处理。
- kong - 命令行解析器,支持任意复杂的命令行结构和其他配置源,例如 YAML、JSON、TOML 等(继任者
kingpin
)。 - mini - 用于解析 ini 样式配置文件的 Golang 包。
- nasermirzaei89/env - 用于读取环境变量的简单有用的包。
- nfigure - 来自命令行的基于每个库结构标签的配置(Posix 和 Go 风格);环境、JSON、YAML
- onion -Go 的基于层的配置,支持 JSON、TOML、YAML、属性、etcd、env 和使用 PGP 的加密。
- piper - 具有配置继承和密钥生成的 Viper 包装器.
- store -Go 的轻量级配置管理器。
- swap - 根据构建环境递归地实例化/配置结构。(YAML、TOML、JSON 和环境)。
- typenv - 简约、零依赖、类型化环境变量库。
- uConfig - 轻量级、零依赖和可扩展的配置管理。
- viper - 带有毒牙的 Go 配置。
- xdg -Go 实现XDG 基本目录规范和XDG 用户目录。
- xdg - 遵循XDG 标准的跨平台包。
持续集成
帮助持续集成的工具。
- CDS - 企业级 CI/CD 和 DevOps 自动化开源平台。
- drone -Drone 是一个建立在 Docker 上的持续集成平台,用 Go 编写。
- duci - 一个简单的 ci 服务器,不需要特定领域的语言。
- go-fuzz-action - 在 GitHub Actions 中使用 Go 1.18 的内置模糊测试。
- go-test-coverage - 当测试覆盖率低于设定阈值时报告问题的工具和 GitHub 操作。
- gomason - 从干净的工作区测试、构建、签名和发布您的 go 二进制文件。
- gotestfmt - 去测试人类的输出。
- goveralls - 集成 Coveralls.io 连续代码覆盖率跟踪系统。
- overalls - Multi-Package go project coverprofile 用于像 goveralls 这样的工具。
- roveralls - 递归覆盖测试工具。
- woodpecker -Woodpecker 是 Drone CI 系统的社区分支。
CSS 预处理器
用于预处理 CSS 文件的库。
- gcss - 纯 Go CSS 预处理器。
- go-libsass - 包装到 100% Sass 兼容的 libsass 项目。
数据结构和算法
位打包和压缩
- bingo - 将本机类型快速、零分配、保留词典顺序的包装打包为字节。
- binpacker - 二进制打包器和解包器帮助用户构建自定义二进制流。
- bit -Golang 设置数据结构,具有额外的位旋转功能。
- crunch -Go 包实现缓冲区以轻松处理各种数据类型。
- go-ef - Elias-Fano 编码的 Go 实现。
- roaring - 实现压缩位集的 Go 包。
位集
布隆和布谷鸟过滤器
- bloom - 实现 Bloom 过滤器的 Go 包。
- bloom - 在 Go 中实现的 Bloom 过滤器.
- bloom -Golang 布隆过滤器实现。
- bloomfilter -Go 中的另一个 Bloomfilter 实现,与 Java 的 Guava 库兼容。
- boomfilters - 用于处理连续、无界流的概率数据结构。
- cuckoo-filter - 布谷鸟过滤器:一个综合的布谷鸟过滤器,与其他工具相比,它是可配置的和空间优化的,并且提供了原始论文中提到的所有功能。
- cuckoofilter - 布谷鸟过滤器:在 Go 中实现的计数布隆过滤器的一个很好的替代品。
- ring - 执行高性能、线程安全的布隆过滤器。
数据结构和算法集合
- algorithms - 算法和数据结构。CLRS 研究。
- go-datastructures - 有用的、高性能的和线程安全的数据结构的集合。
- gods - 围棋数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet 等。
- gostl - go 的数据结构和算法库,旨在提供类似于 C++ STL 的功能。
迭代器
地图
另请参阅数据库了解更复杂的键值存储,以及树了解其他有序映射实现。
- cmap - 用于 go 的线程安全并发映射,支持用作
interface{}
键和自动扩展分片。 - dict -Go 的类似 Python 的字典(dict)。
- goradd/maps - 用于地图的 Go 1.18+ 通用地图界面;安全地图;有序地图;有序、安全的地图;ETC。
杂项数据结构和算法
- concurrent-writer - 高度并发的
bufio.Writer
. - conjungo - 一个小巧、强大且灵活的合并库。
- count-min-log - Go 实现 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用更少的内存)。
- fsm - 有限状态机包。
- genfuncs - 受 Kotlin 的 Sequence 和 Map 启发的 Go 1.18+ 泛型包.
- go-generics - 通用切片、映射、集合、迭代器和 goroutine 实用程序。
- go-geoindex - 内存中地理索引。
- go-rampart - 确定间隔如何相互关联。
- go-rquad - 具有高效点定位和邻居查找的区域四叉树。
- go-tuple -Go 1.18+ 的通用元组实现。
- go18ds - 使用 Go 1.18 泛型的 Go 数据结构。
- gofal -Go 的小数 api。
- gogu - 一个全面、可重用和高效的并发安全泛型实用函数和数据结构库。
- gota - 为 Go 实现数据帧、系列和数据整理方法。
- 隐藏- ID 类型与编组到/从散列以防止向客户端发送 ID。
- hilbert - 用于将值映射到空间填充曲线(例如 Hilbert 和 Peano 曲线)和从空间填充曲线映射值的 Go 包。
- hyperloglog - 具有稀疏、LogLog-Beta 偏差校正和 TailCut 空间减少的 HyperLogLog 实现。
- 四叉树- 通用、零分配、100% 测试覆盖的四叉树。
- 切片- 对切片进行操作的函数;喜欢
package strings
但适用于切片。 - slices - 切片的纯通用函数。
可空类型
队列
- deque - 高度优化的双端队列。
- deque - 快速环形缓冲区双端队列(双端队列)。
- goconcurrentqueue - 并发 FIFO 队列。
- memlog - 受 Apache Kafka 启发的易于使用、轻量级、线程安全且仅附加的内存数据结构。
- queue -Go 的多线程安全、通用队列实现。
套
- dsu -Go 中的不相交集数据结构实现。
- golang-set -Go 的线程安全和非线程安全高性能集。
- goset - 一个有用的 Go 集合集合实现。
- set - 使用 LinkedHashMap 在 Go 中实现简单的集合数据结构。
文本分析
- bleve - 用于 go 的现代文本索引库。
- go-adaptive-radix-tree - 自适应基数树的 Go 实现。
- go-edlib - 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
- levenshtein - Levenshtein 距离和相似性度量,具有可自定义的编辑成本和类似 Winkler 的公共前缀奖励.
- levenshtein - 在 Go 中计算 levenshtein 距离的实现。
- mspm - 用于信息检索的多字符串模式匹配算法。
- parsefields - 用于解析类似 JSON 的日志以收集唯一字段和事件的工具。
- ptrie - 前缀树的实现。
- trie -Go 中的 Trie 实现。
树木
- hashsplit - 将字节流拆分成块,并将块排列成树,边界由内容决定,而不是位置。
- merkle - Merkle 根哈希和包含证明的空间高效计算.
- skiplist - 非常快速的 Go Skiplist 实现。
- skiplist -Go 中的 Skiplist 实现。
- treap - 使用树堆的持久、快速有序的地图。
- treemap - 使用引擎盖下的红黑树的通用键排序映射。
管道
- ordered-concurrently - 并发处理工作并按输入顺序在通道中返回输出的 Go 模块。
- parapipe - FIFO 管道,它在每个阶段并行执行,同时保持消息和结果的顺序。
- pipeline - 具有扇入和扇出的管道的实现。
数据库
缓存
具有过期记录的数据存储、内存分布式数据存储或基于文件的数据库的内存子集。
- 2q - 2Q 内存缓存实现。
- bcache - 最终一致的分布式内存缓存 Go 库。
- BigCache - 千兆字节数据的高效键/值缓存。
- cache - 内存中的键:具有过期时间的值存储,0 依赖性,<100 LoC,100% 覆盖率。
- cache2go - 内存中的键:值缓存,支持基于超时的自动失效。
- cachego - 用于多个驱动程序的 Golang 缓存组件。
- clusteredBigCache - 具有集群支持和单个项目过期的 BigCache。
- couchcache - 由 Couchbase 服务器支持的 RESTful 缓存微服务。
- fastcache - 用于大量条目的快速线程安全内存缓存。最小化 GC 开销。
- GCache - 支持过期缓存、LFU、LRU 和 ARC 的缓存库。
- gdcache - 一个由 golang 实现的纯非侵入式缓存库,你可以用它来实现你自己的分布式缓存。
- go-cache - 一个灵活的多层 Go 缓存库,通过采用 Cache-Aside 模式处理内存和共享缓存。
- go-mcache - 快速内存中键:值存储/缓存库。指针缓存。
- gocache - 一个完整的 Go 缓存库,具有多个存储(内存、内存缓存、redis 等)、可链接、可加载、指标缓存等。
- groupcache - Groupcache 是一个缓存和缓存填充库,在许多情况下旨在替代 memcached。
- imcache - 一个通用的内存缓存 Go 库。它支持过期、滑动过期、最大条目限制、驱逐回调和分片。
- nscache - 一个支持多数据源驱动的 Go 缓存框架。
- remember-go - 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或内存中支持)。
- theine - 高性能,接近最佳的内存缓存,具有主动 TTL 到期和泛型。
- timedmap - 具有过期键值对的映射。
- ttlcache - 具有项目过期和泛型的内存缓存。
- ttlcache - 内存中的键值存储,每条记录都有 TTL。
Go 中实现的数据库
- badger -Go 中的快速键值存储。
- bbolt - Go 的嵌入式键/值数据库。
- Bitcask - Bitcask 是一种可嵌入、持久且快速的键值 (KV) 数据库,采用纯 Go 语言编写,具有可预测的读/写性能、低延迟和高吞吐量,这要归功于 bitcask 磁盘布局 (LSM+WAL)。
- buntdb - 用于 Go 的快速、可嵌入、内存中键/值数据库,具有自定义索引和空间支持。
- 三叶草- 用纯 Golang 编写的轻量级面向文档的 NoSQL 数据库。
- cockroach - 可扩展、地理复制、事务性数据存储。
- Coffer - 支持事务的简单 ACID 键值数据库。
- column - 具有位图索引和事务的高性能、柱状、可嵌入的内存存储。
- CovenantSQL - CovenantSQL 是区块链上的 SQL 数据库。
- Databunker - 为遵守 GDPR 和 CCPA 而构建的个人身份信息 (PII) 存储服务。
- dgraph - 可扩展、分布式、低延迟、高吞吐量图形数据库。
- diskv - 本地磁盘支持的键值存储。
- dolt - Dolt – 它是用于数据的 Git.
- dtf - 分布式事务管理器。支持 XA、TCC、SAGA、可靠消息。
- eliasdb - 具有 REST API、短语搜索和类似 SQL 查询语言的无依赖性事务图形数据库。
- godis - Golang 实现的高性能 Redis 服务器和集群。
- goleveldb - 在 Go 中实现LevelDB键/值数据库。
- hare - 一个简单的数据库管理系统,将每个表存储为以行分隔的 JSON 文本文件。
- immudb - immudb 是一个轻量级、高速的不可变数据库,适用于用 Go 编写的系统和应用程序。
- influxdb - 用于指标、事件和实时分析的可扩展数据存储。
- ledisdb -Ledisdb 是一种高性能 NoSQL,类似于基于 LevelDB 的 Redis。
- levigo -Levigo 是 LevelDB 的 Go 包装器.
- libradb - LibraDB 是一个简单的数据库,只有不到 1000 行代码供学习。
- lotusdb - 与 lsm 和 b+tree 兼容的快速 k/v 数据库。
- Milvus - Milvus 是一个用于嵌入管理、分析和搜索的矢量数据库.
- moss -Moss 是一个简单的 LSM 键值存储引擎,用 100% Go 编写。
- nutsdb -Nutsdb 是一个简单、快速、可嵌入、持久的键/值存储,用纯 Go 编写。它支持完全可序列化的事务和许多数据结构,如列表、集合、有序集合。
- objectbox-go - 带有 Go API 的高性能嵌入式对象数据库 (NoSQL)。
- piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎。
- pogreb - 用于读取繁重工作负载的嵌入式键值存储。
- prometheus - 监控系统和时间序列数据库。
- 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 字节。
- bytebase - 用于 DevOps 团队的安全数据库模式更改和版本控制。
- darwin -Go 的数据库模式演化库。
- dbmate - 轻量级、框架不可知的数据库迁移工具。
- go-fixtures - 用于 Golang 出色的内置数据库/sql 库的 Django 风格固定装置。
- go-pg-migrate - 用于 go-pg 迁移管理的 CLI 友好包。
- go-pg-migrations - 一个 Go 包,用于帮助使用 go-pg/pg 编写迁移。
- goavro - 一个对 Avro 数据进行编码和解码的 Go 包。
- godfish - 数据库迁移管理器,使用本机查询语言。支持 cassandra、mysql、postgres、sqlite3。
- goose - 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。
- gorm-seeder -Gorm ORM 的简单数据库播种机。
- gormigrate -Gorm ORM 的数据库模式迁移助手。
- libschema - 在每个库中分别定义您的迁移。开源库的迁移。MySQL 和 PostgreSQL。
- 迁移- 数据库迁移。CLI 和 Golang 库。
- migrator - 非常简单的 Go 数据库迁移库。
- migrator - MySQL 数据库迁移器,旨在运行迁移到您的功能并使用直观的 go 代码管理数据库模式更新。
- schema - 用于在 Go 二进制文件中嵌入数据库/sql 兼容数据库的模式迁移的库。
- skeema - 用于 MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。
- soda - 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。
- sql-migrate - 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。
- sqlize - 数据库迁移生成器。允许通过区分模型和现有 sql 来生成 sql 迁移。
数据库工具
- chproxy - ClickHouse 数据库的 HTTP 代理。
- clickhouse-bulk - 收集小插入并将大请求发送到 ClickHouse 服务器。
- datagen - 一种快速数据生成器,支持多表并支持多行 DML。
- dbbench - 支持多个数据库和脚本的数据库基准测试工具。
- dynago - 简化使用 AWS DynamoDB 的工作。
- go-mysql - 用于处理 MySQL 协议和复制的 Go 工具集。
- go-mysql-elasticsearch - 自动将您的 MySQL 数据同步到 Elasticsearch。
- hasql - 用于访问多主机 SQL 数据库安装的库。
- kingshard -kingshard 是由 Golang 提供支持的 MySQL 的高性能代理。
- octillery - 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL)。
- onedump - 使用一个命令和配置将数据库从不同的驱动程序备份到不同的目的地。
- orchestrator -MySQL 复制拓扑管理器和可视化器。
- pg_timetable - PostgreSQL 的高级调度。
- pgweb - 基于 Web 的 PostgreSQL 数据库浏览器。
- prep - 在不更改代码的情况下使用准备好的 SQL 语句。
- perst - 简化和加速开发,⚡在任何现有或新的 Postgres 应用程序上即时、实时、高性能。
- rdb - 用于二次开发和内存分析的 Redis RDB 文件解析器。
- rwdb - rwdb 为多个数据库服务器设置提供只读副本功能。
- vitess - vitess 提供服务器和工具,有助于为大规模 Web 服务扩展 MySQL 数据库。
SQL 查询生成器
用于构建和使用 SQL 的库。
- bqb - 轻量级且易于学习的查询构建器。
- buildsqlx - 用于 PostgreSQL 的 Go 数据库查询构建器库。
- builq - 在 Go 中轻松构建 SQL 查询。
- dbq - Go 的零样板数据库操作。
- Dotsql - 帮助您将 sql 文件保存在一个地方并轻松使用它们的 Go 库。
- gendry - 非侵入式 SQL 构建器和强大的数据绑定器。
- godbal - 用于 go 的数据库抽象层 (dbal)。支持 SQL 生成器并轻松获得结果。
- 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、结构化文件的数据存储连接。
- go-transaction-manager - 具有多个适配器(sql、sqlx、gorm、mongo 等)的事务管理器控制事务边界。
- gokv - Go 的简单键值存储抽象和实现(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等等)。
关系数据库驱动程序
- avatica - 用于数据库/sql 的 Apache Avatica/Phoenix SQL 驱动程序。
- bgc - 用于 BigQuery 的数据存储区连接。
- firebirdsql - 用于 Go 的 Firebird RDBMS SQL 驱动程序。
- go-adodb - 用于使用数据库/sql 的 go 的 Microsoft ActiveX 对象数据库驱动程序。
- go-mssqldb - 用于 Go 的 Microsoft MSSQL 驱动程序。
- go-oci8 - 使用数据库/sql 的 go Oracle 驱动程序。
- go-sql-driver/mysql - Go 的 MySQL 驱动程序。
- go-sqlite3 - 使用数据库/sql 的 SQLite3 驱动程序。
- godror -Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。
- gofreetds - 微软 MSSQL 驱动程序。对FreeTDS进行包装。
- KSQL - 一个简单而强大的 Golang SQL 库
- pgx - PostgreSQL 驱动程序支持的功能超出了数据库/sql 公开的功能。
- pig - 简单的pgx包装器,可以轻松执行和扫描查询结果。
- pq - 用于数据库/sql 的纯 Go Postgres 驱动程序。
- Sqinn-Go - 带有纯 Go 的 SQLite.
- sqlhooks - 将挂钩附加到任何数据库/sql 驱动程序。
- ydb-go-sdk - 本机和数据库/sql 驱动程序 YDB(Yandex 数据库)
NoSQL 数据库驱动程序
- aerospike-client-go -Go 语言的 Aerospike 客户端。
- arangolite - 用于 ArangoDB 的轻量级 golang 驱动程序。
- asc - 用于 Aerospike for go 的数据存储连接.
- forestdb - ForestDB 的 Go 绑定。
- go-couchbase -Go 中的 Couchbase 客户端。
- go-pilosa - Pilosa 的 Go 客户端库。
- 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 - 受绝地武士启发,由 golang 实现的 redis 客户端。
- godscache - Google Cloud Platform Go Datastore 包的包装器,使用 memcached 添加缓存。
- gomemcache - Go 编程语言的内存缓存客户端库。
- gorethink -RethinkDB 的 Go 语言驱动程序。
- goriak -Riak KV 的 Go 语言驱动程序。
- Kivik -Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库。
- mgm - 用于 Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序)。
- mgo -(未维护)用于 Go 语言的 MongoDB 驱动程序,它在遵循标准 Go 习语的非常简单的 API 下实现了丰富且经过良好测试的功能选择。
- mongo-go-driver -Go 语言的官方 MongoDB 驱动程序。
- neo4j - Golang 的 Neo4j Rest API 绑定.
- Neo4j-GO -golang 中的 Neo4j REST 客户端.
- neoism -Golang 的 Neo4j 客户端.
- qmgo - 用于 Go 的 MongoDB 驱动程序。它基于官方 MongoDB 驱动程序,但更易于使用,如 Mgo。
- redeo -Redis 协议兼容的 TCP 服务器/服务。
- redigo - Redigo 是 Redis 数据库的 Go 客户端。
- redis -Golang 的 Redis 客户端。
- rueidis - 具有自动流水线和服务器辅助客户端缓存的快速 Redis RESP3 客户端。
- xredis - 类型安全、可定制、干净且易于使用的 Redis 客户端。
搜索和分析数据库
- elastic -Go 的 Elasticsearch 客户端。
- elasticsql - 在 Go 中将 sql 转换为 elasticsearch dsl.
- elastigo - Elasticsearch 客户端库。
- go-elasticsearch -Go 的官方 Elasticsearch 客户端。
- goes - 与 Elasticsearch 交互的库。
- skizze - 概率数据结构服务和存储。
日期和时间
用于处理日期和时间的库。
- carbon - 用于日期时间的简单、语义化且对开发人员友好的 golang 包。
- carbon - 带有很多实用方法的简单时间扩展,从 PHP Carbon 库移植而来。
- cronrange - 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。
- date - 用于处理日期、日期范围、时间跨度、期间和一天中的时间的 Augments Time。
- dateparse - 在事先不知道格式的情况下解析日期。
- durafmt -Go 的持续时间格式化库。
- feiertage - 一组用于计算德国公共假期的函数,包括。专门研究德国各州 (Bundesländer)。像复活节、五旬节、感恩节...
- go-anytime - 在事先不知道格式的情况下解析日期/时间,如“下一个 12 月 22 日下午 3 点”,范围如“从今天到下星期四”。
- go-persian-calendar - Go (golang) 中波斯语(Solar Hijri)日历的实现。
- go-str2duration - 将字符串转换为持续时间。支持 time.Duration 返回字符串等。
- go-sunrise - 计算给定位置的日出和日落时间。
- go-week - 使用 ISO8601 周日期的高效软件包。
- gostradamus - 用于处理日期的 Go 包。
- iso8601 - 无需正则表达式即可有效解析 ISO8601 日期时间.
- kair - 日期和时间 - Golang 格式化库。
- now -Now 是 golang 的时间工具包。
- NullTime - 可为空
time.Time
。 - strftime - C99 兼容的 strftime 格式化程序。
- timespan - 用于与时间间隔交互,定义为开始时间和持续时间。
- timeutil - golang 时间包的有用扩展(Timedelta、Strftime 等)。
- tuesday -Ruby 兼容的 Strftime 函数.
分布式系统
帮助构建分布式系统的包。
- arpc - 更有效的网络通信,支持双向调用、通知、广播。
- celeriac - 用于添加对在 Go 中交互和监控 Celery 工作人员、任务和事件的支持的库。
- consistent - 具有有限负载的一致散列。
- consistenthash - 具有可配置副本的一致哈希。
- dht - BitTorrent Kademlia DHT 实现.
- digota -grpc 电子商务微服务。
- dot - 使用操作转换/OT 的分布式同步。
- doublejump - 改进后的 Google 跳跃一致性哈希。
- dragonboat - Go 中功能完整且高性能的多组 Raft 库。
- Dragonfly - 基于p2p技术提供高效、稳定、安全的文件分发和图片加速,成为云原生架构的最佳实践和标准方案。
- drmaa - 基于 DRMAA 标准的集群调度程序的作业提交库。
- dynamolock - DynamoDB 支持的分布式锁定实现。
- dynatomic - 将 DynamoDB 用作原子计数器的库。
- emitter-io - 使用 MQTT、Websockets 和 love 构建的高性能、分布式、安全和低延迟的发布-订阅平台。
- failed - 分布式系统的自适应应计故障检测器。
- flowgraph - 基于流的编程包。
- gleam - 用纯 Go 和 Luajit 编写的快速且可扩展的分布式 map/reduce 系统,结合了 Go 的高并发性和 Luajit 的高性能,独立运行或分布式运行。
- glow - 易于使用的可扩展分布式大数据处理、Map-Reduce、DAG 执行,全部采用纯 Go 语言。
- gmsec - Go 分布式系统开发框架。
- go-doudou - 基于八卦协议和 OpenAPI 3.0 规范的去中心化微服务框架。专注于低代码和快速开发的内置 go-doudou cli 可以提高您的工作效率。
- go-health - 用于在您的服务中启用异步依赖项健康检查的库。
- go-jump - Google 的“Jump”一致性哈希函数的端口。
- go-kit - 支持服务发现、负载均衡、可插拔传输、请求跟踪等的微服务工具包。
- go-micro - 分布式系统开发框架。
- go-mysql-lock - 基于 MySQL 的分布式锁。
- 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 客户端实现。
- Kitex - 一个高性能和强扩展性的 Golang RPC 框架,帮助开发者构建微服务。如果您在开发微服务时主要关注性能和可扩展性,那么 Kitex 是一个不错的选择。
- 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 服务框架。
- 信号量- 一个简单的(微)服务编排器。
- sleuth - 用于 HTTP 服务之间的无主 p2p 自动发现和 RPC 的库(使用ZeroMQ)。
- torrent - BitTorrent 客户端包。
动态域名系统
更新动态 DNS 记录的工具。
- DDNS - 以数字海洋网络 DNS 作为后端的个人 DDNS 客户端。
- dyndns - 后台程序定期自动检查您的 IP 地址,并在您的地址发生变化时更新(一个或多个)Google 域的动态 DNS 记录。
- GoDNS - 动态 DNS 客户端工具,支持 DNSPod 和 HE.net,用 Go 编写。
电子邮件
实现电子邮件创建和发送的库和工具。
- chasquid - 用 Go 编写的 SMTP 服务器。
- douceur - 用于 HTML 电子邮件的 CSS 内联器。
- email - 一个强大而灵活的 Go 电子邮件库。
- email-verifier - 用于电子邮件验证的 Go 库,无需发送任何电子邮件。
- go-dkim - DKIM 库,用于签署和验证电子邮件。
- go-email-normalizer - 用于提供电子邮件地址规范表示的 Golang 库。
- go-email-validator - 用于语法、一次性、smtp 等...检查的模块化电子邮件验证器。
- go-imap - 用于客户端和服务器的 IMAP 库。
- go-mail - 一个简单的 Go 库,用于在 Go 中发送邮件。
- go-message - 用于 Internet 消息格式和邮件消息的流媒体库。
- go-premailer -Go 中 HTML 邮件的内联样式。
- go-simple-mail - 非常简单的包,用于发送带有 SMTP Keep Alive 和两个超时的电子邮件:连接和发送。
- Hectane - 提供 HTTP API 的轻量级 SMTP 客户端.
- hermes - 生成干净、响应迅速的 HTML 电子邮件的 Golang 包。
- mailchain - 将加密的电子邮件发送到用 Go 编写的区块链地址。
- mailgun-go - 用于使用 Mailgun API 发送邮件的 Go 库。
- MailHog - 使用 Web 和 API 接口进行电子邮件和 SMTP 测试。
- Mailpit - 面向开发人员的电子邮件和 SMTP 测试工具。
- mailx - Mailx 是一个库,可以更轻松地通过 SMTP 发送电子邮件. 它是 golang 标准库的增强版
net/smtp
。 - SendGrid -SendGrid 用于发送电子邮件的 Go 库。
- smtp - SMTP 服务器协议状态机。
- smtpmock - 轻量级可配置多线程假 SMTP 服务器。为您的测试环境模仿任何 SMTP 行为。
- truemail-go - 可配置的 Golang 电子邮件验证器/验证器。通过 Regex、DNS、SMTP 等验证电子邮件。
嵌入式脚本语言
在你的代码中嵌入其他语言。
- anko - 用 Go 编写的脚本解释器。
- binder - 转到基于gopher-lua的 Lua 绑定库。
- cel-go - 快速、便携、非图灵完整的表达式评估,逐步打字。
- ecal - 一种支持并发事件处理的简单可嵌入脚本语言。
- expr -Go 的表达式评估引擎:快速、非图灵完备、动态类型、静态类型。
- gentee - 可嵌入的脚本编程语言。
- gisp -Go 中的简单 LISP.
- go-duktape -Go 的 Duktape JavaScript 引擎绑定.
- go-lua - 将 Lua 5.2 VM 移植到纯 Go。
- go-php -Go 的 PHP 绑定。
- go-python - 天真的去绑定到 CPython C-API。
- goja -Go 中的 ECMAScript 5.1(+) 实现.
- golua - Lua C API 的 Go 绑定。
- gopher-lua - 用 Go 编写的 Lua 5.1 VM 和编译器。
- gval - 用 Go 编写的高度可定制的表达式语言。
- metacall - 支持 NodeJS、JavaScript、TypeScript、Python、Ruby、C#、WebAssembly、Java、Cobol 等的跨平台多语言运行时。
- ngaro - 可嵌入的 Ngaro VM 实现在 Retro 中启用脚本。
- prolog - 可嵌入的 Prolog。
- purl -Go 中嵌入的 Perl 5.18.2.
- starlark-go - Starlark 的 Go 实现:具有确定性评估和密封执行的类 Python 语言。
- 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 - 一个简单但功能强大的错误处理包。
- Fault - 一种用于包装错误的符合人体工程学的机制,以促进错误值的结构化元数据和上下文。
- go-multierror - Go (golang) 包,用于将错误列表表示为单个错误。
- tracerr - 堆栈跟踪和源代码片段的 Golang 错误。
文件处理
用于处理文件和文件系统的库。
- afero -Go 的文件系统抽象系统。
- afs -Go 的抽象文件存储(mem、scp、zip、tar、cloud:s3、gs)。
- baraka - 一个轻松处理 http 文件上传的库。
- bigfile - 文件传输系统,支持使用 http api、rpc 调用和 ftp 客户端管理文件。
- 校验和- 为大文件计算消息摘要,如 MD5、SHA256、SHA1、CRC 或 BLAKE2s。
- copy - 递归复制目录。
- flop - 旨在与GNU cp镜像功能奇偶校验的文件操作库。
- gdu - 带有控制台界面的磁盘使用分析器。
- go-csv-tag - 使用标签加载 csv 文件。
- go-decent-copy - 为人类复制文件。
- go-exiftool - ExifTool 的 Go 绑定,这是一个著名的库,用于从文件(图片、PDF、office 等)中提取尽可能多的元数据(EXIF、IPTC 等)。
- go-gtfs - 在 go 中加载 gtfs 文件。
- gofs - 开箱即用的文件同步工具。
- gut/yos - 简单可靠的文件操作包,如文件、目录和符号链接上的复制/移动/差异/列表。
- higgs - 一个小型的跨平台 Go 库,用于隐藏/取消隐藏文件和目录。
- notify - 具有简单 API 的文件系统事件通知库,类似于 os/signal。
- opc - 为 Go 加载开放打包约定 (OPC) 文件。
- parquet - 读写parquet文件。
- pathtype - 将路径视为它们自己的类型而不是使用字符串。
- pdfcpu -PDF 处理器。
- skywalker - 允许一个人轻松地同时通过文件系统的软件包。
- stl - 用于读取和写入 STL(立体光刻)文件的模块。读取并发算法。
- tarfs - tar 文件
FileSystem
接口的实现。 - todotxt - Gina Trapani 的todo.txt文件的 Go 库,支持解析和操作todo.txt格式的任务列表。
- vfs - 适用于 Go 的一组可插入、可扩展和固定的文件系统功能,适用于多种文件系统类型,例如 os、S3 和 GCS。
金融的
会计和财务软件包。
- accounting - golang 的货币和货币格式。
- ach - 自动清算所 (ACH) 文件的读取器、写入器和验证器。
- bbgo - 用 Go 编写的加密货币交易机器人框架。包括常见的加密货币交易所 API、标准指标、回溯测试和许多内置策略。
- currency - 处理货币金额,提供货币信息和格式。
- currency - 高性能和准确的货币计算包。
- decimal - 任意精度定点十进制数。
- fpdecimal - 小定点小数的快速和精确的序列化和算术
- fpmoney - 快速简单的 ISO4217 定点十进制货币。
- go-finance - 货币时间价值(年金)、现金流、利率转换、债券和折旧计算的金融函数库。
- go-finance - 用于获取汇率、通过 VIES 检查增值税号和检查 IBAN 银行帐号的模块。
- go-finnhub - 来自 finnhub.io 的股票市场、外汇和加密数据的客户端。从 60 多家证券交易所、10 家外汇经纪商和 15 多家加密货币交易所访问实时金融市场数据。
- go-money - 福勒货币模式的实施。
- ofxgo - 查询 OFX 服务器和/或解析响应(使用示例命令行客户端)。
- orderbook -Golang 中的限价订单簿匹配引擎。
- payme - 用于 SEPA 付款的 QR 码生成器(ASCII 和 PNG)。
- sleet - 多个支付服务提供商 (PsP) 处理在线支付的统一界面。
- techan - 具有高级市场分析和交易策略的技术分析库。
- ticker - 终端股票观察者和股票头寸跟踪器。
- transaction - 嵌入式账户交易数据库,以多线程模式运行。
- 增值税- 增值税号验证和欧盟增值税税率。
形式
用于处理表单的库。
- bind - 将表单数据绑定到任何 Go 值。
- 绑定- 将来自 net/http 请求的表单和 JSON 数据绑定到结构。
- conform - 检查用户输入。根据结构标签修剪、清理和清理数据。
- form - 将 url.Values 解码为 Go 值并将 Go 值编码为 url.Values。双阵列和全地图支持。
- formam - 将表单的值解码为结构。
- forms - 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON 数据。
- gbind - 将数据绑定到任何 Go 值。可以使用内置和自定义表达式绑定功能;支持数据校验
- gorilla/csrf -Go web 应用程序和服务的 CSRF 保护。
- httpin - 将 HTTP 请求解码为自定义结构,包括查询字符串、表单、HTTP 标头等。
- nosurf -Go 的 CSRF 保护中间件。
- qs - 用于将结构编码为 URL 查询参数的 Go 模块。
- queryparam - 解码
url.Values
为标准或自定义类型的可用结构值。
功能性
支持 Go 中函数式编程的包。
- fp-go - 由 Golang 1.18+ 泛型提供支持的函数式编程助手集合。
- fpGo - Monad,Golang 的函数式编程功能。
- fuego -Go 中的功能实验。
- go-underscore - 有用的 Go 集合实用程序的有用集合。
- gofp - 类似 lodash 的强大 Golang 实用程序库。
- mo - Monads 和流行的 FP 抽象,基于 Go 1.18+ Generics(Option,Result,Either ...)。
- underscore -Go 1.18 及更高版本的函数式编程助手。
- valor - 可选地包含值的通用选项和结果类型。
游戏开发
很棒的游戏开发库。
- Azul3D - 用 Go 编写的 3D 游戏引擎。
- Ebitengine - Go 中非常简单的 2D 游戏引擎。
- engo - Engo 是一个用 Go 编写的开源 2D 游戏引擎。它遵循实体-组件-系统范式。
- fantasyname - 幻想名称生成器。
- g3n - Go 3D 游戏引擎。
- go-astar -A * 路径查找算法的 Go 实现。
- go-sdl2 -简单 DirectMedia 层的 Go 绑定。
- go3d - 用于 Go 的面向性能的 2D/3D 数学包。
- gonet - 使用 golang 实现的游戏服务器框架。
- goworld - 可扩展的游戏服务器引擎,具有空间实体框架和热插拔。
- Harfang3D - Go 语言的 3D 引擎,适用于 Windows 和 Linux(Go.dev 上的 Harfang)。
- Leaf - 轻量级游戏服务器框架。
- nano - 轻量级、设施化、高性能的基于 golang 的游戏服务器框架。
- Oak - 纯围棋游戏引擎。
- Pitaya - 可扩展的游戏服务器框架,通过 C SDK 为 iOS、Android、Unity 等提供集群支持和客户端库。
- Pixel -Go 中手工制作的 2D 游戏库.
- prototype - 跨平台(Windows/Linux/Mac)库,用于使用最少的 API 创建桌面游戏。
- raylib-go - raylib的 Go 绑定,这是一个简单易用的库,用于学习视频游戏编程。
- termloop - 基于终端的围棋游戏引擎,建立在 Termbox 之上。
- tile - 面向数据且缓存友好的 2D 网格库 (TileMap),包括寻路、观察者和导入/导出。
发电机
生成 Go 代码的工具。
- convergen - 功能丰富的类型到类型的复制代码生成器。
- copygen - 无需反射即可生成类型到类型和基于类型的代码。
- generis - 提供泛型、自由格式宏、条件编译和 HTML 模板的代码生成工具。
- go-enum - 从代码注释中为枚举生成代码。
- go-linq - 用于 Go 的类似于 .NET LINQ 的查询方法。
- goderive - 从输入类型派生函数。
- gotype - Golang 源代码解析,用法类似于 reflect 包。
- goverter - 通过定义接口生成转换器。
- GoWrap - 使用简单模板为 Go 接口生成装饰器。
- interfaces - 用于生成接口定义的命令行工具。
- jennifer - 生成没有模板的任意 Go 代码。
- typeregistry - 动态创建类型的库。
地理的
地理工具和服务器
- geoserver -geoserver 是一个用于通过 GeoServer REST API 操作 GeoServer 实例的 Go 包。
- gismanager - 将您的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver。
- godal -GDAL 的包装器。
- H3 - 用于 H3 的 Go 绑定,H3 是一个分层的六边形地理空间索引系统。
- H3 GeoJSON - H3 索引和 GeoJSON 之间的转换实用程序。
- H3GeoDist - 按虚拟节点分布 Uber H3geo 单元。
- mbtileserver - 一个简单的基于 Go 的服务器,用于以 mbtiles 格式存储的地图图块。
- osm - 用于读取、写入和使用 OpenStreetMap 数据和 API 的库。
- pbf -OpenStreetMap PBF golang 编码器/解码器。
- S2 geojson - 将 geojson 转换为 s2 单元格并在地图上演示一些 S2 几何特征。
- S2 geometry -Go 中的 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 - Transpile 进入 Arduino 代码。
- f4go - 将 FORTRAN 77 代码转换为 Go 代码。
- gopherjs - 从 Go 到 JavaScript 的编译器。
- tardisgo -Golang 到 Haxe 到 CPP/CSharp/Java/JavaScript 转译器。
协程
用于管理和使用 Goroutines 的工具。
- ants - Go 中的高性能和低成本 goroutine 池。
- artifex - 使用基于工作人员的调度的 Golang 简单内存作业队列。
- async -Go 的替代同步库(Future、Promise、Locks)。
- async - 一种安全的异步执行函数的方法,在出现 panic 时恢复它们。
- async-job -AsyncJob 是一个异步队列作业管理器,代码轻,清晰,速度快。
- breaker - 使执行流程可中断的灵活机制。
- channelify - 将您的函数转换为返回通道以实现简单而强大的并行处理。
- conc -
conc
是您在 go 中进行结构化并发的工具带,使常见任务更容易、更安全。 - concurrency-limiter - 并发限制器,支持 goroutine 的超时、动态优先级和上下文取消。
- conexec - 一个并发工具包,可帮助以高效和安全的方式并发执行函数。支持指定整体超时时间避免阻塞,使用goroutine pool提高效率。
- cyclicbarrier -golang 的 CyclicBarrier.
- execpool - 一个围绕 exec.Cmd 构建的池,它预先启动给定数量的进程,并在需要时将 stdin 和 stdout 附加到它们。与 FastCGI 或 Apache Prefork MPM 非常相似,但适用于任何命令。
- go-actor - 一个使用 actor 模型编写并发程序的小型库。
- go-floc - 轻松编排 goroutines。
- go-flow - 控制 goroutines 执行顺序。
- go-tools/multithreading - 使用这个带有简单 API 的轻量级库来管理 goroutines 池。
- go-trylock - 对 Golang 的读写锁的 TryLock 支持。
- go-waitgroup - 类似于
sync.WaitGroup
错误处理和并发控制。 - go-workerpool - 受 Java 线程池的启发,Go WorkerPool 旨在控制繁重的 Go Routines。
- go-workers - 轻松安全地为大型数据处理管道运行工作人员。
- goccm - Go 并发管理器包限制允许并发运行的 goroutines 的数量。
- gohive - 用于 Go 的高性能且易于使用的 Goroutine 池。
- gollback - 异步简单函数实用程序,用于管理闭包和回调的执行。
- gowl - Gowl 是一个流程管理和流程监控工具。无限工作池使您能够控制池和进程并监视它们的状态。
- goworker -goworker 是一个基于 Go 的后台工作者。
- gowp - gowp 是并发限制 goroutine 池。
- gpool - 管理一个可调整大小的上下文感知 goroutines 池以绑定并发性。
- grpool - 轻量级 Goroutine 池。
- hands - 一个进程控制器,用于控制多个 goroutine 的执行和返回策略。
- Hunch
All
- Hunch 提供了、First
、等功能,使异步流控制更加直观Retry
。Waterfall
- kyoo - 提供无限的作业队列和并发工作池。
- neilotoole/errgroup - 的替代品
sync/errgroup
,仅限于 N 个 worker goroutines 池。 - nursery -Go 中的结构化并发。
- 监督- 监督是 Erlang 监督树的完整实现。
- parallel-fn - 并行运行函数。
- pond - 用 Go 编写的简约和高性能 goroutine 工作池。
- pool - 有限的消费者 goroutine 或无限的 goroutine 池,以便于 goroutine 处理和取消。
- 队列- 为您提供
sync.WaitGroup
类似队列组的可访问性。帮助您节制和限制 goroutines,等待所有 goroutines 结束等等。 - routine -
routine
是一个ThreadLocal
用于 go 的库。它封装并提供了一些易用、无竞争、高性能的goroutine
上下文访问接口,可以帮助你更优雅地访问协程上下文信息。 - 例程- 使用上下文进行例程控制,支持:Main、Go、Pool 和一些有用的执行器。
- semaphore - 基于通道和上下文的锁定/解锁操作超时的信号量模式实现。
- semaphore - 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。
- stl - 基于软件事务内存 (STM) 并发控制机制的软件事务锁。
- threadpool -Golang 线程池实现。
- tunny -golang 的 Goroutine 池。
- worker-pool -goworker 是一个简单的 Go 异步工作池。
- 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-gtk - GTK 的 Go 绑定。
- go-sciter -Sciter的 Go 绑定:用于现代桌面 UI 开发的可嵌入 HTML/CSS/脚本引擎。跨平台。
- goradd/html5tag - 用于输出 HTML5 标签的库。
- gotk3 - GTK3 的 Go 绑定。
- gowd - 使用 GO、HTML、CSS 和 NW.js 进行快速简单的桌面 UI 开发。跨平台。
- qt -Go 的 Qt 绑定(支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)。
- ui -Go 的平台原生 GUI 库。跨平台。
- Wails - Mac、Windows、Linux 桌面应用程序,带有使用内置操作系统 HTML 渲染器的 HTML UI。
- walk -Go 的 Windows 应用程序库工具包。
- webview - 具有简单的双向 JavaScript 绑定(Windows / macOS / Linux)的跨平台 webview 窗口。
相互作用
- AppIndicator Go - libappindicator3 C 库的 Go 绑定。
- gosx-notifier -Go 的 OSX 桌面通知库。
- mac-activity-tracker - OSX 库,用于通知您机器上的任何(可插入)活动。
- mac-sleep-notifier -golang 中的 OSX 睡眠/唤醒通知.
- robotgo - 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)绑定。
- go-rpio -Go 的 GPIO,不需要 cgo。
- goroslib -Go 的机器人操作系统 (ROS) 库。
- joystick - 一个轮询 API,用于读取连接的操纵杆的状态。
- sysinfo - 提供 Linux 操作系统/内核/硬件系统信息的纯 Go 库。
图片
用于处理图像的库。
- bild - 纯 Go 中的图像处理算法集合。
- bimg - 使用 libvips 进行快速高效图像处理的小包。
- cameron -Go 的头像生成器。
- canvas - 矢量图形到 PDF、SVG 或光栅化图像。
- color-extractor - 没有外部依赖性的主要颜色提取器。
- darkroom - 具有可变存储后端和图像处理引擎的图像代理,专注于速度和弹性。
- draft - 使用简单的 YAML 语法为 GraphViz 生成高级微服务架构图。
- geopattern - 从字符串创建漂亮的生成图像模式。
- gg - 纯 Go 中的 2D 渲染。
- gift - 图像处理过滤器包。
- gltf - 高效且强大的 glTF 2.0 阅读器、编写器和验证器。
- go-cairo - 去绑定 cairo 图形库。
- go-gd - 绑定 GD 库。
- go-nude - 使用 Go 进行裸体检测。
- go-webcolors - 从 Python 到 Go 的 webcolors 库的端口。
- go-webp - 使用 libwebp 编码和解码 webp 图片的库。
- gocv - 使用 OpenCV 3.3+ 的计算机视觉 Go 包。
- goimagehash - Go 感知图像哈希包。
- goimghdr - imghdr 模块确定 Go 文件中包含的图像类型。
- govatar - 用于生成有趣头像的库和 CMD 工具。
- govips - Go 的闪电般快速图像处理和大小调整库。
- gowitness - 在命令行上使用 go 和 headless chrome 截取网页。
- gridder - 基于网格的 2D 图形库。
- image2ascii - 将图像转换为 ASCII。
- imagick - 绑定到 ImageMagick 的 MagickWand C API。
- imaginary - 用于图像大小调整的快速简单的 HTTP 微服务。
- imaging - 简单的 Go 图像处理包。
- img - 图像处理工具的选择。
- ln -Go 中的 3D 线条艺术渲染.
- mergi - 用于图像处理(合并、裁剪、调整大小、水印、动画)的 Tool & Go 库。
- mort - 用 Go 编写的存储和图像处理服务器。
- mpo - MPO 3D 照片的解码器和转换工具。
- picfit - 用 Go 编写的图像大小调整服务器。
- pt - 用 Go 编写的路径跟踪引擎。
- resize - 使用常见的插值方法调整 Go 的图像大小。
- rez - 在纯 Go 和 SIMD 中调整图像大小。
- scout -Scout 是用于 DIY 视频安全的独立开源软件解决方案。
- smartcrop - 为任意图像和裁剪尺寸找到好的裁剪。
- 隐写术- 用于 LSB 隐写术的 Pure Go 库。
- stegify - 用于 LSB 隐写术的 Go 工具,能够隐藏图像中的任何文件。
- svgo - 用于生成 SVG 的 Go 语言库。
- tga - 包 tga 是 TARGA 图像格式解码器/编码器.
- webp-server - 简单且最小的图像服务器,能够存储、调整大小、转换和缓存图像。
IoT(物联网)
物联网编程设备库。
- connectordb - 用于量化自我和物联网的开源平台。
- devices - 用于 IoT 设备的库套件,x/exp/io 的实验性。
- ekuiper - 用于物联网边缘的轻量级数据流处理引擎。
- eywa - Project Eywa 本质上是一个连接管理器,用于跟踪连接的设备。
- flogo - Project Flogo 是一个用于 IoT Edge 应用程序和集成的开源框架。
- gatt -Gatt 是用于构建低功耗蓝牙外围设备的 Go 包。
- gobot - Gobot 是机器人、物理计算和物联网的框架。
- huego - 适用于 Go 的广泛的 Philips Hue 客户端库。
- iot - IoT 是一个用于实现 Google IoT Core 设备的简单框架。
- mainflux - 工业物联网消息和设备管理服务器。
- periph - 外设 I/O 与低级板设施接口。
- sensorbee - 用于物联网的轻量级流处理引擎。
作业调度程序
用于调度作业的库。
- cdule - 具有数据库支持的作业调度程序库
- cheek - 一个简单的 crontab 类调度程序,旨在提供一种 KISS 方法来进行作业调度。
- clockwerk - Go 包使用简单、流畅的语法安排定期作业。
- cronticker - 支持 cron 计划的自动收报机实现。
- Dagu - 无代码工作流执行器。它执行以简单的 YAML 格式定义的 DAG。
- go-cron - 用于 go 的简单 Cron 库,可以在特定日期和时间以不同的时间间隔执行闭包或函数,从每秒一次到每年一次。主要用于 Web 应用程序和长时间运行的守护进程。
- go-quartz - 用于 Go 的简单、零依赖的调度库。
- gocron - 简单流畅的 Go 作业调度。这是jasonlvhit/gocron的一个积极维护的分支。
- goflow - 用于快速制作 ETL/ML/AI 管道原型的工作流编排器和调度器。
- gron - 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们。
- gronx - Cron 表达式解析器、任务运行器和守护进程使用 crontab,如任务列表。
- JobRunner - 智能且功能强大的 cron 作业调度程序,内置作业排队和实时监控。
- jobs - 持久且灵活的后台作业库。
- leprechaun - 支持 webhooks、crons 和经典调度的作业调度程序。
- sched - 具有快进时间能力的作业调度程序。
- scheduler -Cronjobs 调度变得简单。
- tasks - 一个易于使用的进程内调度程序,用于 Go 中的重复任务。
JSON
用于处理 JSON 的库。
- ajson - 支持 JSONPath 的 golang 抽象 JSON。
- ask - 轻松访问地图和切片中的嵌套值。与 encoding/json 和其他将任意数据“解组”为 Go 数据类型的包结合使用。
- dynjson - 用于动态 API 的客户端可定制的 JSON 格式。
- ej - 简洁地编写和读取来自不同来源的 JSON。
- epoch - 包含用于将 Unix 时间戳/纪元编组/解组到/从内置时间的原语。JSON 中的时间类型。
- fastjson -Go 的快速 JSON 解析器和验证器。没有自定义结构,没有代码生成,没有反射。
- gjo - 创建 JSON 对象的小型实用程序。
- GJSON - 使用一行代码获取 JSON 值。
- go-jsonerror - Go-JsonError 旨在让我们轻松创建遵循 JsonApi 规范的 json 响应错误。
- go-respond - 用于处理常见 HTTP JSON 响应的 Go 包。
- gojmapr - 通过 json 路径从复杂的 json 中获取简单结构。
- gojq -Golang 中的 JSON 查询。
- gojson - 从示例 JSON 自动生成 Go (golang) 结构定义。
- htmljson - 在 Go 中将 JSON 丰富呈现为 HTML。
- JayDiff - 用 Go 编写的 JSON diff 实用程序。
- jettison - 用于 Go 的快速灵活的 JSON 编码器。
- jscan - 高性能零分配 JSON 迭代器。
- JSON-to-Go - 将 JSON 转换为 Go 结构。
- JSON-to-Proto - 在线将 JSON 转换为 Protobuf.
- json2go - 高级 JSON 到 Go 结构转换。提供可以解析多个 JSON 文档并创建适合它们的结构的包。
- jsonapi-errors - 基于 JSON API 错误参考的 Go 绑定。
- jsoncolor - 直接替换
encoding/json
输出彩色 JSON。 - jsondiff - 基于 RFC6902(JSON 补丁)的 Go 的 JSON 差异库。
- jsonf - 用于突出显示格式和结构查询获取 JSON 的控制台工具。
- jsongo - 流畅的 API,可以更轻松地创建 Json 对象。
- jsonhal - 简单的 Go 包,使自定义结构编组为 HAL 兼容的 JSON 响应。
- jsonhandlers - 公开简单处理程序的 JSON 库,使您可以轻松地从各种来源读取和写入 json。
- jsonic - 无需以类型安全的方式定义结构即可处理和查询 JSON 的实用程序。
- jzon - 具有标准兼容 API / 行为的 JSON 库。
- kazaam - 用于任意转换 JSON 文档的 API。
- mapslice-json -Go MapSlice 用于 JSON 中地图的有序编组/解组。
- marshmallow - 用于灵活用例的高性能 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 启发了具有相同严重级别的日志记录工具。
- glog -Go 的分级执行日志。
- go-cronowriter - 简单的编写器,可根据当前日期和时间自动轮换日志文件,如 cronolog。
- go-log - 具有堆栈跟踪、对象转储和可选时间戳的日志记录库。
- go-log -Go 中的简单且可配置的日志记录,具有级别、格式化程序和编写器。
- go-log - 日志库支持级别和多处理程序。
- go-log -Go 中的 Log4j 实现。
- go-logger - Go 程序的简单记录器,带有级别处理程序。
- gologger - 简单易用的 go 日志库,在彩色控制台、简单控制台、文件或 Elasticsearch 中记录。
- gomol - 用于 Go 的多输出、结构化日志记录,具有可扩展的日志记录输出。
- gone/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 - 围绕标准日志包的简单分级日志包装器。
- log - 开箱即用的简单日志记录框架。
- log-voyage - 用 golang 编写的全功能日志记录 saas。
- log15 - 简单、强大的 Go 日志记录。
- logdump - 用于多级日志记录的包。
- logex -Golang 日志库,支持跟踪和级别,由标准日志库包装。
- logger -Go 的简约日志库。
- logmatic - 具有动态日志级别配置的 Golang 彩色记录器。
- logo -Golang 记录器到不同的可配置编写器。
- logrus -Go 的结构化记录器。
- logrusiowriter -使用logrus
io.Writer
记录器实现。 - logrusly -用于将错误发送到Loggly 的logrus插件。
- logur - 一个自以为是的记录器界面和记录最佳实践的集合,带有适配器和知名库(logrus,go-kit log,zap,zerolog等)的集成。
- logutils - 用于在 Go (Golang) 中更好地记录日志的实用程序,扩展了标准记录器。
- logxi - 12 因素应用程序记录器,速度快,让你开心。
- lumberjack - 简单的滚动记录器,实现 io.WriteCloser。
- mlog - 用于 go 的简单日志记录模块,具有 5 个级别,可选的旋转日志文件功能和 stdout/stderr 输出。
- noodlog - 参数化 JSON 日志库,可让您混淆敏感数据并编组任何类型的内容。不再打印指针而不是值,也不再为 JSON 字符串转义字符。
- onelog - Onelog 是一个极其简单但非常高效的 JSON 记录器。它是所有场景中最快的 JSON 记录器。此外,它是分配最低的记录器之一。
- ozzo-log - 支持日志严重性、分类和过滤的高性能日志记录。可以将过滤后的日志消息发送到各种目标(例如控制台、网络、邮件)。
- phuslu/log - 高性能结构化日志记录。
- pp -Go 语言的彩色漂亮打印机。
- rollingwriter -RollingWriter 是一种自动轮换
io.Writer
实现,具有多种策略以提供日志文件轮换。 - seelog - 具有灵活调度、过滤和格式化的日志记录功能。
- slf4g - Golang 的简单日志记录门面:简单的结构化日志记录;但功能强大、可扩展和可定制,从过去几十年的日志框架中汲取了大量经验。
- slog - 用于 Go 的轻量级、可配置、可扩展的记录器。
- slog-formatter - 用于 slog 和 helpers 的通用格式化程序来构建你自己的。
- slog-multi - slog.Handler 链(管道、扇出...)。
- spew - 为 Go 数据结构实现一个深度漂亮的打印机以帮助调试。
- sqldb-logger - Go SQL 数据库驱动程序的记录器,无需修改现有的 *sql.DB stdlib 用法。
- stdlog - Stdlog 是一个面向对象的库,提供分级日志记录。它对 cron 作业非常有用。
- structy/log - 一个简单易用的日志系统,极简主义但具有调试和区分消息的功能。
- tail - 努力模拟 BSD tail 程序功能的 Go 包。
- tint - 写入有色日志的 slog.Handler。
- xlog -Go 的插件架构和灵活的日志系统,具有级别 ctrl、多个日志目标和自定义日志格式。
- xlog - 用于
net/context
具有灵活调度的感知 HTTP 处理程序的结构化记录器。 - xylog - 分级和结构化日志记录、动态字段、高性能、区域管理、简单配置和可读语法。
- yell - 另一个简约的日志库。
- zap - Go 中快速、结构化、分级的日志记录。
- zerolog - 零分配 JSON 记录器。
- zkits-logger - 一个强大的零依赖 JSON 记录器。
机器学习
机器学习库。
- bayesian -Golang 的朴素贝叶斯分类.
- CloudForest - 用于纯 Go 机器学习的快速、灵活、多线程的决策树集合。
- ddt - 动态决策树,创建定义可定制规则的树。
- eaopt - 一个进化优化库。
- evoli - 遗传算法和粒子群优化库。
- fonet - 用 Go 编写的深度神经网络库。
- go-cluster - k-modes 和 k-prototypes 聚类算法的 Go 实现。
- go-deep -Go 中功能丰富的神经网络库。
- go-fann - 快速人工神经网络(FANN)库的 Go 绑定。
- go-featureprocessing - 快速方便的特征处理,用于 Go 中的低延迟机器学习。
- go-galib - 用 Go / golang 编写的遗传算法库。
- go-pr -Go lang 中的模式识别包。
- gobrain - 用 go 编写的神经网络。
- godist - 各种概率分布和相关方法。
- goga -Go 的遗传算法库。
- GoLearn -Go 的通用机器学习库。
- golinear -Go 的 liblinear 绑定。
- GoMind - Go 中一个简单的神经网络库。
- goml -Go 中的在线机器学习。
- gonet -Go 的神经网络。
- Goptuna - 用 Go 编写的黑盒函数的贝叶斯优化框架。一切都会被优化。
- goRecommend - 用 Go 编写的推荐算法库。
- gorgonia - 基于图形的计算库,例如用于 Go 的 Theano,它提供用于构建各种机器学习和神经网络算法的原语。
- gorse - 基于用 Go 编写的协同过滤的离线推荐系统后端。
- goscore - 用于 PMML 的 Go 评分 API。
- gosseract - 用于 OCR(光学字符识别)的 Go 包,使用 Tesseract C++ 库。
- libsvm - 基于 LIBSVM 3.14 的 libsvm golang 版本派生工作。
- m2cgen - 一个 CLI 工具,用于将训练有素的经典 ML 模型转换为零依赖的本机 Go 代码,用 Python 编写并支持 Go 语言。
- neat - 用于增强拓扑 NeuroEvolution(NEAT)的即插即用并行 Go 框架。
- neural-go - 在 Go 中实现的多层感知器网络,通过反向传播进行训练。
- ocrserver - 一个简单的 OCR API 服务器,非常容易由 Docker 和 Heroku 部署。
- onnx-go - 打开神经网络交换(ONNX)的 Go 接口。
- probab - 概率分布函数。贝叶斯推理。用纯 Go 编写。
- randomforest - 易于使用的 Go 随机森林库。
- regommend - 推荐和协同过滤引擎。
- shield - 贝叶斯文本分类器,具有灵活的标记器和 Go 的存储后端。
- tfgo - 易于使用的 Tensorflow 绑定:简化了官方 Tensorflow Go 绑定的使用。在 Go 中定义计算图,加载和执行在 Python 中训练的模型。
- Varis -Golang 神经网络。
讯息
实现消息系统的库。
- ami - 将客户端转到基于 Redis Cluster Streams 的可靠队列。
- amqp -Go RabbitMQ 客户端库。
- APNs2 - 用于 Go 的 HTTP/2 Apple 推送通知提供程序——向 iOS、tvOS、Safari 和 OSX 应用程序发送推送通知。
- Asynq - 一个简单、可靠、高效的 Go 分布式任务队列,构建在 Redis 之上。
- Beaver - 一个实时消息服务器,用于构建可扩展的应用内通知、多人游戏、Web 和移动应用中的聊天应用。
- Benthos - 一系列协议之间的消息流桥。
- Bus - 用于内部通信的极简消息总线实现。
- Centrifugo -Go 中的实时消息传递(Websockets 或 SockJS)服务器。
- Chanify - 推送通知服务器向您的 iOS 设备发送消息。
- Commander - 高级事件驱动的消费者/生产者,支持各种“方言”,例如 Apache Kafka。
- Confluent Kafka Golang Client -confluent-kafka-go 是 Confluent 的 Apache Kafka 和 Confluent 平台的 Golang 客户端。
- dbus -D-Bus 的原生 Go 绑定。
- drone-line -使用二进制、docker 或 Drone CI发送线路通知。
- emitter - 使用 Go 方式发出事件,带有通配符、谓词、取消可能性和许多其他好的胜利。
- 事件- 模式观察者的实现。
- EventBus - 具有异步兼容性的轻量级事件总线。
- gaurun-client - 用 Go 编写的 Gaurun 客户端.
- Glue - 强大的 Go 和 Javascript 套接字库(替代 Socket.io)。
- go-mq - 具有声明性配置的 RabbitMQ 客户端。
- go-notify - freedesktop 通知规范的本机实现。
- go-nsq - NSQ 的官方 Go 包。
- go-res - 用于构建 REST/实时服务的包,其中客户端使用 NATS 和 Resgate 无缝同步。
- go-socket.io - 用于 golang 的 socket.io 库,一个实时应用程序框架。
- go-vitotrol - Viessmann Vitotrol Web 服务的客户端库。
- Gollum - 一个 n:m 多路复用器,它从不同的来源收集消息并将它们广播到一组目的地。
- golongpoll - 使 Web 发布-订阅变得简单的 HTTP longpoll 服务器库。
- gopush-cluster -gopush-cluster 是一个推送服务器集群。
- gorush - 使用APNs2和谷歌GCM 的推送通知服务器。
- gosd - 用于安排何时将消息发送到频道的库。
- guble - 使用推送通知(Google Firebase 云消息传递、Apple 推送通知服务、SMS)以及 websockets 的消息传递服务器,这是一个 REST API,具有分布式操作和消息持久性的特点。
- hare - 一个用户友好的库,用于发送消息和监听 TCP 套接字。
- hub - 用于 Go 应用程序的消息/事件中心,使用发布/订阅模式并支持别名,如 rabbitMQ 交换。
- jazz - 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费。
- machinery - 基于分布式消息传递的异步任务队列/作业队列。
- mangos - 具有传输互操作性的 Nanomsg(“可扩展性协议”)的纯 go 实现。
- melody - 用于处理 websocket 会话的极简主义框架,包括广播和自动 ping/pong 处理。
- Mercure - 服务器和库使用 Mercure 协议(建立在服务器发送事件之上)来调度服务器发送的更新。
- messagebus -messagebus 是一个简单的 Go 异步消息总线,非常适合在进行事件源、CQRS、DDD 时用作事件总线。
- mob -mob 是一个基于通用的简单调解器/事件聚合器库。它支持进程内请求/事件处理。
- NATS Go Client - 轻量级和高性能的发布-订阅和分布式队列消息系统 - 这是 Go 库。
- nsq-event-bus - 一个围绕 NSQ 主题和通道的微型包装器。
- oplog - 用于 REST API 的通用 oplog/复制系统。
- pubsub - 用于 go 的简单 pubsub 包。
- Quamina - 用于过滤消息和事件的快速模式匹配。
- rabbus - amqp 交换和队列的一个小包装器。
- rabtap -RabbitMQ 瑞士军刀 cli 应用程序。
- RapidMQ -RapidMQ 是一个轻量级且可靠的库,用于管理本地消息队列。
- Ratus -Ratus 是一个 RESTful 异步任务队列服务器。
- redisqueue -redisqueue 提供使用 Redis 流的队列的生产者和消费者。
- rmqconn - RabbitMQ 重新连接。amqp.Connection 和 amqp.Dial 的包装器。允许在连接断开时重新连接,然后强制关闭对 Close () 方法的调用。
- sarama -Apache Kafka 的 Go 库。
- Uniqush-Push - Redis 支持统一推送服务,用于向移动设备发送服务器端通知。
- Watermill - 有效地处理消息流。构建事件驱动的应用程序,启用事件源,基于消息的 RPC,传奇。可以使用传统的发布/订阅实现,如 Kafka 或 RabbitMQ,也可以使用 HTTP 或 MySQL binlog。
- zmq4 - 转到 ZeroMQ 版本 4 的接口。也可用于版本 3和版本 2。
微软办公软件
- unioffice - 用于创建和处理 Office Word (.docx)、Excel (.xlsx) 和 Powerpoint (.pptx) 文档的纯 Go 库。
微软Excel
用于处理 Microsoft Excel 的库。
- excelize - 用于读写 Microsoft Excel™(XLSX)文件的 Golang 库。
- exl - Excel 绑定到用 Go 编写的结构。(仅支持 Go1.18+)
- go-excel - 一个简单轻便的阅读器,可以将类似 related-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 之上)。
- gocontainer - 简单的依赖注入容器。
- goioc/di - 受 Spring 启发的依赖注入容器。
- GoLobby/Container -GoLobby Container 是用于 Go 编程语言的轻量级但功能强大的 IoC 依赖注入容器.
- google/wire -Go 中的自动初始化。
- HnH/di - 专注于干净的 API 和灵活性的 DI 容器库。
- kinit - 可定制的依赖注入容器,具有全局模式、级联初始化和恐慌安全终结。
- linker - 基于反射的依赖注入和控制库的反转,具有组件生命周期支持。
- nject - 用于库、测试、http 端点和服务启动的类型安全、反射框架。
- wire -Golang 的严格运行时依赖注入。
项目布局
用于构建项目的非官方模式集。
- ardanlabs/service -用于构建生产级可扩展 Web 服务应用程序的入门工具包。
- cookiecutter-golang - Go 应用程序样板模板,用于遵循生产最佳实践快速启动项目。
- go-module - 用 Go 编写的典型模块的模板。
- go-sample - 带有真实代码的 Go 应用程序项目的示例布局。
- go-starter - 一个自以为是的生产就绪 RESTful JSON 后端模板,与 VSCode DevContainers 高度集成。
- go-todo-backend -Go Todo 后端示例使用产品微服务的模块化项目布局。
- gobase - golang 应用程序的简单框架,具有真正 golang 应用程序的基本设置。
- golang-standards/project-layout - Go 生态系统中常见的历史和新兴项目布局模式集。注意:尽管有组织名称,但它们并不代表官方的 golang 标准,请参阅此问题以获取更多信息。尽管如此,有些人可能会发现布局很有用。
- golang-templates/seed - Go 应用程序 GitHub 存储库模板。
- insidieux/inizio - 带有插件的 Golang 项目布局生成器。
- modern-go-application - Go 应用程序样板和应用现代实践的示例。
- 宝塔- Go 中内置的快速、简单的全栈 Web 开发入门工具包。
- scaffold - 脚手架生成一个入门 Go 项目布局。让您专注于实施的业务逻辑。
- wangyoucao577/go-project-layout - 关于如何构建 Go 项目布局的一组实践和讨论。
字符串
用于处理字符串的库。
- bexp - 用于生成任意字符串的大括号扩展机制的 Go 实现。
- caps - 大小写转换库。
- go-formatter - 实现用花括号格式字符串包围的替换字段
{}
。 - gobeam/Stringy - 字符串操作库,用于将字符串转换为骆驼大小写、蛇形大小写、烤肉串大小写 / slugify 等。
- strutil - 字符串实用程序。
- sttr - 跨平台的 cli 应用程序,用于对字符串执行各种操作。
- xstrings - 从其他语言移植的有用字符串函数的集合。
未分类
这些图书馆被放在这里是因为其他类别似乎都不合适。
- anagent - 具有依赖注入的简约、可插入 Golang evloop/timer 处理程序。
- antch - 一个快速、强大且可扩展的网络爬行和抓取框架。
- archiver - 用于制作和提取 .zip 和 .tar.gz 档案的库和命令。
- autoflags - Go 包自动从结构字段定义命令行标志。
- avgRating - 根据 Wilson 分数方程计算平均分数和评分。
- banner - 将漂亮的横幅添加到您的 Go 应用程序中。
- base64Captcha -Base64captch 支持数字、数字、字母、算术、音频和数字字母验证码。
- basexx - 在各种数字基数的数字字符串之间相互转换。
- battery - 跨平台、规范化的电池信息库。
- bitio - 高度优化的 Go 位级读写器。
- browscap_go - 用于浏览器功能项目的 GoLang 库。
- captcha - 包 captcha 为验证码生成提供了一个易于使用、不受约束的 API。
- common - 服务器框架库。
- conv - 包 conv 提供跨 Go 类型的快速和直观的转换。
- datacounter - 读者/作者/http.ResponseWriter 的 Go 计数器。
- faker - 假数据生成器。
- faker -Go 的随机假数据和结构生成器。
- ffmt - 美化人类数据显示。
- gatus - 自动化服务健康仪表板。
- go-commandbus - 用于 Go 的小型可插拔命令总线。
- go-commons-pool - Golang 的通用对象池。
- go-openapi - 用于解析和利用 open-api 模式的包集合。
- go-resiliency -golang 的弹性模式。
- go-unarr - RAR、TAR、ZIP 和 7z 档案的解压缩库。
- gofakeit - 用 go 编写的随机数据生成器。
- gommit - 分析 git 提交消息以确保它们遵循定义的模式。
- gopsutil - 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台库。
- gosh - 提供 Go 统计处理程序、结构、测量方法。
- gosms - 您自己的 Go 本地 SMS 网关,可用于发送 SMS。
- gotoprom - 用于官方 Prometheus 客户端的类型安全指标构建器包装器库。
- gountries - 公开国家和细分数据的包。
- gtree - 为从 Markdown 或以编程方式创建树输出和目录提供 CLI、包和 Web。
- health - 一个简单灵活的 Go 健康检查库。
- health - 易于使用、可扩展的健康检查库。
- healthcheck - 用于 RESTful 服务的自以为是的并发健康检查 HTTP 处理程序。
- hostutils - 用于打包和解包 FQDN 列表的 golang 库。
- indigo - 使用 Sonyflake 并由 Base58 编码的分布式唯一 ID 生成器。
- lk - 一个简单的 golang 许可库。
- llvm - 用于在纯 Go 中与 LLVM IR 交互的库。
- metrics - 用于指标检测和 Prometheus 说明的库。
- morse - 与莫尔斯码相互转换的库。
- numa -NUMA 是一个实用程序库,它是用 go 编写的。它帮助我们编写一些 NUMA-AWARED 代码。
- openapi - OpenAPI 3.x 解析器。
- pdfgen - 从 Json 请求生成 PDF 的 HTTP 服务。
- 波斯语- 波斯语的一些实用程序。
- sandid - 地球上的每一粒沙子都有自己的 ID。
- shellwords - 一个 Golang 库,用于根据 UNIX Bourne shell 的单词解析规则处理字符串。
- shortid - 分布式生成超短、唯一、非顺序、URL 友好的 ID。
- shoutrrr - 通知库提供对各种消息服务的轻松访问,如 slack、mattermost、gotify 和 smtp 等。
- 站点地图格式- 一个简单的站点地图生成器,带有一点语法糖。
- stateless - 用于创建状态机的流畅库。
- stats - 监控 Go MemStats + 系统统计信息,例如内存、交换和 CPU,并通过 UDP 发送到您想要记录的任何地方等...
- turtle -Go 的表情符号。
- url-shortener - 具有 mysql 支持的现代、强大且健壮的 URL 缩短器微服务。
- VarHandler - 生成样板 http 输入和输出处理。
- varint - 一种比标准库中提供的更快的变长整数编码器/解码器。
- xdg - 在 Go 中实现的 FreeDesktop.org(xdg)规范。
- xkg -X 键盘抓取器。
- xz - 用于读取和写入 xz 压缩文件的纯 golang 包。
自然语言处理
用于处理人类语言的库。
语言检测
- detectlanguage - 语言检测 API Go 客户端。支持批量请求、短语或单词语言检测。
- getlang - 快速自然语言检测包。
- guesslanguage - 确定 unicode 文本的自然语言的函数。
- whatlanggo -Go 的自然语言检测包。支持 84 种语言和 24 种文字(书写系统,例如拉丁文、西里尔文等)。
形态分析仪
- go-stem - 波特词干算法的实现。
- go2vec - word2vec 嵌入的阅读器和实用函数。
- golibstemmer - snowball libstemmer 库的 Go 绑定,包括 porter 2.
- gosentiwordnet - 在 Go 中使用 sentiwordnet 词典的情感分析器。
- govader - 执行VADER 情绪分析。
- govader-backend -GoVader的微服务实现。
- kagome - 用纯 Go 编写的 JP 形态分析器。
- libtextcat - libtextcat C 库的 Cgo 绑定。保证与 2.2 版的兼容性。
- nlp - 从字符串中提取值并用 nlp 填充您的结构.
- nlp - 支持 LSA(潜在语义分析)的 Go 自然语言处理库。
- paicehusk -Paice/Husk 词干算法的 Golang 实现。
- porter - 这是 Martin Porter 的 Porter 词干算法的 C 实现的一个相当简单的端口。
- porter2 - 非常快的 Porter 2 词干分析器。
- RAKE.go - 快速自动关键字提取算法 (RAKE) 的 Go 端口。
- snowball -Go 的 Snowball 词干提取器端口(cgo 包装器). 提供词干提取功能Snowball native。
- spaGO - Go 中独立的机器学习和自然语言处理库。
- 拼写校正器- 西班牙语的拼写校正器或创建您自己的拼写校正器。
猛击者
- go-slugify - 通过多种语言支持制作漂亮的 slug.
- slug - URL 友好的 slugify,支持多种语言。
- Slugify - Go slugify 处理字符串的应用程序。
分词器
- gojieba - 这是jieba的 Go 实现,它是一种中文分词算法。
- gotokenizer - 基于 Golang 的字典和 Bigram 语言模型的分词器。(现在只支持中文分词)
- gse - Go 高效的文本分割;支持英文、中文、日文等。
- MMSEGO - 这是MMSEG的 GO 实现,它是一种中文分词算法。
- prose - 文本处理库,支持标记化、词性标记、命名实体提取等。仅限英语。
- segment - 用于执行 Unicode 文本分段的 Go 库,如Unicode 标准附件 #29中所述
- sentences - 句子分词器:将文本转换为句子列表。
- shamoji - shamoji 是用 Go 编写的单词过滤包。
- stemmer - 用于 Go 编程语言的 Stemmer 包。包括英语和德语词干分析器。
- textcat - 用于基于 n-gram 的文本分类的 Go 包,支持 utf-8 和原始文本。
翻译
- go-i18n - 用于处理本地化文本的软件包和随附工具。
- go-localize - 简单易用的 i18n(国际化和本地化)引擎 - 用于翻译语言环境字符串。
- go-mystem - CGo 绑定到 Yandex.Mystem - 俄罗斯形态分析器。
- go-pinyin - CN 汉字到汉语拼音转换器。
- gotext -Go 的 GNU gettext 实用程序。
- icu - 用于 icu4c C 库检测和转换功能的 Cgo 绑定。保证与版本 50.1 的兼容性。
- iuliia-go - 以各种可能的方式音译西里尔字母 → 拉丁字母。
- spreak - 基于 gettext 背后的概念的灵活的 Go 翻译和人性化库。
- t - 另一个 golang 的 i18n pkg,它遵循 GNU gettext 风格并支持 .po/.mo 文件:
t.T (gettext)
,t.N (ngettext)
等。它包含一个 cmd 工具xtemplate,它可以从 text/html 模板中将消息提取为 pot 文件。
音译
- enca - libenca的最小 cgo 绑定,它检测字符编码。
- go-unidecode - Unicode 文本的 ASCII 音译。
- gounidecode -Go 的 Unicode 音译器(也称为 unidecode)。
- transliterator - 提供单向字符串音译,支持特定语言的音译规则。
联网
用于处理网络各个层的库。
- arp - 包 arp 实现了 ARP 协议,如 RFC 826 中所述。
- buffstreams - 通过 TCP 流式传输协议缓冲区数据变得容易。
- canopus -CoAP 客户端/服务器实现(RFC 7252)。
- ciranger - 用于 Go 的快速 IP 到 CIDR 查找.
- dhcp6 - 包 dhcp6 实现了 DHCPv6 服务器,如 RFC 3315 中所述。
- dns - 用于处理 DNS 的 Go 库。
- dnsmonster - 被动 DNS 捕获/监控框架。
- easytcp - 用 Go (Golang) 编写的轻量级 TCP 框架,使用消息路由器构建。EasyTCP 可帮助您轻松快速地构建 TCP 服务器,同时减少痛苦。
- ether - 用于发送和接收以太网帧的跨平台 Go 包。
- ethernet - 包以太网实现 IEEE 802.3 以太网 II 帧和 IEEE 802.1Q VLAN 标签的编组和解组.
- fasthttp - 包 fasthttp 是 Go 的快速 HTTP 实现,比 net/http 快 10 倍。
- fortio - 负载测试库和命令行工具、高级回显服务器和 Web UI。允许指定一组每秒查询负载并记录延迟直方图和其他有用的统计数据并将它们绘制成图表。TCP、HTTP、gRPC。
- ftp -Package ftp 实现了RFC 959中描述的 FTP 客户端。
- ftpserverlib - 功能齐全的 FTP 服务器库。
- fullproxy - 具有 SOCKS5、HTTP、原始端口和反向代理协议的功能齐全的可编写脚本和守护进程可配置的代理和旋转工具包。
- gaio - 在 proactor 模式下用于 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-powerdns - Golang 的 PowerDNS API 绑定。
- go-stun - STUN 客户端的 Go 实现(RFC 3489 和 RFC 5389)。
- gobgp - 用 Go 编程语言实现的 BGP。
- golibwireshark - 包 golibwireshark 使用 libwireshark 库解码 pcap 文件并分析解剖数据。
- gopacket - 使用 libpcap 绑定进行数据包处理的 Go 库。
- gopcap - libpcap 的 Go 包装器。
- goshark - 包 goshark 使用 tshark 解码 IP 数据包并创建数据结构来分析数据包。
- gosnmp - 用于执行 SNMP 操作的本机 Go 库。
- gotcp - 用于快速编写 TCP 应用程序的 Go 包。
- grab - 用于管理文件下载的 Go 包。
- graval - 实验性 FTP 服务器框架。
- gws - 支持 AsyncIO 的高性能 WebSocket 服务器和客户端。
- HTTPLab - HTTPLabs 可让您检查 HTTP 请求并伪造响应.
- httpproxy - HTTP 代理处理程序和拨号程序。
- iplib - 用于处理 IP 地址(net.IP、net.IPNet)的库,灵感来自 python ipaddress和 ruby ipaddr
- jazigo -Jazigo 是一个用 Go 编写的工具,用于检索多个网络设备的配置。
- kcp-go -KCP - 快速可靠的 ARQ 协议。
- kcptun - 基于 KCP 协议的极其简单和快速的 udp 隧道。
- lhttp - 强大的 websocket 框架,更轻松地构建您的 IM 服务器。
- linkio - 读取器/写入器接口的网络链接速度模拟。
- llb - 这是一个非常简单但快速的代理服务器后端。可用于快速重定向到具有零内存分配和快速响应的预定义域。
- mdns -Golang 中的简单 mDNS(多播 DNS)客户端/服务器库。
- mqttPaho - Paho Go 客户端提供了一个 MQTT 客户端库,用于通过 TCP、TLS 或 WebSockets 连接到 MQTT 代理。
- nbio - 纯 Go 1000k+ 连接解决方案,支持 tls/http1.x/websocket 并与 net/http 基本兼容,具有高性能和低内存成本,非阻塞,事件驱动,易于使用。
- netpoll - 高性能非阻塞 I/O 网络框架,专注于 RPC 场景,由 ByteDance 开发。
- NFF-Go - 用于快速开发云和裸机高性能网络功能的框架(前 YANFF)。
- packet - 通过 TCP 和 UDP 发送数据包。如果需要,它可以缓冲消息和热插拔连接。
- panoptes-stream - 云原生分布式流媒体网络遥测(gNMI、Juniper JTI 和 Cisco MDT)。
- peerdiscovery - 用于使用 UDP 多播进行跨平台本地对等发现的 Pure Go 库。
- portproxy - 简单的 TCP 代理,它将 CORS 支持添加到不支持它的 API。
- publicip - 包 publicip 返回您面向公众的 IPv4 地址(互联网出口)。
- quic-go - 纯 Go 中 QUIC 协议的实现。
- raw - 包 raw 允许在网络接口的设备驱动程序级别读取和写入数据。
- sftp - 包 sftp 实现了 SSH 文件传输协议,如https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt中所述。
- ssh - 用于构建 SSH 服务器的高级 API(包装 crypto/ssh)。
- sslb - 这是一个超级简单的负载均衡器,只是一个实现某种性能的小项目。
- stun - 执行 RFC 5389 STUN 协议。
- tcp_server - 用于更快地构建 tcp 服务器的 Go 库。
- tspool - 一个 TCP 库使用工作池来提高性能并保护您的服务器。
- utp -Go uTP 微传输协议实现。
- vssh - 用于通过 SSH 协议构建网络和服务器自动化的 Go 库。
- water - 简单的 TUN/TAP 库。
- webrtc - WebRTC API 的纯 Go 实现。
- winrm -Go WinRM 客户端在 Windows 机器上远程执行命令。
- xtcp - 具有同步全双工通信、正常关闭和自定义协议的 TCP 服务器框架。
HTTP 客户端
用于发出 HTTP 请求的库。
- gentleman - 全功能插件驱动的 HTTP 客户端库。
- go-cleanhttp - 轻松获取 stdlib HTTP 客户端,它不与其他客户端共享任何状态。
- go-http-client - 简单轻松地进行 http 调用。
- go-otelroundtripper - Go http.RoundTripper 为 HTTP 请求发出开放遥测指标。
- go-req - 声明式 golang HTTP 客户端。
- go-retryablehttp -Go 中的可重试 HTTP 客户端。
- go-zoox/fetch - 受 Web Fetch API 启发的强大、轻量级、简单的 Http 客户端。
- grequests - 伟大而著名的 Requests 库的 Go“克隆”。
- heimdall - 具有重试和 hystrix 功能的增强型 http 客户端。
- httpretry - 使用重试功能丰富默认的 go HTTP 客户端。
- pester - 具有重试、退避和并发性的 Go 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 是一个用于创建和发送 API 请求的 Go HTTP 客户端库。
OpenGL
在 Go 中使用 OpenGL 的库。
- gl - OpenGL 的 Go 绑定(通过 glow 生成)。
- glfw - GLFW 3 的 Go 绑定。
- go-glmatrix - glMatrix库的 Go 端口。
- goxjs/gl - Go 跨平台 OpenGL 绑定(OS X、Linux、Windows、浏览器、iOS、Android)。
- goxjs/glfw - 用于创建 OpenGL 上下文和接收事件的跨平台 glfw 库。
- mathgl - 专门用于 3D 数学的 Pure Go 数学包,灵感来自 GLM。
对象关系管理
实现对象关系映射或数据映射技术的库。
- bun -SQL 优先的 Golang ORM。go-pg 的继任者。
- cacheme - 用于 Go 的基于模式的类型化 Redis 缓存 / 记忆框架。
- ent -Go 的实体框架。用于建模和查询数据的简单但功能强大的 ORM。
- go-firestorm - 适用于 Google/Firebase Cloud Firestore 的简单 ORM。
- go-sql - 一个简单的 mysql ORM。
- 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 数据库访问。
- reform - 基于非空接口和代码生成的更好的 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 命令直接支持使用模块,包括记录和解析对其他模块的依赖性。
包管理的官方实验工具
用于包和依赖管理的非官方库。
- glide - 轻松管理您的 golang 供应商和销售包。受到 Maven、Bundler 和 Pip 等工具的启发。
- godep - go 的依赖工具,godep 通过修复它们的依赖关系来帮助可重复地构建包。
- gom - Go 管理器 - 捆绑包。
- goop - 受 Bundler 启发的 Go(golang)的简单依赖管理器。
- gop - 从 GOPATH 构建和管理您的 Go 应用程序。
- gopm - Go 包管理器。
- govendor - Go 包管理器。使用标准供应商文件的 Go 供应商工具。
- gpm -Go 的准系统依赖管理器。
- gup - 更新由“go install”安装的二进制文件。
- johnny-deps - 使用 Git 的最小依赖版本。
- modgv - 将“go mod graph”输出转换为 Graphviz 的 DOT 语言。
- mvn-golang - 提供自动加载 Golang SDK、依赖管理和在 Maven 项目基础设施中启动构建环境的插件。
- nut - 供应商 Go 依赖项。
- VenGO - 创建和管理可导出的隔离围棋虚拟环境。
表现
- go-instrument - 自动向所有方法和函数添加跨度。
- jaeger - 分布式跟踪系统。
- pixie - 没有通过 eBPF 对 Golang 应用程序进行检测跟踪。
- profile -Go 的简单分析支持包。
- statsviz - Go 应用程序运行时统计信息的实时可视化。
- tracer - 简单、轻量级的跟踪。
查询语言
- api-fu - 全面的 GraphQL 实现。
- dasel - 使用命令行中的选择器查询和更新数据结构。与 jq/yq 相当,但支持 JSON、YAML、TOML 和 XML,且运行时依赖性为零。
- gojsonq - 一个简单的 Go 包,用于查询 JSON 数据。
- goven - 适用于任何数据库模式的嵌入式查询语言。
- gqlgen - 生成基于 graphql 服务器的库。
- graphql -graphql 解析器 + 实用程序。
- graphql - 专注于易用性的 GraphQL 服务器。
- graphql-go -Go 的 GraphQL 实现。
- gws -Apollos 的“基于 Websocket 的 GraphQL”客户端和服务器实现。
- jsonpath - 用于基于 JSONPath 语法检索部分 JSON 的查询库。
- jsonql -Golang 中的 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-resources - 使用 Go 嵌入的奇特资源。
- go.rice -go.rice 是一个 Go 包,可以非常轻松地处理 HTML、JS、CSS、图像和模板等资源。
- mule - 将图像、电影等外部资源嵌入到 Go 源代码中,以使用
go generate
. 专注于简单。 - packr - 将静态文件嵌入 Go 二进制文件的简单方法。
- rebed - 根据 Go 1.16 的
embed.FS
类型重新创建文件夹结构和文件 - statics - 将静态资源嵌入到 go 文件中以进行单个二进制编译 + 使用 http.FileSystem + 符号链接。
- statik - 将静态文件嵌入到 Go 可执行文件中。
- templify - 将外部模板文件嵌入到 Go 代码中以创建单个文件二进制文件。
- vfsgen - 生成静态实现给定虚拟文件系统的 vfsdata.go 文件。
科学与数据分析
用于科学计算和数据分析的库。
- assocentity - 包 assocentity 返回从单词到给定实体的平均距离。
- bradleyterry - 提供用于成对比较的 Bradley-Terry 模型。
- calendarheatmap - 受 Github 贡献活动启发的纯 Go 日历热图。
- chart -Go 的简单图表绘图库。支持多种图形类型。
- dataframe-go - 用于机器学习和统计的数据帧(类似于熊猫)。
- decimal - 包 decimal 实现任意精度十进制浮点运算。
- evaler - 简单的浮点算术表达式计算器。
- ewma - 指数加权移动平均线。
- geom -golang 的 2D 几何。
- go-dsp -Go 的数字信号处理。
- go-estimate -Go 中的状态估计和过滤算法。
- go-gt - 用“Go”语言编写的图论算法。
- godesim - 扩展/多变量 ODE 求解器框架,用于具有简单 API 的基于事件的模拟。
- goent - 执行熵测量。
- gograph - 一个提供数学图论和算法的 golang 通用图形库。
- gohistogram - 数据流的近似直方图。
- gonum -Gonum 是一组用于 Go 编程语言的数字库。它包含矩阵、统计、优化等库。
- gonum/plot -gonum/plot 提供了一个 API,用于在 Go 中构建和绘制绘图。
- goraph - 纯围棋图论库(数据结构,算法可视化)。
- gosl - 用于线性代数、FFT、几何、NURBS、数值方法、概率、优化、微分方程等的 Go 科学库。
- GoStats - GoStats 是一个开源 GoLang 库,用于数学统计,主要用于机器学习领域,它涵盖了大多数统计度量函数。
- graph - 基本图形算法库。
- jsonl-graph - 使用 graphviz 支持操作 JSONL 图的工具。
- ode - 支持扩展状态和基于通道的迭代停止条件的常微分方程 (ODE) 求解器。
- orb - 具有裁剪、GeoJSON 和 Mapbox Vector Tile 支持的 2D 几何类型。
- pagerank - 在 Go 中实现的加权 PageRank 算法。
- piecewiselinear - 微型线性插值库。
- PiHex - 十六进制数 Pi 的“Bailey-Borwein-Plouffe”算法的实现。
- rootfinding - 用于查找二次函数根的求根算法库。
- sparse - 用于支持科学和机器学习应用程序的线性代数的 Go 稀疏矩阵格式,与 gonum 矩阵库兼容。
- stats - Golang 标准库中缺少常用功能的统计包。
- streamtools - 用于处理数据流的通用图形工具。
- TextRank - Golang 中的 TextRank 实现,具有可扩展功能(摘要、加权、短语提取)和多线程(goroutine)支持。
- triangolatte - 二维三角测量库。允许将线和多边形(均基于点)转换为 GPU 语言。
安全
用于帮助提高应用程序安全性的库。
- acmetool - 具有自动续订功能的 ACME(让我们加密)客户端工具。
- acra - 网络加密代理,用于保护基于数据库的应用程序免受数据泄露:强选择性加密、SQL 注入预防、入侵检测系统。
- age - 一种简单、现代且安全的加密工具(和 Go 库),具有小的显式密钥、无配置选项和 UNIX 风格的可组合性。
- argon2-hashing - Go 的 argon2 包的轻型包装器,与 Go 的标准库 Bcrypt 和 simple-scrypt 包密切相关。
- argon2pw - 具有恒定时间密码比较的 Argon2 密码哈希生成。
- autocert - 自动提供让我们加密证书并启动 TLS 服务器。
- BadActor - 本着 fail2ban 精神构建的内存中、应用程序驱动的狱卒。
- booster - 具有全盘加密支持的快速 initramfs 生成器。
- Cameradar - 从监控摄像头远程破解 RTSP 流的工具和库。
- certificates - 用于生成 tls 证书的自以为是的工具。
- CertMagic - 成熟、稳健且强大的 ACME 客户端集成,用于完全托管的 TLS 证书颁发和续订。
- Coraza - 企业就绪、modsecurity 和 OWASP CRS 兼容的 WAF 库。
- dongle - 一个简单、语义化且对开发人员友好的 golang 包,用于编码和解码以及加密和解密。
- firewalld-rest - 用于在 Linux 服务器上动态更新 firewalld 规则的休息应用程序。
- go-generate-password - 可以在 cli 上使用或作为库使用的密码生成器。
- go-htpasswd - 用于 Go 的 Apache htpasswd 解析器。
- go-password-validator - 基于原始加密熵值的密码验证器。
- go-yara -YARA的 Go Bindings ,“恶意软件研究人员(和其他所有人)的模式匹配瑞士刀”。
- goArgonPass - Argon2 密码哈希和验证旨在与现有的 Python 和 PHP 实现兼容。
- goSecretBoxPassword - 一个可能偏执的包,用于安全散列和加密密码。
- Interpol - 用于模糊测试和渗透测试的基于规则的数据生成器。
- lego -Pure Go ACME 客户端库和 CLI 工具(与 Let's Encrypt 一起使用)。
- memguard - 用于处理内存中敏感值的纯 Go 库。
- nacl - 执行 NaCL API 集。
- optimus-go - 使用 Knuth 算法进行 ID 散列和混淆。
- passlib - 面向未来的密码哈希库。
- secret - 防止你的秘密泄露到日志、std* 等中。
- secure -Go 的 HTTP 中间件,有助于快速获得安全性。
- secureio
io.ReadWriteCloser
-基于 XChaCha20-poly1305、ECDH 和 ED25519 的密钥交换+身份验证+加密包装器和多路复用器。 - simple-scrypt - Scrypt 包,具有简单、明显的 API 和内置的自动成本校准。
- ssh-vault - 使用 ssh 密钥加密/解密。
- sslmgr - 使用 acme/autocert 的高级包装器使 SSL 证书变得容易。
- teler-waf - teler-waf 是一个 Go HTTP 中间件,它提供 teler IDS 功能以防止基于 Web 的攻击并提高基于 Go 的 Web 应用程序的安全性。它具有高度可配置性,易于集成到现有的 Go 应用程序中。
- themis - 用于解决典型数据安全任务(安全数据存储、安全消息传递、零知识证明身份验证)的高级密码库,支持 14 种语言,最适合多平台应用程序。
连载
用于二进制序列化的库和工具。
- asn1 - 用于 golang 的 Asn.1 BER 和 DER 编码库。
- bambam - Cap'n Proto 模式的生成器。
- bel - 从 Go 结构/接口生成 TypeScript 接口。对 JSON RPC 很有用。
- binstruct - 用于将数据映射到结构中的 Golang 二进制解码器。
- cbor - 小型、安全、简单的 CBOR 编码和解码库。
- colfer -Colfer 二进制格式的代码生成。
- csvutil - 高性能、惯用的 CSV 记录编码和解码到本机 Go 结构。
- elastic - 在运行时跨不同类型转换切片、映射或任何其他未知值,无论如何。
- fixedwidth - 固定宽度的文本格式(支持 UTF-8)。
- fwencoder - Go 的固定宽度文件解析器(编码和解码库)。
- go-capnproto - Cap'n Proto 库和解析器。
- go-codec - 用于 msgpack、cbor 和 json 的高性能、功能丰富、惯用的编码、解码和 rpc 库,具有基于运行时的 OR 代码生成支持。
- go-lctree - 提供 CLI 和原语来序列化和反序列化LeetCode 二叉树。
- gogoprotobuf - 用于 Go 小工具的协议缓冲区。
- goprotobuf - 以库和协议编译器插件的形式支持 Google 的协议缓冲区。
- jsoniter - 高性能 100% 兼容的替代“encoding/json”。
- mapstructure - 用于将通用映射值解码为本机 Go 结构的 Go 库。
- php_session_decoder - 用于处理 PHP 会话格式和 PHP 序列化/反序列化函数的 GoLang 库。
- pletter - 为消息代理包装原型消息的标准方法。
- structomap - 从静态结构轻松动态生成地图的库。
- unitpacking - 将单位向量打包成尽可能少的字节的库。
服务器应用程序
- algernon - 内置支持 Lua、Markdown、GCSS 和 Amber 的 HTTP/2 Web 服务器。
- Caddy - Caddy 是另一种 HTTP/2 网络服务器,易于配置和使用。
- consul -Consul 是一种用于服务发现、监控和配置的工具。
- cortex-tenant - Prometheus 远程写入代理,可根据指标标签添加添加 Cortex 租户 ID 标头。
- devd - 开发人员的本地网络服务器。
- discovery - 用于弹性中间层负载平衡和故障转移的注册表。
- 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 是一个简单的模拟器和代理应用程序服务器,您可以创建模拟端点以及代理请求,以防端点不存在模拟。
- nginx-prometheus -Nginx 日志解析器和导出器到 Prometheus。
- nsq - 实时分布式消息传递平台。
- protoxy - 将 JSON 请求主体转换为 Protocol Buffers 的代理服务器。
- psql-streamer - 将数据库事件从 PostgreSQL 流式传输到 Kafka.
- riemann-relay - 中继以负载平衡 Riemann 事件和/或将它们转换为 Carbon.
- RoadRunner - 高性能 PHP 应用程序服务器、负载平衡器和进程管理器。
- SFTPGo - 功能齐全且高度可配置的 SFTP 服务器,具有可选的 FTP/S 和 WebDAV 支持。它可以为本地文件系统和云存储后端服务,例如 S3 和谷歌云存储。
- simple-jwt-provider - 展示 JWT 的简单轻量级提供商,支持登录、密码重置(通过邮件)和用户管理。
- Trickster - HTTP 反向代理缓存和时间序列加速器。
- Wish - 制作 SSH 应用程序,就像那样!
流处理
用于流处理和反应式编程的库和工具。
- go-streams - Go 流处理库。
- goio -Golang 的 IO、Stream、Fiber 的实现,灵感来自很棒的 Scala 库 cats 和 fs2。
- machine - 用于编写和生成具有内置指标和可追溯性的流工作者的 Go 库。
- stream - Go Stream,如 Java 8 Stream:Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...
模板引擎
用于模板化和词法分析的库和工具。
- ego - 轻量级模板语言,可让您在 Go 中编写模板。模板被翻译成 Go 并编译。
- extemplate - 围绕 html/template 的微型包装器,可轻松实现基于文件的模板继承。
- fasttemplate - 简单快速的模板引擎。替换模板占位符的速度比text/template快 10 倍。
- gospin - 文章旋转和 spintax/旋转语法引擎,对 A/B 有用,测试文本/文章片段并创建更自然的对话。
- got - 受 Hero 和 Fasttemplate 启发的 Go 代码生成器。包含文件、自定义标签定义、注入的 Go 代码、语言翻译等。
- goview -Goview 是一个基于 golang html/template 的轻量级、极简主义和惯用的模板库,用于构建 Go web 应用程序。
- jet - Jet 模板引擎。
- liquid - 执行 Shopify Liquid 模板。
- maroto - 创建 PDF 的 maroto 方法。Maroto 的灵感来自于 Bootstrap 并使用 gofpdf。快速简单。
- pongo2 - 类似 Django 的 Go 模板引擎。
- quicktemplate - 快速、强大且易于使用的模板引擎。将模板转换为 Go 代码,然后进行编译。
- raymond - Go 中的完整把手实现。
- Razor -Golang 的 Razor 视图引擎.
- Soy - Go 的闭包模板(又名 Soy 模板),遵循官方规范。
- sprig -Go 模板的有用模板函数。
- 待定- 一种使用占位符创建文本模板的非常简单的方法 - 公开额外的内置 Git 存储库元数据。
测试
用于测试代码库和生成测试数据的库。
- 测试框架
- apitest - 简单且可扩展的行为测试库,用于基于 REST 的服务或支持模拟外部 http 调用和序列图呈现的 HTTP 处理程序。
- assert - 与本机 go 测试一起使用的基本断言库,具有用于自定义断言的构建块。
- badio - Go
testing/iotest
包的扩展。 - baloo - 富有表现力和多功能的端到端 HTTP API 测试变得简单。
- be - 极简主义的通用测试断言库。
- biff - 分叉测试框架,BDD 兼容。
- charlatan - 为测试生成假接口实现的工具。
- commander - 用于在 windows、linux 和 osx 上测试 cli 应用程序的工具。
- covergates - 自托管代码覆盖率报告审查和管理服务。
- cupaloy - 用于测试框架的简单快照测试插件。
- dbcleaner - 出于测试目的清理数据库,受
database_cleaner
Ruby 启发。 - dsunit - SQL、NoSQL、结构化文件的数据存储测试。
- embedded-postgres - 作为另一个 Go 应用程序或测试的一部分,在 Linux、OSX 或 Windows 上本地运行真正的 Postgres 数据库。
- endly - 声明式端到端功能测试。
- fixenv - 夹具管理引擎,灵感来自 pytest 夹具。
- fluentassert - 可扩展、类型安全、流畅的断言 Go 库。
- flute -HTTP 客户端测试框架。
- frisby - REST API 测试框架。
- gherkingen -BDD 样板文件生成器和框架。
- ginkgo -Go 的 BDD 测试框架。
- gnomock - 在 Docker 中运行的真实依赖项(数据库、缓存,甚至 Kubernetes 或 AWS)的集成测试,没有模拟。
- go-carpet - 用于在终端中查看测试覆盖率的工具。
- go-cmp - 用于在测试中比较 Go 值的包。
- go-hit -Hit 是一个用 golang 编写的 http 集成测试框架。
- go-mutesting -Go 源代码的突变测试。
- go-mysql-test-container -Golang MySQL 测试容器,可帮助进行 MySQL 集成测试。
- go-snaps - Golang 中类似 Jest 的快照测试。
- go-testdeep - 极其灵活的 golang 深度比较,扩展了 go 测试包。
- go-testpredicate - 具有广泛诊断输出的测试谓词样式断言库。
- go-vcr - 记录和重播您的 HTTP 交互以进行快速、确定性和准确的测试。
- goblin - 类似 Mocha 的 Go 测试框架。
- goc - Goc 是 Go 编程语言的综合覆盖测试系统。
- gocheck - 更高级的测试框架替代 gotest。
- GoConvey - 具有 Web UI 和实时重新加载的 BDD 风格框架。
- gocrest - 用于 Go 断言的可组合的类似 hamcrest 的匹配器。
- godog -Go 的 Cucumber BDD 框架。
- gofight - Golang 路由器框架的 API 处理程序测试。
- gogiven - 适用于 Go 的类似 YATSPEC 的 BDD 测试框架。
- gomatch - 为根据模式测试 JSON 而创建的库。
- gomega - 类似于匹配器/断言库的 Rspec。
- Gont - Go 网络测试工具包,用于测试使用 Linux 命名空间构建复杂的网络拓扑。
- GoSpec - 用于 Go 编程语言的 BDD 风格的测试框架。
- gospecify - 这提供了用于测试您的 Go 代码的 BDD 语法。任何使用过 rspec 等库的人都应该熟悉它。
- gosuite
testing
-通过利用 Go1.7 的子测试,带来带有设置/拆卸工具的轻量级测试套件。 - got - 一个令人愉快的 golang 测试框架。
- gotest.tools - 一组用于扩充 go 测试包并支持通用模式的包。
- Hamcrest - 声明式 Matcher 对象的流畅框架,当应用于输入值时,会产生自我描述的结果。
- httpexpect - 简洁、声明式且易于使用的端到端 HTTP 和 REST API 测试。
- is - 用于 Go 的专业轻量级测试迷你框架。
- jsonassert - 用于验证您的 JSON 负载是否正确序列化的包。
- omg.testingtools - 用于更改私有字段值以进行测试的简单库。
- restit - 用于帮助编写 RESTful API 集成测试的 Go 微框架。
- schema - 请求和响应中使用的 JSON 模式的快速简单的表达式匹配。
- 走走停停- 并发测试助手。
- testcase - 行为驱动开发的惯用测试框架。
- testcontainers-go - 一个 Go 包,可以轻松创建和清理基于容器的依赖项以进行自动集成/冒烟测试。干净、易于使用的 API 使开发人员能够以编程方式定义应作为测试的一部分运行的容器,并在测试完成后清理这些资源。
- testfixtures - Rails 的帮助程序,用于测试数据库应用程序的测试装置。
- 作证- 标准 go 测试包的神圣扩展。
- testmd - 将 markdown 片段转换为可测试的代码。
- testsql - 在测试前从 SQL 文件生成测试数据,并在完成后清除它。
- testza - 具有漂亮彩色输出的全功能测试框架。
- 试用- 无需引入太多样板即可快速轻松地扩展断言。
- Tt - 简单而丰富多彩的测试工具。
- wstest - 用于对 websocket http.Handler 进行单元测试的 Websocket 客户端。
- 嘲笑
- 伪造者- 用于生成独立模拟对象的工具。
- genmock - 带有代码生成器的模拟系统,用于构建接口方法的调用。
- go-localstack - 在 AWS 测试中使用 localstack 的工具。
- go-sqlmock - 用于测试数据库交互的模拟 SQL 驱动程序。
- go-txdb - 基于单事务的数据库驱动程序,主要用于测试目的。
- gock - 多功能 HTTP 模拟变得简单。
- gomock -Go 编程语言的模拟框架。
- govcr - Golang 的 HTTP 模拟:记录和重播 HTTP 交互以进行离线测试。
- hoverfly - HTTP(S) 代理,用于使用可扩展的中间件和易于使用的 CLI 记录和模拟 REST/SOAP API。
- httpmock - 轻松模拟来自外部资源的 HTTP 响应。
- minimock - 用于 Go 接口的模拟生成器。
- mockery - 生成 Go 接口的工具。
- mockhttp -Go http.ResponseWriter 的模拟对象。
- mockit - 允许函数和方法轻松模拟,无需定义新类型;它类似于 Java 的 Mockito。
- mooncake - 一种为多种目的生成模拟的简单方法
- timex - 本机包的测试友好替代品
time
。
- 模糊测试和增量调试/减少/收缩。
- Selenium 和浏览器控制工具。
- cdp - Chrome 调试协议的类型安全绑定,可用于浏览器或其他实现它的调试目标。
- chromedp - 一种驱动/测试 Chrome、Safari、Edge、Android Webviews 和其他支持 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 - 在行尾换行文本。从 Python实现
textwrap
模块。
标记语言
- bafi - 使用模板将通用 JSON、BSON、YAML、XML 翻译成任何格式。
- bbConvert - 将 bbCode 转换为 HTML,允许您添加对自定义 bbCode 标签的支持。
- blackfriday -Go 中的 Markdown 处理器。
- github_flavored_markdown - GitHub Flavored Markdown 渲染器(使用 blackfriday),带有围栏代码块突出显示、可点击的标题锚链接。
- go-output-format - 在命令行应用程序中将 go 结构输出为多种格式(YAML/JSON/等)。
- go-toml - 具有查询支持和方便的 cli 工具的 TOML 格式的 Go 库。
- goldmark - 用 Go 编写的 Markdown 解析器。易于扩展,符合标准 (CommonMark),结构良好。
- goq - 使用带有 jQuery 语法的结构标签对 HTML 进行声明式解组(使用 GoQuery)。
- html-to-markdown - 将 HTML 转换为 Markdown。甚至适用于整个网站,并且可以通过规则进行扩展。
- htmlquery - 用于 HTML 的 XPath 查询包,允许您通过 XPath 表达式从 HTML 文档中提取数据或评估。
- htmlyaml - 在 Go 中将 YAML 丰富呈现为 HTML
- mxj - 将 XML 编码/解码为 JSON 或 map[string]interface{};使用点符号路径和通配符提取值。替换 x2j 和 j2x 包。
- toml - TOML 配置格式(带反射的编码器/解码器)。
解析器/编码器/解码器
- allot - 用于 CLI 工具和机器人的占位符和通配符文本解析。
- codetree - 解析缩进代码(python、pixy、scarlet 等)并返回树结构。
- commonregex - Go 通用正则表达式的集合。
- did -Go 中的 DID(分散标识符)解析器和 Stringer.
- doi -Go 中的文档对象标识符 (doi) 解析器。
- editorconfig-core-go -Go 的 Editorconfig 文件解析器和操纵器。
- encdec - 包为编码器和解码器提供通用接口。
- go-fasttld - 高性能有效顶级域 (eTLD) 提取模块。
- go-nmea -Go 语言的 NMEA 解析器库。
- go-vcard - 解析和格式化 vCard。
- gofeed - 在 Go 中解析 RSS 和 Atom 提要.
- gographviz - 解析 Graphviz DOT 语言。
- gonameparts - 将人名解析为单独的名称部分。
- ltsv -用于 Go 的高性能LTSV(标签制表符分隔值)阅读器。
- normalize - 清理、规范化和比较模糊文本。
- omniparser - 一个通用的 ETL 库,它以流方式解析文本输入(CSV/txt/JSON/XML/EDI/X12/EDIFACT/等)并使用数据驱动模式将数据转换为 JSON 输出。
- parseargs-go - 理解引号和反斜杠的字符串参数解析器。
- parth - URL 路径分段解析。
- sdp - SDP:会话描述协议 [ RFC 4566 ]。
- sh - Shell 解析器和格式化程序。
- tokenizer - 将任何字符串、切片或无限缓冲区解析为任何标记。
- when - 具有可插入规则的自然 EN 和 RU 语言日期/时间解析器.
- xj2go - 将 xml 或 json 转换为 go 结构。
常用表达
- genex - 计算正则表达式并将其扩展到所有匹配的字符串中。
- go-wildcard - 简单轻量级的通配符模式匹配。
- goregen - 用于从正则表达式生成随机字符串的库。
- regroup - 使用 struct 标签和自动解析将正则表达式命名组匹配到 go struct 中。
- rex - 正则表达式生成器。
卫生
- bluemonday - HTML 消毒剂。
- gofuckyourself - Go 的基于消毒的发誓过滤器。
刮刀
- colly - 用于 Gophers 的快速而优雅的抓取框架。
- dataflowkit - 将网站转化为结构化数据的网络抓取框架。
- go-recipe - 用于从网站上抓取食谱的包。
- GoQuery - GoQuery 为 Go 语言带来了类似于 jQuery 的语法和一组功能.
- gospider - 一个简单的 golang 蜘蛛/抓取框架,用 3 行构建一个蜘蛛。从goribot迁移
- pagser -Pagser 是一个简单的、可扩展的、可配置的解析和反序列化 html 页面,以基于 golang 爬虫的 goquery 和结构标签进行结构化。
- Tagify - 从给定的来源生成一组标签。
- xurls - 从文本中提取 url。
订阅服务
公用事业/杂项
- go-runewidth - 获取字符或字符串的固定宽度的函数。
- go-zero-width -Go 的零宽度字符检测和删除。
- kace - 涵盖常见首字母缩写词的常见大小写转换。
- petrovich -Petrovich 是将俄语名称转换为给定语法案例的图书馆.
- radix - 快速字符串排序算法。
- TySug - 关于键盘布局的替代建议。
第三方API
用于访问第三方 API 的库。
- airtable -Airtable API的 Go 客户端库。
- amazon-product-advertising-api -亚马逊产品广告 API的 Go 客户端库。
- anaconda - 用于 Twitter 1.1 API 的 Go 客户端库。
- appstore-sdk-go - 用于 AppStore Connect API 的非官方 Golang SDK。
- aws-sdk-go - 用于 Go 编程语言的官方 AWS SDK。
- bqwriter - 高级 Go 库,可将数据高速写入Google BigQuery 。
- brewerydb - 用于访问 BreweryDB API 的 Go 库。
- cachet -Cachet (开源状态页面系统)的 Go 客户端库。
- circleci - 用于与 CircleCI 的 API 交互的 Go 客户端库。
- clarifai - 用于与 Clarifai API 接口的 Go 客户端库。
- codeship-go - 用于与 Codeship 的 API v2 交互的 Go 客户端库。
- coinpaprika-go - 用于与 Coinpaprika 的 API 交互的 Go 客户端库。
- device-check-go - 用于与iOS DeviceCheck API v1 交互的 Go 客户端库。
- discordgo -Discord Chat API 的 Go 绑定。
- dusupay-sdk-go - 用于 Go 的非官方 Dusupay 支付网关 API 客户端
- ethrpc - 以太坊 JSON RPC API 的 Go 绑定。
- facebook - 支持 Facebook Graph API 的 Go 库。
- fasapay-sdk-go - 用于 Golang 的非官方 Fasapay 支付网关 XML API 客户端。
- fcm - 用于 Firebase 云消息传递的 Go 库。
- gads - 谷歌 Adwords 非官方 API。
- gami - 用于 Asterisk 管理器界面的 Go 库。
- gcm - 用于 Google 云消息传递的 Go 库。
- geo-golang -Go Library 以访问Google Maps、MapQuest、Nominatim、OpenCage、Bing、Mapbox和OpenStreetMap地理编码/反向地理编码 API。
- github - 用于访问 GitHub REST API v3 的 Go 库。
- githubql - 用于访问 GitHub GraphQL API v4 的 Go 库。
- go-atlassian - 用于访问Atlassian Cloud服务(Jira、Jira Service Management、Jira Agile、Confluence、Admin Cloud)的Go 库
- go-aws-news -Go 应用程序和库以从 AWS 获取最新消息。
- go-chronos - 用于与Chronos Job Scheduler交互的 Go 库
- go-hacknews - 用于 HackerNews API 的微型 Go 客户端。
- go-here - 围绕基于 HERE 位置的 API 的 Go 客户端库。
- go-hibp - 简单的 Go 绑定到“我被 Pwned 了吗”API。
- go-imgur - 用于imgur的 Go 客户端库
- go-jira - 用于Atlassian JIRA的 Go 客户端库
- go-lark -用于飞书和Lark开放平台的易于使用的非官方 SDK 。
- go-marathon - 用于与 Mesosphere 的 Marathon PAAS 交互的 Go 库。
- go-myanimelist - 用于访问MyAnimeList API 的Go 客户端库。
- go-openai - 用于 Go 的 OpenAI ChatGPT、DALL·E、Whisper API 库。
- go-openproject - 用于与OpenProject API 交互的 Go 客户端库。
- go-postman-collection - Go 模块与Postman Collections一起工作(与 Insomnia 兼容)。
- go-restcountries - 用于REST Countries API的 Go 库。
- go-sophos -具有零依赖性的Sophos UTM REST API的 Go 客户端库。
- go-sptrans - 用于 SPTrans Olho Vivo API 的 Go 客户端库。
- go-swagger-ui - 包含用于提供 swagger json 的预编译Swagger UI 的Go 库。
- go-telegraph - 电报发布平台 API 客户端。
- go-trending - 用于访问Github 上的趋势存储库和开发人员的 Go 库。
- go-twitter - 用于 Twitter v1.1 API 的 Go 客户端库。
- go-unsplash - Unsplash.com API 的 Go 客户端库。
- go-xkcd - xkcd API 的 Go 客户端。
- go-yapla - Yapla v2.0 API 的 Go 客户端库。
- goagi - 用于构建 Asterisk PBX agi/fastagi 应用程序的 Go 库。
- goami2 - 用于 Asterisk PBX 的 AMI v2 库.
- GoFreeDB -Golang 库在 Google 表格之上提供通用和简单的数据库抽象。
- gogtrends - 谷歌趋势非官方 API。
- golang-tmdb - 电影数据库 API v3 的 Golang 包装器。
- golyrics -Golyrics 是一个 Go 库,用于从 Wikia 网站获取音乐歌词数据。
- gomalshare - Go 库 MalShare API malshare.com
- GoMusicBrainz - Go MusicBrainz WS2 客户端库。
- google - 为 Go 自动生成的 Google API。
- google-analytics - 用于简单谷歌分析报告的简单包装器。
- google-cloud - 谷歌云 API Go 客户端库。
- google-email-audit-api - 用于Google G Suite 电子邮件审计 API的 Go 客户端库。
- google-play-scraper - 从 Google Play 商店获取数据。
- gopaapi5 -亚马逊产品广告 API 5.0的 Go 客户端库。
- gosip - SharePoint 的客户端库。
- gostorm -GoStorm 是一个 Go 库,它实现了在 Go 中编写与 Storm shell 通信的 Storm spout 和 Bolt 所需的通信协议。
- hipchat - 该项目为 Hipchat API 实现了一个 golang 客户端库。
- hipchat (xmpp) - 通过 XMPP 与 HipChat 通信的 golang 包。
- igdb -互联网游戏数据库 API的 Go 客户端。
- jokeapi-go - JokeAPI的 Go 客户端。
- lark -飞书/ Lark Open API Go SDK,支持所有开放 API 和事件回调.
- lastpass-go -LastPass API的 Go 客户端库。
- libgoffi - 用于本机libffi集成的库适配器工具箱
- Medium - 用于 Medium 的 OAuth2 API 的 Golang SDK.
- megos - 用于访问Apache Mesos集群的客户端库。
- minio-go - 用于 Amazon S3 兼容云存储的 Minio Go 库.
- mixpanel -Mixpanel 是一个用于跟踪事件并将 Mixpanel 配置文件更新从您的 go 应用程序发送到 Mixpanel 的库。
- newsapi-go - NewsAPI的 Go 客户端。
- openaigo -Go 的 OpenAI GPT3/GPT3.5 ChatGPT API 客户端库。
- patreon-go -Patreon API 的 Go 库。
- paypal - 贝宝支付 API 的包装器。
- playlyfe -Playlyfe Rest API Go SDK.
- pushover -Pushover API 的包装器。
- rawg-sdk-go - 用于RAWG 视频游戏数据库API的 Go 库
- rrdaclient - Go Library 访问 statdns.com API,后者又是 RRDA API。通过 HTTP 的 DNS 查询。
- shopify -Go Library 向 Shopify API 发出 CRUD 请求。
- simples3 - 简单而简洁的 AWS S3 库,使用 REST 和 Go 编写的 V4 签名.
- slack -Go 中的 Slack API.
- smite - 用于包装对 Smite 游戏 API 的访问的 Go 包。
- spotify -Go Library 以访问 Spotify WEB API。
- steam -Go Library 与 Steam 游戏服务器交互。
- stripe -Stripe API 的 Go 客户端。
- swag - 没有评论,简单的 go 包装器可以创建与 swagger 2.0 兼容的 API。支持大部分路由框架,如built-in、gin、chi、mux、echo、httprouter、fasthttp等。
- textbelt - textbelt.com txt 消息传递 API 的 Go 客户端。
- translate - 在线翻译包。
- Trello - Trello API 的包装器。
- TripAdvisor - TripAdvisor API 的包装器。
- tumblr - 用于 Tumblr v2 API 的包装器。
- twitter-scraper - 在没有身份验证和限制的情况下抓取 Twitter 前端 API。
- uptimerobot - Uptime Robot v2 API 的包装器和命令行客户端。
- vl-go - 围绕 VerifID 身份验证层 API 的 Go 客户端库。
- webhooks - GitHub 和 Bitbucket 的 Webhook 接收器.
- wit-go -wit.ai HTTP API 的 Go 客户端。
- ynab - YNAB API 的 Go 包装器。
- zooz - Zooz API 的 Go 客户端。
公用事业
通用实用程序和工具,让您的生活更轻松。
- apm - 具有 HTTP API 的 Golang 应用程序的进程管理器。
- backscanner - 类似于 bufio.Scanner 的扫描器,但它以相反的顺序读取和返回行,从给定位置开始并向后移动。
- beyond - 将带您进入 AOP 世界的 Go 工具!
- blank - 验证或删除字符串中的空格和空格。
- bleep - 在 Go 中对任何一组操作系统信号执行任意数量的操作。
- boilr - 用于从样板模板创建项目的极其快速的 CLI 工具。
- changie - 自动更新日志工具,用于准备具有大量自定义选项的版本。
- chyle - 使用具有多种配置可能性的 git 存储库的更新日志生成器。
- circuit - 一种高效且功能完整的 Hystrix,例如断路器模式的 Go 实现。
- circuitbreaker -Go 中的断路器。
- 剪贴板-📋Go 中的跨平台剪贴板包。
- clockwork - 一个简单的 golang 假时钟。
- cmd - 用于在 osx、windows 和 linux 上执行 shell 命令的库。
- command -Go 的命令模式,带有线程安全的串行和并行调度程序。
- contextplus - 包 contextplus 为上下文提供更易于使用的功能。
- copy - 用于快速复制不同类型结构的包。
- copy-pasta - 通用多工作站剪贴板,使用类似 S3 的后端进行存储。
- 国家- 全面实施 ISO-3166-1、ISO-4217、ITU-T E.164、Unicode CLDR 和 IANA ccTLD 标准。
- countries - 在 Go 中处理国家/地区时所需的一切。
- create-go-app - 一个强大的 CLI,用于通过运行一个命令创建具有后端(Golang)、前端(JavaScript、TypeScript)和部署自动化(Ansible、Docker)的新生产就绪项目。
- cryptgo -Crytpgo 是一个基于 TUI 的应用程序,完全用 Go 编写,用于实时监控和观察加密货币价格!
- ctop -容器指标的类似顶部的界面(例如 htop)。
- ctxutil - 上下文实用函数的集合。
- cvt - 轻松安全地将任何值转换为另一种类型。
- dbt - 一个用于从中央可信存储库运行自更新签名二进制文件的框架。
- Death - 使用信号管理 go 应用程序关闭。
- Deepcopier -Go 的简单结构复制。
- delve -Go 调试器。
- dlog - 编译时控制的记录器,可在不删除调试调用的情况下缩小您的版本。
- EaseProbe - 一个简单、独立且轻量级的工具,可以执行健康/状态检查守护进程,支持 HTTP/TCP/SSH/Shell/Client/... 探测和 Slack/Discord/Telegram/SMS... 通知。
- equalizer -Go 的配额管理器和速率限制器集合。
- ergo - 管理在不同端口上运行的多个本地服务变得容易。
- evaluator - 根据 s-expression 动态评估表达式。它简单且易于扩展。
- filetype - 用于推断检查幻数签名的文件类型的小包。
- filler - 使用“fill”标签填充结构的小工具。
- filter - 提供 Go 数据的过滤、清理和转换。
- fzf - 用 Go 编写的命令行模糊查找器。
- generate - 在指定路径或环境变量上递归运行 go generate 并且可以通过正则表达式进行过滤。
- ghokin - 并行格式化程序,对 gherkin(黄瓜、behat...)没有外部依赖性。
- git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪。
- gitbatch - 在一个地方管理你的 git 存储库。
- go-actuator - 用于基于 Go 的 Web 框架的生产就绪功能。
- go-astitodo - 在您的 GO 代码中解析 TODO。
- go-bind-plugin - go:generate 工具,用于包装由 golang 插件导出的符号(仅限 1.8)。
- go-bsdiff - 纯 Go bsdiff 和 bspatch 库和 CLI 工具。
- go-clip - 适用于 Mac 的简约剪贴板管理器。
- go-convert - 包 go-convert 使您能够将值转换为另一种类型。
- go-countries - 通过 ISO-3166 代码进行轻量级查找。
- go-dry -Go 的 DRY(不要重复自己)包。
- go-funk - 现代 Go 实用程序库,提供帮助程序(映射、查找、包含、过滤器、块、反向......)。
- go-health - 健康包简化了向服务添加健康检查的方式。
- go-httpheader - 用于将结构编码到 Header 字段中的 Go 库。
- go-lock -go-lock 是一个锁库,它实现了读写互斥锁和读写 trylock 而不会饿死。
- go-pkg - 围棋工具包。
- go-problemdetails - 用于处理问题详细信息的 Go 包。
- go-rate -Go 的定时速率限制器。
- go-sitemap-generator - 用 Go 编写的 XML 站点地图生成器。
- go-trigger -Go-lang 全局事件触发器,使用 id 注册事件并从项目的任何位置触发事件。
- go-type - 为 ISO-4217、ISO-3166 和其他类型的存储/验证和传输提供 Go 类型的库。
- goback - Go 简单的指数退避包。
- goctx - 以高性能获取上下文值。
- godaemon - 编写守护进程的实用程序。
- godropbox - 用于从 Dropbox 编写 Go 服务/应用程序的通用库。
- gohper - 各种工具/模块有助于开发。
- golarm - 带有系统事件的火警。
- golog - 简单轻便的 CLI 工具,用于时间跟踪您的任务。
- gopencils - 小而简单的包,可以轻松使用 REST API。
- goplaceholder - 用于生成占位符图像的小型 golang 库。
- goreadability - 使用 Facebook Open Graph 和 arc90 的可读性的网页摘要提取器。
- goreleaser - 尽可能快速、轻松地交付 Go 二进制文件。
- goreporter - 执行静态分析、单元测试、代码审查和生成代码质量报告的 Golang 工具。
- goseaweedfs - 具有几乎全部功能的 SeaweedFS 客户端库。
- gostrutils - 字符串操作和转换函数的集合。
- gotenv - 从 Go 中加载环境变量
.env
或任何io.Reader
Go 中的环境变量。 - goval - 在 Go 中评估任意表达式。
- gpath - 使用 Go 的反射表达式来简化访问结构字段的库。
- graterm - 提供在 Go 应用程序中执行有序(顺序/并发)GRAceful TERMination(又名关闭)的原语。
- grofer - 用 Golang 编写的系统和资源监控工具!
- gubrak - 带有语法糖的 Golang 实用程序库。这就像 lodash,但对于 golang。
- handy - 许多实用程序和助手,如字符串处理程序/格式化程序和验证程序。
- hostctl - 一个使用简单命令管理 /etc/hosts 的 CLI 工具。
- htcat - 并行和流水线 HTTP GET 实用程序。
- hub - 使用附加功能包装 git 命令,以便从终端与 github 交互。
- hystrix-go - 实现程序员定义的回退 aka 断路器的 Hystrix 模式。
- immortal - *nix 跨平台(与操作系统无关)主管。
- intrinsic - 在不编写任何汇编代码的情况下使用 x86 SIMD。
- jsend - 用 Go 编写的 JSend 实现。
- jump - Jump 通过学习你的习惯来帮助你更快地导航。
- 只是- 只是用于处理通用数据结构的有用函数的集合。
- koazee - 受惰性评估和函数式编程启发的库,可以消除使用数组的麻烦。
- lancet - 全面、高效、可重用的 go util 函数库。
- lets-go -Go 模块,为 Cloud Native REST API 开发提供通用实用程序。还包含 AWS 特定实用程序。
- limiters - Golang 分布式应用程序的速率限制器,具有可配置的后端和分布式锁。
- lo - 一个类似于 Lodash 的 Go 库,基于 Go 1.18+ 泛型(地图、过滤器、包含、查找...)
- loncha - 高性能切片实用程序。
- lrserver -Go 的 LiveReload 服务器。
- mani - 帮助您管理多个存储库的 CLI 工具。
- mc - Minio Client 提供了最少的工具来处理与 Amazon S3 兼容的云存储和文件系统。
- mergo - 在 Golang 中合并结构和映射的帮助程序。对于配置默认值很有用,避免了混乱的 if 语句。
- mimemagic - Pure Go 超高性能 MIME 嗅探库/实用程序。
- mimesniffer -Go 的 MIME 类型嗅探器。
- mimetype - 基于幻数的 MIME 类型检测包。
- minify - 用于 HTML、CSS、JS、XML、JSON 和 SVG 文件格式的快速压缩器。
- minquery - 支持高效分页的 MongoDB / mgo.v2 查询(游标继续列出我们离开的文档)。
- moldova - 用于根据输入模板生成随机数据的实用程序。
- mole - 用于轻松创建 ssh 隧道的 cli 应用程序。
- mongo-go-pagination - 官方 mongodb / mongo-go-driver 包的 Mongodb 分页,它支持普通查询和聚合管道。
- mssqlx - 数据库客户端库,任何主从代理,主控结构。考虑到轻巧和自动平衡。
- multitick - 对齐代码的多路复用器。
- myhttp - 发出带有超时支持的 HTTP GET 请求的简单 API。
- netbug - 轻松远程分析您的服务。
- nfdump - 读取 nfdump netflow 文件。
- nostromo - 用于构建强大别名的 CLI。
- objwalker - 通过带反射的对象走动。
- okrun - go run error steamroller.
- olaf - 在 Go 中实现的 Twitter Snowflake.
- onecache - 支持多个后端存储(Redis、Memcached、文件系统等)的缓存库。
- panicparse - 对类似的 goroutines 进行分组并对堆栈转储进行着色。
- pattern-match - 模式匹配库。
- peco - 简单的交互式过滤工具。
- pgo - PHP 社区的便捷功能。
- pm - 带有 HTTP API 的进程(即 goroutine)管理器。
- pointer - 包 pointer 包含用于简化基本类型的可选字段创建的辅助例程。
- ptr - 提供用于简化从基本类型常量创建指针的函数的包。
- rclient - 可读、灵活、易于使用的 REST API 客户端。
- reflectutils - 使用反射的助手:结构标记解析;递归行走;从字符串中填充值。
- remote-touchpad - 从智能手机控制鼠标和键盘。
- repeat - Go 实现不同的退避策略,可用于重试操作和心跳。
- request - Go HTTP Requests for Humans™.
- rerun - 源更改时重新编译和重新运行 go 应用程序。
- rest-go - 一个包,提供了许多使用 rest api 的有用方法。
- 重试- 最先进的功能机制,重复执行操作直到成功。
- retry - 一个简单但高度可配置的 Go 重试包。
- 重试- Go 的简单易用的重试机制包。
- 重试- 一个非常简单的库,可确保您的工作完成。
- retry-go - 用于重试机制的简单库。
- retry-go - 重试对 golang 来说变得简单易行。
- robustly - 弹性地运行函数,捕捉并重新启动恐慌。
- rospo - 在 Golang 中带有嵌入式 ssh 服务器的简单可靠的 ssh 隧道。
- scan - 将 golang
sql.Rows
直接扫描到结构、切片或原始类型。 - scan - 将 sql 行扫描为由泛型支持的任何类型。
- scany - 用于将数据从数据库扫描到 Go 结构等的库。
- serve - 你需要的任何地方的静态 http 服务器。
- set - 高性能且灵活的结构映射和松散类型转换。
- shutdown - 用于处理的应用程序关闭挂钩
os.Signal
。 - silk - 读取 silk netflow 文件。
- slice - 用于常见 Go 切片操作的类型安全函数。
- sliceconv - 原始类型之间的切片转换。
- slicer - 使切片工作更容易。
- sorty - 快速并发/并行排序。
- sqlx - 在优秀的内置数据库/sql 包之上提供一组扩展。
- sshman - 多个远程服务器上 authorized_keys 文件的 SSH 管理器。
- statiks - 快速、零配置、静态 HTTP 文件服务器。
- Storm - 用于 BoltDB 的简单而强大的工具包。
- structs - 实现简单的函数来操作结构。
- throttle - Throttle 是一个对象,它将在每个持续时间内执行一个动作。
- tik - 用于 Go 的简单易用的计时轮包。
- tome -Tome 旨在对简单的 RESTful API 进行分页.
- 工具箱- 切片、映射、多映射、结构、函数、数据转换实用程序。服务路由器、宏评估器、分词器。
- ugo - ugo 是切片工具箱,具有简洁的 Go 语法。
- UNIS -Go 中字符串实用程序的通用架构™。
- usql - usql 是 SQL 数据库的通用命令行界面。
- util - 有用的实用函数的集合。(字符串、并发、操作……)。
- watchhttp - 定期运行命令并将最新的 STDOUT 或其丰富的增量公开为 HTTP 端点。
- wifiqr - Wi-Fi QR 代码生成器。
- wuzz - 用于 HTTP 检查的交互式 cli 工具。
- xferspdy -Xferspdy 在 golang 中提供二进制差异和补丁库。
UUID
使用 UUID 的库。
- 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 的 Go 包:身份验证和安全服务。
- wuid - 一个极快的全球唯一数字生成器。
- xid -Xid 是一个全球唯一的 id 生成器库,可以直接在您的服务器代码中安全使用。
验证
用于验证的库。
- checkdigit - 提供校验位算法(Luhn、Verhoeff、Damm)和计算器(ISBN、EAN、JAN、UPC 等)。
- 高迪-🎈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 结构和字段验证,包括交叉字段、交叉结构、映射、切片和数组潜水。
- Validator - 用 Go 编写的轻量级模型验证器。包含 VFs:Min、Max、MinLength、MaxLength、Length、Enum、Regex。
- 用于验证请求的valix Go 包
版本控制
用于版本控制的库。
- cli - 一个开源的 GitLab 命令行工具,将 GitLab 的酷炫功能带到您的命令行中。
- froggit-go -Froggit-Go 是一个 Go 库,允许对 VCS 提供程序执行操作。
- gh - 用于 GitHub Webhooks 的可编写脚本的服务器和 net/http 中间件。
- git2go - libgit2 的 Go 绑定。
- githooks - 每个仓库和共享的 Git 钩子,具有版本控制和自动更新功能。
- 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 播放列表的解析器和生成器库。积极维护的 quangngotan95/go-m3u8 版本具有改进和最新的 HLS 播放列表解析兼容性。
- go-mpd - MPEG-DASH 清单文件的解析器和生成器库。
- goav - FFmpeg 的综合 Go 绑定。
- gortsplib - 纯 Go RTSP 服务器和客户端库。
- gst - GStreamer 的 Go 绑定。
- libgosubs - 对 go 的字幕格式支持。支持 .srt、.ttml 和 .ass。
- libvlc-go - libvlc 2.X/3.X/4.X 的 Go 绑定(由 VLC 媒体播放器使用)。
- m3u8 - Apple HLS 的 M3U8 播放列表的解析器和生成器库.
- v4l - 用于 Linux 的视频捕获库,用 Go 编写。
网络框架
全栈网络框架。
- aah - 用于 Go 的可扩展、高性能、快速开发的 Web 框架。
- Aero - Go 的高性能 Web 框架,在 Lighthouse 中获得最高分。
- Air - 一个理想完善的 Go 网络框架。
- anoweb - 轻量级且功能强大的 Web 框架,使用 Go 的新方式。另一种方式。
- appy - 一个自以为是的高效网络框架,有助于更轻松地扩展业务。
- Atreugo - 高性能和可扩展的微型 Web 框架,热路径中的内存分配为零。
- Banjo - 非常简单快速的 Go 网络框架。
- Beego -beego 是 Go 编程语言的开源、高性能 Web 框架。
- Buffalo - 将 Rails 的生产力带到 Go!
- Confetti Framework - Confetti 是一个 Go 网络应用程序框架,具有富有表现力的优雅语法。Confetti 结合了 Laravel 的优雅和 Go 的简单性。
- Echo - 高性能、极简主义的 Go 网络框架。
- Fiber - 基于 Fasthttp 构建的受 Express.js 启发的 Web 框架。
- Fireball - 感觉更“自然”的网络框架。
- Flamingo - 可插入网络项目的框架。包括模块的概念和为 DI、Configareas、i18n、模板引擎、graphql、可观察性、安全性、事件、路由和反向路由等提供的功能。
- Flamingo Commerce - 使用干净的架构(如 DDD 和端口和适配器)提供电子商务功能,您可以使用它们来构建灵活的电子商务应用程序。
- Gearbox - 用 Go 编写的 Web 框架,专注于高性能和内存优化。
- Gin -Gin 是一个用 Go 编写的 Web 框架!它具有类似马提尼酒的 API,具有更好的性能,速度最高可达 40 倍。如果您需要性能和良好的生产力。
- Ginrpc - Gin 参数自动绑定工具,gin rpc 工具。
- Gizmo - 纽约时报使用的微服务工具包。
- go-json-rest - 设置 RESTful JSON API 的快速简便的方法。
- go-rest -Go 的小而邪恶的 REST 框架。
- Goa - Goa 提供了一种在 Go 中开发远程 API 和微服务的整体方法。
- goa - goa 就像 golang 的 koajs,它是一个基于中间件的灵活、轻量、高性能和可扩展的 Web 框架。
- GoFrame - GoFrame 是 golang 的模块化、功能齐全且可用于生产的应用程序开发框架。
- golamb - Golamb 使编写 API 端点以与 AWS Lambda 和 API 网关一起使用变得更加容易.
- 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 框架旨在清洁代码和快速开发,具有强大的内置功能。
- Hertz - 一个高性能和强扩展性的 Go HTTP 框架,帮助开发者构建微服务。
- 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 - Patron 是一个微服务框架,遵循最佳云实践,专注于生产力。
- Pulse - Pulse 是一个用 Go (Golang) 编写的 HTTP Web 框架
- Resoursea - 用于快速编写基于资源的服务的 REST 框架。
- REST Layer - 在数据库之上构建 REST/GraphQL API 的框架,主要通过代码进行配置。
- Revel - Go 语言的高生产力 Web 框架。
- rex -Rex 是一个基于 gorilla/mux 的模块化开发库,与
net/http
. - rk-boot - 一个引导程序库,用于使用 Gin 和 gRPC 快速轻松地构建企业微服务。
- rux - 用于构建 golang HTTP 应用程序的简单快速的 Web 框架。
- tango -Go 的微型和可插拔 Web 框架。
- tigertonic - 受 Dropwizard 启发,用于构建 JSON Web 服务的 Go 框架。
- uAdmin - 受 Django 启发的全功能 Golang Web 框架。
- utron -Go(Golang)的轻量级 MVC 框架。
- vox - 受 Koa 启发的人类 golang Web 框架。
- WebGo - 用于构建网络应用程序的微框架;具有处理程序链、中间件和上下文注入。使用符合标准库的 HTTP 处理程序(即 http.HandlerFunc)。
- YARF - 快速微框架,旨在以快速简单的方式构建 REST API 和 Web 服务。
中间件
实际的中间件
- client-timing - Server-Timing 标头的 HTTP 客户端。
- CORS - 轻松将 CORS 功能添加到您的 API。
- echo-middleware - 具有日志记录和指标的 Echo 框架的中间件。
- formjson - 将 JSON 输入透明地处理为标准表单 POST.
- go-fault -Go 的故障注入中间件。
- go-server-timing - 添加/解析 Server-Timing 标头。
- Limiter -Go 的简单速率限制中间件。
- ln-paywall -Go 中间件,用于通过闪电网络(比特币)根据每个请求将 API 货币化。
- mid - 其他 HTTP 中间件功能:从处理程序返回惯用错误;接收/响应 JSON 数据;请求追踪;和更多。
- rk-gin - Gin 框架的中间件,具有日志记录、指标、身份验证、跟踪等功能。
- rk-grpc - 用于 gRPC 的中间件,具有日志记录、指标、身份验证、跟踪等功能。
- Tollbooth - 速率限制 HTTP 请求处理程序。
- XFF - 句柄
X-Forwarded-For
标题和朋友。
用于创建 HTTP 中间件的库
- alice - Go 的无痛中间件链接。
- catena - http.Handler 包装器连接(与“链”相同的 API)。
- chain - 处理程序包装器与作用域数据链接(网络/基于上下文的“中间件”)。
- gores - 处理 HTML、JSON、XML 等响应的 Go 包。对 RESTful API 很有用。
- interpose -golang 的极简 net/http 中间件。
- 中介- 添加拦截器
http.Client
以允许转储/整形/跟踪/...请求/响应。 - muxchain - 用于 net/http 的轻量级中间件。
- negroni - Golang 的惯用 HTTP 中间件。
- render - 用于轻松呈现 JSON、XML 和 HTML 模板响应的 Go 包。
- 渲染器- 用于 Go 的简单、轻量级和更快的响应(JSON、JSONP、XML、YAML、HTML、文件)渲染包。
- rye - 支持 JWT、CORS、Statsd 和 Go 1.7 上下文的微型 Go 中间件库(带有罐装中间件)。
- stats - 存储有关您的 Web 应用程序的各种信息的 Go 中间件。
路由器
- alien - 来自外太空的轻量级快速 HTTP 路由器。
- bellt - 一个简单的 Go HTTP 路由器。
- Bone - 闪电般快速的 HTTP 多路复用器。
- Bxog - 用于 Go 的简单快速的 HTTP 路由器。它适用于不同难度、长度和嵌套的路线。他知道如何根据收到的参数创建 URL。
- chi - 基于 net/context 构建的小型、快速且富有表现力的 HTTP 路由器。
- fasthttprouter - 从
httprouter
. 第一个适合fasthttp
. - FastRouter - 用 Go 编写的快速、灵活的 HTTP 路由器。
- goblin - 基于 trie 树的 golang http 路由器。
- gocraft/web -Go 中的 Mux 和中间件包。
- Goji - Goji 是一个简约而灵活的 HTTP 请求多路复用器,支持
net/context
. - GoLobby/Router -GoLobby Router 是用于 Go 编程语言的轻量级但功能强大的 HTTP 路由器.
- goroute - 简单而强大的 HTTP 请求多路复用器。
- GoRouter - GoRouter 是一个服务器/API 微框架,HTTP 请求路由器,多路复用器,mux,提供带有中间件支持的请求路由器
net/context
。 - gowww/router - 闪电般快速的 HTTP 路由器,与 net/http.Handler 接口完全兼容。
- httprouter - 高性能路由器。使用这个和标准的 http 处理程序来形成一个非常高性能的 web 框架。
- httptreemux - 用于 Go 的高速、灵活的基于树的 HTTP 路由器。来自 httprouter 的灵感。
- lars - 用于 Go 的轻量级、快速且可扩展的零分配 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 路由器。
- violetear - Go HTTP 路由器。
- xmux
httprouter
- 基于支持的高性能多路复用器net/context
。 - xujiajun/gorouter - 一个简单快速的 Go HTTP 路由器。
WebAssembly
- dom -DOM 库。
- go-canvas - 使用 HTML5 Canvas 的库,所有绘图都在 go 代码中。
- tinygo - 用于小地方的 Go 编译器。微控制器、WebAssembly 和命令行工具。基于 LLVM。
- vert -Go 和 JS 值之间的互操作。
- wasmbrowsertest - 在浏览器中运行 Go WASM 测试。
- 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 - XML 到 MAP 转换器,编写为 Golang。
- xmlwriter - 基于 libxml2 的 xmlwriter 模块的过程 XML 生成 API。
- xpath -Go 的 XPath 包。
- xquery - XQuery 允许您使用 XPath 表达式从 HTML/XML 文档中提取数据。
- zek - 从 XML 生成 Go 结构。
零信任
实现零信任架构的库和工具。
- Cosign - OCI 注册表中的容器签名、验证和存储。
- in-toto - 执行 in-toto(提供保护软件供应链完整性的框架)python 参考实现。
- Spiffe-Vault - 利用 Spiffe JWT 身份验证与 Hashicorp Vault 进行秘密身份验证.
- Spire - SPIRE(SPIFFE 运行时环境)是一个 API 工具链,用于在各种托管平台的软件系统之间建立信任。
代码分析
源代码分析工具,也称为静态应用程序安全测试 (SAST) 工具。
- apicompat - 检查最近对 Go 项目的更改是否存在向后不兼容的更改。
- asty - 将 golang AST 转换为 JSON,将 JSON 转换为 AST。
- blanket - blanket 是一种工具,可帮助您捕获 Go 包中没有直接单元测试的函数。
- ChainJacking - 查找哪些 Go 语言直接 GitHub 依赖项容易受到 ChainJacking 攻击。
- Chronos - 静态检测竞争条件
- 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 规则,例如 The Dependency Rule 和 Go 项目中包之间的交互。
- go-critic - 源代码 linter,它带来了当前未在其他 linter 中实现的检查。
- go-mod-outdated - 一种查找 Go 项目过时依赖项的简单方法。
- go-outdated - 显示过时包的控制台应用程序。
- goast-viewer - 基于 Web 的 Golang AST 可视化工具。
- goimports - 自动修复(添加、删除)Go 导入的工具。
- golang-ifood-sdk - iFood API SDK。
- golines - 自动缩短 Go 代码中长行的格式化程序。
- GoLint -Golint 是 Go 源代码的 linter。
- GoPlantUML - 生成文本 plantump 类图的库和 CLI,其中包含有关结构和接口的信息以及它们之间的关系。
- goreturns - 添加零值返回语句以匹配 func 返回类型。
- gostatus - 命令行工具,显示包含 Go 包的存储库的状态。
- lint - 运行 linters 作为 go test 的一部分。
- php-parser - 用 Go 编写的 PHP 解析器。
- staticcheck - staticcheck 是
go vet
类固醇,应用大量静态分析检查,您可能习惯于使用 ReSharper for C# 等工具。 - tickgit -CLI 和 go 包,用于显示代码注释 TODO(任何语言)并应用 a
git blame
来识别作者。 - todocheck - 静态代码分析器,它将代码中的 TODO 注释与问题跟踪器中的问题联系起来。
- unconvert - 从 Go 源代码中删除不必要的类型转换。
- usstdlibvars - 检测使用 Go 标准库中的变量/常量的可能性的 linter。
- vaccum - 一种超超快速、轻量级的 OpenAPI linter 和质量检查工具。
- validate - 自动验证带有标签的结构字段。
编辑器插件
文本编辑器和 IDE 的插件。
- 适用于 Vim/Neovim 的 coc-go 语言服务器扩展- 此插件将gopls功能添加到 Vim/Neovim。
- Go Doc - 用于在输出中显示定义和生成 go doc 的 Visual Studio Code 扩展。
- JetBrains IDE 的 Go 插件- JetBrains IDE 的 Go 插件.
- go-language-server - 将 VSCode go 扩展转换为支持语言服务器协议的语言服务器的包装器。
- go-mode -GNU/Emacs 的 Go 模式。
- go-plus - 用于 Atom 的 Go(Golang)包,它添加了自动完成、格式化、语法检查、检查和审查。
- gocode -Go 编程语言的自动完成守护进程。
- goimports-reviser - 用于导入的格式化工具。
- goprofiling - 此扩展为 VS Code 添加了对 Go 语言的基准分析支持。
- GoSublime - 用于文本编辑器 SublimeText 3 的 Golang 插件集合,提供代码完成和其他类似 IDE 的功能。
- gounit-vim - 用于根据函数或方法的签名生成 Go 测试的 Vim 插件。
- theia-go-extension - 对 Theia IDE 的 Go 语言支持。
- vim-compiler-go -Vim 插件,用于在保存时突出显示语法错误。
- vim-go -Vim 的 Go 开发插件。
- vscode-go - Visual Studio Code (VS Code) 的扩展,它提供对 Go 语言的支持。
- Watch - 在文件更改时以 acme win 运行命令。
去生成工具
- generic - Go 的灵活数据类型。
- genny -Go 的优雅泛型。
- gocontracts - 通过将代码与文档同步,将合同设计引入 Go。
- godal - 通过指定sql ddl文件生成golang对应的orm模型,供gorm使用。
- gonerics -Go 中的惯用泛型。
- gotests - 从您的源代码生成 Go 测试。
- gounit - 使用您自己的模板生成 Go 测试。
- hasgo - 为您的切片生成受 Haskell 启发的函数。
- options-gen - Dave Cheney 的帖子“Functional options for friendly APIs”描述的功能选项。
- re2dfa - 将正则表达式转换为有限状态机并输出 Go 源代码。
- sqlgen - 从 SQL 文件或 DSN 生成 gorm、xorm、sqlx、bun、sql 代码。
- 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-pkg-complete - go 和 wgo 的 Bash 完成。
- go-swagger - 用于 go 的 Swagger 2.0 实现。Swagger 是 RESTful API 的简单而强大的表示。
- godbg - 实现 Rusts
dbg!
宏,以便在开发过程中快速轻松地进行调试。 - gomodrun - 执行和缓存包含在 go.mod 文件中的二进制文件的 Go 工具。
- gotemplate.io - 实时预览
text/template
模板的在线工具。 - gotestdox - 将 Go 测试结果显示为可读的句子。
- gothanks - GoThanks 会自动为你的 go.mod github 依赖项加注星标,以这种方式向他们的维护者发送一些爱。
- igo - 一个 igo to go 转译器(Go 语言的新语言功能!)
- modver - 根据semver规则,比较 Go 模块的两个版本以检查所需的版本号更改(主要、次要或补丁级别)。
- OctoLinker - 使用 GitHub 的 OctoLinker 浏览器扩展有效地浏览 go 文件.
- richgo -
go test
使用文本装饰丰富输出。 - roumon - 通过命令行界面监控所有活动 goroutines 的当前状态。
- rts - RTS:对结构的响应。从服务器响应生成 Go 结构。
- textra - 提取 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 复制文件和工件。
- Dropship - 通过 cdn 部署代码的工具。
- easyssh-proxy -Golang 包,可通过 SSH 轻松远程执行,并通过
ProxyCommand
. - fac - 用于修复 git 合并冲突的命令行用户界面。
- 车队设备管理- 用于服务器和工作站的轻量级、可编程遥测。
- gaia - 使用任何编程语言构建强大的管道。
- ghorg - 快速将整个组织/用户存储库克隆到一个目录中 - 支持 GitHub、GitLab、Gitea 和 Bitbucket。
- Gitea - Gogs 的叉子,完全由社区驱动。
- gitea-github-migrator - 将所有 GitHub 存储库、问题、里程碑和标签迁移到 Gitea 实例。
- go-furnace - 用 Go 编写的托管解决方案。在 AWS、GCP 或 DigitalOcean 上轻松部署您的应用程序。
- go-rocket-update - 一种制作自我更新 Go 应用程序的简单方法 - 支持 Github 和 Gitlab。
- go-selfupdate - 使您的 Go 应用程序能够自我更新。
- gobrew -gobrew 可让您轻松地在多个版本的 go 之间切换。
- gobrew -Go 版本管理器。安装和管理 Go 版本的超级简单工具。安装 go 无需 root。Gobrew 不需要 shell rehash。
- godbg - 基于 Web 的 gdb 前端应用程序。
- Gogs - Go 编程语言中的自托管 Git 服务。
- gonative - 创建 Go 构建的工具,可以交叉编译到所有平台,同时仍然使用支持 Cgo 的 stdlib 包版本。
- govvv - “go build”包装器,可轻松将版本信息添加到 Go 二进制文件中。
- gox - 非常简单,没有多余的装饰 Go 交叉编译工具。
- goxc - 用于 Go 的构建工具,专注于交叉编译和打包。
- grapes - 轻量级工具,旨在轻松地通过 ssh 分发命令。
- GVM -GVM 提供了一个接口来管理 Go 版本。
- Hey - Hey 是一个向 Web 应用程序发送一些负载的小程序。
- httpref - httpref 是 HTTP 方法、状态代码、标头以及 TCP 和 UDP 端口的便捷 CLI 参考.
- jcli -Jenkins CLI 允许您以一种简单的方式管理 Jenkins.
- kala - 简单、现代且高性能的作业调度程序。
- kcli - 用于检查 kafka 主题/分区/消息的命令行工具。
- ko - 用于在 Kubernetes 上构建和部署 Go 应用程序的命令行工具
- kool - 用于管理 Docker 环境的命令行工具,是一种简单的方法。
- kubernetes - 来自 Google 的容器集群管理器。
- KubeVela - 云原生应用程序交付。
- kwatch - 即时监控和检测 Kubernetes(K8s)集群中的崩溃。
- lstags - 用于跨不同注册表同步 Docker 映像的工具和 API。
- lwc - UNIX wc 命令的实时更新版本。
- manssh - manssh 是一个命令行工具,用于轻松管理 ssh 别名配置。
- Mantil - 用于在 AWS 上构建无服务器应用程序的 Go 特定框架,使您能够专注于纯 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!
- wait-for - 在继续之前等待某些事情发生(从命令行)。轻松编排 Docker 服务和其他内容。
- webhook - 允许用户创建在服务器上执行命令的 HTTP 端点(挂钩)的工具。
- Wide - 适用于使用 Golang 的团队的基于 Web 的 IDE。
- winrm-cli - 在 Windows 机器上远程执行命令的 Cli 工具。
其他软件
- Better Go Playground - 具有语法高亮、代码完成和其他功能的 Go 游乐场。
- blocky - 快速且轻量级的 DNS 代理,作为具有许多功能的本地网络的广告拦截器。
- borg - 基于终端的 bash 片段搜索引擎。
- boxed - 基于 Dropbox 的博客引擎。
- Cherry -Go 中的微型网络聊天服务器。
- Circuit - Circuit 是一种可编程的平台即服务 (PaaS) 和/或基础设施即服务 (IaaS),用于管理、发现、同步和编排包含云应用程序的服务和主机。
- Comcast - 模拟不良网络连接。
- confd - 使用来自 etcd 或 consul 的模板和数据管理本地应用程序配置文件。
- crawley - 用于 cli 的网络抓取工具/爬虫。
- croc - 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机。
- Docker - 面向开发人员和系统管理员的分布式应用程序的开放平台。
- Documize - 集成来自 SaaS 工具的数据的现代 wiki 软件。
- dp - 通过 SDK 与区块链进行数据交换,开发者可以轻松接入 DAPP 开发。
- drive - 用于命令行的 Google Drive 客户端。
- Duplicacy - 基于无锁重复数据删除思想的跨平台网络和云备份工具。
- Gebug - 通过无缝启用调试器和热重载功能,使 Dockerized Go 应用程序的调试变得超级容易的工具。
- gfile - 通过 WebRTC 在两台计算机之间安全地传输文件,无需任何第三方。
- Go Package Store - 在您的 GOPATH 中显示 Go 包更新的应用程序。
- go-peerflix - 视频流 torrent 客户端。
- goblin - Golang 二进制文件,由 goblins 构建。
- GoBoy - 用 Go 编写的 Nintendo Game Boy Color 模拟器.
- gocc -Gocc 是用 Go 编写的 Go 编译器工具包。
- GoDocTooltip -Go Doc 站点的 Chrome 扩展,它在函数列表中将函数描述显示为工具提示。
- Gokapi - 用于共享文件的轻量级服务器,这些文件在一定数量的下载或几天后过期。类似于 Firefox Send,但没有公开上传。
- GoLand - 全功能跨平台 Go IDE。
- Gor - Http 流量复制工具,用于实时重播从生产环境到阶段/开发环境的流量。
- Guora - 用 Go 编写的类似 Quora 的自托管 Web 应用程序。
- hoofli - 从 Chrome 或 Firefox 网络检查生成 PlantUML 图.
- hotswap - 一个完整的解决方案,可以在不重启服务器、中断或阻止任何正在进行的过程的情况下重新加载你的代码。
- hugo - 快速和现代的静态网站引擎。
- ide - 浏览器可访问的 IDE。专为 Go 设计。
- ipe - 与用 GO 编写的 Pusher 客户端库兼容的开源 Pusher 服务器实现。
- joincap - 用于将多个 pcap 文件合并在一起的命令行实用程序。
- Juju - 与云无关的服务部署和编排 - 支持 EC2、Azure、Openstack、MAAS 等。
- Leaps - 使用操作转换的配对编程服务。
- lgo - 使用 Jupyter 进行交互式 Go 编程。它支持代码完成、代码检查和 100% Go 兼容性。
- limetext - Lime Text 是一款功能强大且优雅的文本编辑器,主要使用 Go 开发,旨在成为 Sublime Text 的免费开源软件继承者。
- LiteIDE -LiteIDE 是一个简单的、开源的、跨平台的 Go IDE。
- mockingjay - 来自一个配置文件的假 HTTP 服务器和消费者驱动的合同。您还可以让服务器随机出现异常行为,以帮助进行更真实的性能测试。
- myLG - 用 Go 编写的命令行网络诊断工具。
- naclpipe - 用 Go 编写的基于 NaCL EC25519 的简单加密管道工具。
- 新牛语-🐮cowsay 重生了。一个新时代。
- nes - 用 Go 编写的任天堂娱乐系统(NES)模拟器。
- Orbit - 一个用于运行命令和从模板生成文件的简单工具。
- peg - Peg,解析表达式语法,是 Packrat 解析器生成器的实现。
- Plik -Plik 是 Go 中的临时文件上传系统(类似于 Wetransfer).
- portal - Portal 是一种从任何计算机到另一台计算机的快速简便的命令行文件传输实用程序。
- protoncheck - 用于 waybar/polybar/yabar/i3blocks 的 ProtonMail 模块。
- restic - 重复数据删除备份程序。
- 清酒- 清酒是本地和远程主机的命令运行器。
- scc -Sloc Cloc and Code,一个非常快速准确的代码计数器,具有复杂性计算和 COCOMO 估计。
- Seaweed 文件系统- 具有 O(1) 磁盘寻道的快速、简单和可扩展的分布式文件系统。
- shell2http - 通过 http 服务器执行 shell 命令(用于原型设计或远程控制)。
- snap - 强大的遥测框架。
- Snitch - 当有人通过 Tsuru 部署任何应用程序时通知您的团队和许多工具的简单方法。
- Stack Up - Stack Up,一个超级简单的部署工具 - 只是 Unix - 可以把它想象成服务器网络的“制作”。
- stew - 编译二进制文件的独立包管理器。
- syncthing - 开放的、去中心化的文件同步工具和协议。
- tcpdog - 基于 eBPF 的 TCP 可观察性。
- tcpprobe - 用于网络性能和路径监控的 TCP 工具,包括套接字统计信息。
- term-quiz - 终端测验。
- toxiproxy - 模拟网络和系统条件以进行自动化测试的代理。
- tsuru - 可扩展的开源平台即服务软件。
- vaku - 用于 Vault 中基于文件夹的功能的 CLI 和 API,例如复制,移动和搜索。
- vFlow - 高性能、可扩展且可靠的 IPFIX、sFlow 和 Netflow 收集器。
- wellington -Sass 项目管理工具,使用 sprite 函数(如 Compass)扩展语言。
- 唤醒- 检测源代码中的非包容性语言。
- zs - 一个极简的静态站点生成器。
资源
在哪里发现新的 Go 库。
基准
- autobench - 比较不同 Go 版本之间性能的框架。
- go-benchmark-app - 强大的 HTTP 基准测试工具与 Аb、Wrk、Siege 工具相结合。为基准和比较结果收集统计数据和各种参数。
- go-benchmarks - 很少有杂项 Go 微基准测试。将一些语言特性与替代方法进行比较。
- go-http-routing-benchmark - Go HTTP 请求路由器基准测试和比较。
- go-json-benchmark -Go JSON 基准测试。
- go-ml-benchmarks - Go 中机器学习推理的基准。
- go-web-framework-benchmark - Go 网络框架基准测试。
- go_serialization_benchmarks - Go 序列化方法的基准。
- gocostmodel - Go 语言常用基本操作的基准测试。
- golang-sql-benchmark - 流行的 Go 数据库/SQL 实用程序的基准集合。
- gospeed - 用于计算语言构造速度的 Go 微基准。
- kvbench - 键/值数据库基准测试。
- skynet - Skynet 1M 线程微基准测试。
- speedtest-resize - 比较 Go 语言的各种图像调整大小算法。
会议
- GoCon - 日本东京。
- GoDays - 德国柏林。
- GoLab——意大利佛罗伦萨。
- GopherChina - 中国上海。
- GopherCon - 美国丹佛。
- GopherCon 澳大利亚- 澳大利亚悉尼。
- GopherCon Brazil - 巴西弗洛里亚诺波利斯。
- GopherCon Europe - 德国柏林。
- GopherCon India - 印度浦那。
- GopherCon Israel - 以色列特拉维夫。
- GopherCon 俄罗斯- 俄罗斯莫斯科。
- GopherCon Singapore - 新加坡丰树商业城。
- GopherCon UK - 英国伦敦。
- GopherCon Vietnam - 越南胡志明市。
- GoWest 会议- 美国李海。
电子书
购买电子书
- 100 个 Go 错误:如何避免它们
- Black Hat Go - 面向黑客和渗透测试人员的 Go 编程。
- 在 Go 中构建一个 Orchestrator
- Go 中的持续交付- 这本持续交付实用指南向您展示了如何快速建立一个自动化管道,以改进您的测试、代码质量和最终产品。
- Creative DIY Microcontroller Project With TinyGo and WebAssembly - 介绍 TinyGo 编译器以及涉及 Arduino 和 WebAssembly 的项目.
- Effective Go: Elegant, efficient, and testable code - 解锁 Go 对程序设计的独特视角,开始编写简单、可维护和可测试的 Go 代码。
- For the Love of Go - 面向 Go 初学者的入门书籍。
- Go Faster - 本书旨在缩短您的学习曲线,帮助您更快地成为一名熟练的 Go 程序员。
- Know Go: Generics - 在 Go 中理解和使用泛型的指南。
- Lets-Go - 使用 Go 创建快速、安全和可维护的 Web 应用程序的分步指南。
- Lets-Go-Further - 在 Go 中构建 API 和 Web 应用程序的高级模式。
- Go 的力量:测试- Go 中的测试指南。
- The Power of Go: Tools - 在 Go 中编写命令行工具的指南。
- 用 Go 编写编译器
- Writing An Interpreter In Go - 本书介绍了多种编写惯用的、富有表现力的、高效的 Go 代码的技术,避免了常见的陷阱。
免费电子书
- Go 开发人员的笔记本
- Go编程简介
- 使用 Golang 构建 Web 应用程序
- 使用 Go 构建 Web 应用程序
- Go 101 - 一本专注于 Go 语法/语义和各种细节的书。
- Go AST Book(中文) - 一本专注于 Go
go/*
包的书。 - 简洁地进行- 波斯语。
- GoBooks - 精选的 Go 书籍列表。
- How To Code in Go 电子书- 针对初次开发者的 600 页 Go 介绍。
- 学习围棋
- 使用 Go 进行网络编程
- 实用围棋课程
- 宇宙飞船标准库之旅
- Go 编程语言
- Golang 标准库实例(中文)
- Web 应用与 Go 的反教材
地鼠
- Free Gophers Pack - Maria Letta 的 Gopher 图形包,带有矢量和光栅中的插图和情感角色.
- Go-gopher-Vector - Go gopher 矢量数据 [.ai,.svg]。
- gopher-logos - 可爱的地鼠标志。
- 地鼠贴纸
- 地鼠图标
- gopherize.me - Gopherize 自己。
- gophers -Ashley McNamara 的地鼠艺术品.
- gophers - 免费 gophers.
- gophers - 随机 gopher 图形。
- gophers - Gopher amigurumi 玩具图案。
- gophers -Aurélie Vache 的 Gophers.
聚会
- 巴塞尔围棋聚会
- 贝尔法斯特地鼠
- 贝尔格莱德 Golang 聚会
- 柏林高朗
- 布里斯班地鼠
- 堪培拉地鼠
- 去语言纽约
- Go London 用户组
- 去远程聚会
- 去多伦多
- Go 用户组亚特兰大
- 去万隆
- GoBridge,旧金山,加利福尼亚州
- GoCracow - 波兰克拉科夫
- 去雅加达
- 阿姆斯特丹哥朗
- 戈朗阿根廷
- 戈朗雅典
- 马里兰州巴尔的摩戈朗
- 戈兰班加罗尔
- Golang 贝洛奥里藏特 - 巴西
- 戈兰波士顿
- 保加利亚
- 英国加的夫
- Golang 哥本哈根
- Golang Curitiba——巴西
- Golang DC,阿灵顿,弗吉尼亚州
- 英国多塞特郡戈兰
- 戈朗爱沙尼亚
- 戈朗古尔冈,印度
- Golang 汉堡——德国
- 以色列高朗
- 戈朗加德满都
- 韩国高朗
- 戈朗利马 - 秘鲁
- 戈朗里昂
- 高朗马赛
- 戈兰墨尔本
- 戈朗山景
- 戈兰东北
- 高朗巴黎
- 波兰
- 戈朗普纳
- Golang 鹿特丹
- 戈兰新加坡
- 哥朗斯德哥尔摩
- 澳大利亚悉尼
- Golang 圣保罗 - 巴西
- 高朗台北
- 戈兰塞萨洛尼基
- 戈朗火鸡
- 不列颠哥伦比亚省温哥华
- 奥地利维也纳
- Golang Москва
- GoSF - 加利福尼亚州旧金山
- 伊斯坦布尔戈朗
- 西雅图围棋程序员
- 乌克兰 Golang 用户组
- 犹他围棋用户组
- 去的女人 - 加利福尼亚州旧金山
在此处添加您所在城市/国家的群组(发送PR)
风格指南
社交媒体
推特
红迪网
网站
- Awesome Go @LibHunt - 你的 Go 工具箱。
- Awesome Golang Workshops - 精选的 golang 研讨会列表。
- Awesome Remote Job - 精选的远程工作列表。他们中的很多人都在寻找 Go 黑客。
- awesome-awesomeness - 其他非常棒的列表列表。
- awesome-go-extra - 解析 awesome-go README 文件并生成一个带有 repo 信息的新 README 文件。
- Code with Mukesh - 软件工程师和博客@codewithmukesh.com。
- Coding Mystery - 使用 Go 解决令人兴奋的密室逃脱编程挑战。
- CodinGame - 通过使用小游戏作为实际示例解决交互式任务来学习围棋。
- Explore Go Libraries & Projects - 在 kandi 上发现和查找流行和新的 Go 库、顶级作者、热门项目工具包、讨论、教程和学习资源的精选列表。
- Go 博客- 官方 Go 博客。
- Go Code Club - 一群 Gophers 每周阅读和讨论不同的 Go 项目。
- Go Community on Hashnode -Hashnode 上的 Gophers 社区。
- Go Forum - 讨论 Go 的论坛。
- Go 项目- Go 社区 wiki 上的项目列表。
- Go Proverbs - Rob Pike 的 Go Proverbs.
- Go Report Card - Go 包的成绩单。
- go.dev - Go 开发人员的中心。
- gocryforhelp - 需要帮助的 Go 项目集合。在 Go 中开始您的开源方式的好地方。
- godoc.org - 开源 Go 包的文档。
- Golang 开发人员工作- 专门针对 Golang 相关角色的开发人员工作。
- Golang Flow - 发布更新、新闻、包等。
- Golang News - 关于 Go 编程的链接和新闻。
- Golang 资源- 精选的学习 Go 的最佳文章、练习、演讲和视频。
- Golang Weekly - 每个星期一关于 Go 的项目、教程和文章。
- golang-graphics - Go 图像、图形和艺术的集合。
- golang-nuts - Go 邮件列表。
- Google Plus 社区- #golang 爱好者的 Google+ 社区。
- Gopher Community Chat - 加入我们新的 Gophers Slack 社区(了解它是怎么来的)。
- Gophercises - 为新手 gophers 提供的免费编码练习。
- gowalker.org - Go 项目 API 文档。
- json2go - 高级 JSON 到 Go 结构转换 - 在线工具。
- justforfunc - 专门介绍 Go 编程语言提示和技巧的 Youtube 频道,由 Francesc Campoy @francesc主持。
- Learn Go Programming - 通过插图学习 Go 概念。
- 用 Go 语言制作
- r/Golang - 关于 Go 的新闻。
- studygolang - 中国的 studygolang 社区。
- GitHub 上的 Trending Go 存储库- 寻找新的 Go 库的好地方。
- TutorialEdge-Golang
教程
- 50 Shades of Go - 新 Golang 开发者的陷阱、陷阱和常见错误。
- A Comprehensive Guide to Structured Logging in Go - 深入研究 Go 中的结构化日志记录世界,特别关注最近接受的 slog 提案,该提案旨在将具有级别的高性能结构化日志记录引入标准库.
- A Guide to Golang E-Commerce - 为电子商务构建一个 Golang 站点(包括演示)。
- A Tour of Go - Go 的互动之旅。
- Build a Database in 1000 lines of code - 从零开始用 1000 行代码构建 NoSQL 数据库。
- Build web application with Golang - Golang 电子书介绍了如何使用 golang 构建 web 应用程序。
- 使用 Gorilla Mux 和 PostgreSQL 在 Go 中构建和测试 REST API - 我们将在强大的 Gorilla Mux 的帮助下编写 API。
- 使用 Gin 构建 Go Web 应用程序和微服务- 熟悉 Gin 并了解它如何帮助您减少样板代码并构建请求处理管道。
- 缓存慢速数据库查询- 如何缓存慢速数据库查询。
- 取消 MySQL - 如何取消 MySQL 查询。
- CodeCrafters Golang Track - 通过构建您自己的 Redis、Docker、Git 和 SQLite 来精通高级 Go。具有 goroutines、系统编程、文件 I/O 等。
- Debugged.it Go 模式- 带有现成示例的高级 Go 模式。
- Go 中的设计模式- Go 中实现的编程设计模式的集合。
- Ethereum Development with Go - 关于 Ethereum Development with Go 的一本小电子书。
- Games With Go - 一个视频系列教学编程和游戏开发。
- Go By Example - 使用带注释的示例程序动手介绍 Go。
- Go Cheat Sheet - Go 的参考卡。
- Go database/sql tutorial - 数据库/sql 简介。
- Go in 7 days - 在 7 天内了解有关 Go 的一切(来自 Nodejs 开发人员).
- Go 语言教程- 学习 Go 语言教程。
- Go 教程- 学习 Go 编程。
- Go WebAssembly 教程 - 构建一个简单的计算器
- go-clean-template - Golang 服务的清洁架构模板。
- go-patterns - Go 设计模式、食谱和习语的精选列表。
- goapp - 构建和开发 Go web 应用程序/服务的自以为是的指南。
- Golang for Node.js Developers - Golang 与 Node.js 相比的学习示例。
- Golang 教程指南- 学习 Go 编程语言的免费课程列表。
- Golangbot - Go 编程入门教程。
- GopherCoding - 代码片段和教程的集合,以帮助解决日常问题。
- GopherSnippets - 带有 Go 编程语言测试和可测试示例的代码片段。
- Gosamples - 可让您解决日常代码问题的代码片段集合。
- Hackr.io - 从 golang 编程社区提交和投票的最佳在线 golang 教程中学习 Go。
- How to Benchmark: dbq vs sqlx vs GORM - 了解如何在 Go 中进行基准测试。作为案例研究,我们将对 dbq、sqlx 和 GORM 进行基准测试。
- 如何使用 Docker 部署 Go Web 应用程序- 了解如何使用 Docker 进行 Go 开发以及如何构建生产 Docker 映像。
- How to Use Godog for Behavior-driven Development in Go - 从 Godog 开始——一个用于构建和测试 Go 应用程序的行为驱动开发框架。
- Learn Go with 1000+ Exercises - 通过数以千计的示例、练习和测验学习围棋。
- Learn Go with TDD - 通过测试驱动开发学习 Go.
- Learning Go by examples - 以具体应用为例学习 Golang 语言的系列文章。
- Microservices with Go - 深入研究使用 Go 构建微服务,包括 gRPC.
- package main - 关于 Go 编程的 YouTube 频道。
- Programming with Google Go - Coursera 专业化,从头开始学习 Go。
- Saving a Third of Our Memory by Re-ordering Go Struct Fields - Go 结构中的字段排序效率低下。
- Scaling Go Applications - 关于在生产中构建、部署和扩展 Go 应用程序的一切。
- 世界上最简单的使用 Golang 的 WebAssembly 介绍
- W3basic Go 教程- W3Basic 提供深入的教程和组织良好的内容来学习 Golang 编程。
- 使用 Go - 为有经验的程序员介绍 go。
- Your basic Go - 大量教程和操作方法的集合。
引导式学习
- The Go Developer Roadmap - 新的 Go 开发人员可以遵循的可视化路线图,以帮助他们学习 Go。
- The Go Learning Path - 包含免费和优质资源的引导式学习路径。
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©