暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

好用的golang库

2690

Actor 模型

用于构建基于演员的程序的库。

  • Ergo - 一个基于参与者的框架,具有网络透明性,用于在 Golang 中创建事件驱动的架构。受 Erlang 启发。

  • Goakt-使用协议缓冲区作为 Golang 消息的快速分布式 Actor 框架。

  • Hollywood - 用 Golang 编写的超快且轻量级的 Actor 引擎。

  • ProtoActor - Proto Actor - 适用于 Go、C# 和 Java/Kotlin 的超快速分布式参与者。

人工智能

用于构建利用人工智能的程序的库。

  • chromem-go - 适用于 Go 的可嵌入矢量数据库,具有类似 Chroma 的界面且无第三方依赖性。内存中具有可选的持久性。

  • 有趣- 在 Go 中使用大型语言模型 (LLM) 的最简单但功能强大的方法。

  • langchaingo -LangChainGo 是一个由语言模型驱动的应用程序开发框架。

  • LocalAI - 开源 OpenAI 替代方案,自托管 AI 模型。

  • Ollama——在本地运行大型语言模型。

  • OllamaFarm - 管理、负载平衡和故障转移 Ollamas 包

⬆ 返回顶部

音频和音乐

用于处理音频的库。

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

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

  • GoAudio-本机 Go 音频处理库。

  • gosamplerate -go 的 libsamplerate 绑定。

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

  • malgo-迷你音频库。

  • minimp3 - 轻量级 MP3 解码器库。

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

  • PortAudio -PortAudio 音频 I/O 库的 Go 绑定。

⬆ 返回顶部

身份验证和 OAuth

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

  • authboss - Web 的模块化身份验证系统。它尝试删除尽可能多的样板和“困难的东西”,以便每次您在 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 Token、JSON Web Signatures 和 JSON Web Encryption 规范。

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

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

  • gosession - 这是 GoLang 中 net/http 的快速会话。这个包可能是会话机制的最佳实现,或者至少它试图成为最佳实现。

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

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

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

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

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

  • jwt-go -JSON Web Tokens (JWT) 的全功能实现。该库支持 JWT 的解析和验证以及生成和签名。

  • jwx - 实现各种 JWx(JWA/JWE/JWK/JWS/JWT,也称为 JOSE)技术的 Go 模块

  • keto -“Zanzibar:Google 的一致全球授权系统”的开源 (Go) 实现。提供 gRPC、REST API、newSQL 和简单且细粒度的权限语言。支持 ACL、RBAC 和其他访问模型。

  • loginsrv - 具有可插入后端(如 OAuth2(Github)、htpasswd、osiam)的 JWT 登录微服务。

  • oauth2 - goauth2 的后继者。通用 OAuth 2.0 包,附带 JWT、Google API、Compute Engine 和 App Engine 支持。

  • oidc - 易于使用的 OpenID Connect 客户端和服务器库,用 Go 编写,并经过 OpenID 基金会认证

  • openfga - 基于“Zanzibar:Google 的一致全球授权系统”论文实现细粒度授权。由CNCF支持。

  • 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 的支持)。

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

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

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

⬆ 返回顶部

区块链

构建区块链的工具。

  • cometbft - 分布式、拜占庭容错、确定性状态机复制引擎。它是 Tendermint Core 的一个分支,并实现了 Tendermint 共识算法。

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

  • gno - 使用 Golang 和 Gnolang 构建的综合智能合约套件,Gnolang 是针对区块链的确定性、专用 Go 变体。

  • go-ethereum-以太坊协议的官方 Go 实现。

  • gosemble-用于构建与 Polkadot Substrate 兼容的运行时的基于 Go 的框架。

  • gossamer -Polkadot Host 的 Go 实现。

  • kubo - 用 Go 实现的区块链框架。它提供内容可寻址存储,可用于 DApp 中的去中心化存储。它基于 IPFS 协议。

  • lnd——照明网络节点的完整实现。

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

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

⬆ 返回顶部

机器人构建

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

  • bot - 零依赖性 Telegram Bot 库,带有附加 UI 组件

  • echotron -Go 中用于 Telegram Bots 的优雅并发库。

  • ephemeral-roles - 一个根据语音频道成员存在情况管理临时角色的 Discord 机器人。

  • go-chat-bot-用 Go 编写的 IRC、Slack 和 Telegram 机器人。

  • go-joe-受 Hubot 启发但用 Go 编写的通用机器人库。

  • go-sarah-为所需聊天服务(包括 LINE、Slack、Gitter 等)构建机器人的框架。

  • go-tg-由官方文档 Go 客户端库生成,用于访问 Telegram Bot API,其中包含用于构建复杂机器人的电池。

  • 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 编写,兼容中心化交易所和自定义交易策略。

  • larry -Larry 🐦 是一个非常简单的 Twitter 机器人生成器,它使用 Go 语言构建,从 Github 中发布随机存储库。

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

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

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

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

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

  • slackscot——另一个用于构建 Slack 机器人的框架。

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

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

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

  • telegram-bot-api-简单干净的 Telegram 机器人客户端。

  • teleterm -Telegram Bot Exec 终端命令。

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

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

⬆ 返回顶部

构建自动化

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

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

  • air -Air - Go 应用程序的实时重新加载。

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

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

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

  • gob -Gradle MavenGo 项目的构建工具。

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

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

  • mmake—现代 Make。

  • 实现- 构建一个带有文件监视程序的系统并实时重新加载。运行、构建并使用自定义路径监视文件更改。

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

  • taskctl-并发任务运行器。

  • xc - 具有 README.md 定义任务的任务运行器,可执行 markdown。

⬆ 返回顶部

命令行

高级控制台 UI

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

  • asciigraph -Go 软件包可在命令行应用程序中制作轻量级 ASCII 线图╭┈╯,无需其他依赖项。

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

  • box-cli-maker - 为您的 CLI 制作高度定制的盒子。

  • bubble-table - bubbletea 的交互式表格组件。

  • bubble -bubbletea 的 TUI 组件。

  • bubbletea-基于 Elm 架构的 Go 框架,用于构建终端应用程序。

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

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

  • clay-用于美化终端 控制台输出的直观软件包。

  • 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 包,用于与终端旋转器配合使用。

⬆ 返回顶部

标准 CLI

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

  • acmd -Go 中简单,实用且有主见的 CLI 包。

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

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

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

  • carapace-bin - 多 shell 多命令参数完成器。

  • carapace-spec - 使用 spec 文件定义简单的完成。

  • 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-用于支持子命令的简单但功能强大的命令行选项解析库。

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

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

  • go-andotp - 用于加密 / 解密andOTP文件的CLI 程序。也可以用作库。

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

  • go-commander -Go 库可简化 CLI 工作流程。

  • 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 库。

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

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

  • ops ——Unikernel 构建器/编排器。

  • pflag -Go 的 flag 包的替代品,实现 POSIX/GNU 风格的 --flags。

  • readline Shell 库具有现代且易于使用的 UI 功能。

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

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

  • strumt-创建提示链的库。

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

  • 调查- 构建交互式且可访问的提示,并完全支持 Windows 和 posix 终端。

  • teris-io/cli-用于在 Go 中构建命令行界面的简单而完整的 API。

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

  • ukautz/clif - 小型命令行界面框架。

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

  • 版本- 收集并显示多种格式的 CLI 版本信息以及升级通知。

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

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

⬆ 返回顶部

配置

用于配置解析的库。

  • aconfig-简单,实用且有主见的配置加载器。

  • bcl -BCL 是一种类似于 HCL 的配置语言。

  • cleanenv-简约的配置读取器(来自文件、ENV 以及任何您想要的地方)。

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

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

  • 配置- 从环境变量,文件,标志和“默认”标签初始化配置结构的库。

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

  • configuro - 来自 ENV 和 Files 的自定义配置加载和验证框架,专注于符合 12 因素的应用程序。

  • confiq - 结构化数据格式,用于配置 Go 的结构解码器库 - 支持多种数据格式

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

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

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

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

  • env - 支持解组为结构体的环境实用程序包

  • envconfig-从环境变量中读取您的配置。

  • envh-帮助管理环境变量。

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

  • genv-通过 dotenv 支持轻松读取环境变量。

  • go-array-从 map、slice 或 json 读取或设置数据的 Go 包。

  • go-aws-ssm-从 AWS System Manager - 参数存储中获取参数的 Go 包。

  • go-cfg-该库提供了一种统一的方法,将配置数据从各种来源(例如 env、标志和配置文件(.json、.yaml、.toml、.env))读入结构中。

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

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

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

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

  • GoCfg - 配置管理器,具有基于结构标签的合同、自定义值提供程序、解析器和文档生成。可定制且简单。

  • 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,一个易于使用的静态和动态配置包,支持播种、环境变量和 Consul 集成。

  • hjson - 人性化的 JSON,一种适合人类的配置文件格式。语法宽松,错误更少,注释更多。

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

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

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

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

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

  • kelseyhightower/envconfig-用于管理来自环境变量的配置数据的 Go 库。

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

  • konf-从文件、环境、标志和云(例如 AWS、Azure、GCP)读取/查看配置的最简单 API。

  • 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包装器。

  • sonic - 一个速度极快的 JSON 序列化和反序列化库。

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

  • swap - 根据构建环境递归实例化/配置结构。(YAML、TOML、JSON 和 env)。

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

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

  • viper-用尖牙进行配置。

  • xdg -XDG基本目录规范XDG 用户目录的 Go 实现

  • xdg – 遵循XDG 标准的跨平台包。

  • yamagiconf -Go 配置的 YAML 的“安全子集”。

⬆ 返回顶部

持续集成

帮助持续集成的工具。

  • abstruse -Abstruse 是一个分布式 CI 平台。

  • Bencher - 一套用于捕捉 CI 中的性能回归的连续基准测试工具。

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

  • dot - 一个最小的、本地优先的持续集成系统,使用 Docker 分阶段并发运行作业。

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

  • go-beautiful-html-coverage - GitHub Action 用于免费跟踪拉取请求中的代码覆盖率,并提供漂亮的 HTML 预览。

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

  • go-semver-release-自动化 Git 存储库的语义版本控制。

  • go-test-coverage-当测试覆盖率低于设定的阈值时报告问题的工具和 GitHub 操作。

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

  • gotestfmt-为人类进行测试输出。

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

  • muffet -Go 中的快速网站链接检查器,查看替代方案

  • 工作服- 适用于工作服等工具的多软件包 go 项目 coverprofile。

  • roveralls-递归覆盖测试工具。

  • woodpecker - Woodpecker 是 Drone CI 系统的一个社区分支。

⬆ 返回顶部

CSS 预处理器

用于预处理 CSS 文件的库。

  • gcss-纯 Go CSS 预处理器。

  • go-libsass -Go 包装器,用于 100% Sass 兼容的 libsass 项目。

⬆ 返回顶部

数据集成框架

执行 ELT/ETL 的框架

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

  • CloudQuery - 具有可插入式架构的高性能 ELT 数据集成框架。

  • omniparser - 一个多功能 ETL 库,以流式方式解析文本输入(CSV/txt/JSON/XML/EDI/X12/EDIFACT/等),并使用数据驱动模式将数据转换为 JSON 输出。

⬆ 返回顶部

数据结构和算法

位打包和压缩

  • bingo - 快速、零分配、按字典顺序保存本机类型打包为字节。

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

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

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

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

  • 咆哮- 实现压缩位集的 Go 包。

钻头套件

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

  • bitset -Go 包实现位集。

Bloom 和 Cuckoo 过滤器

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

  • bloom-用 Go 实现的布隆过滤器。

  • bloom- Golang Bloom 过滤器实现。

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

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

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

  • cuckoofilter -Cuckoo 过滤器:用 Go 实现的计数布隆过滤器的良好替代品。

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

数据结构和算法集合

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

  • go-datastructures-有用、高性能和线程安全的数据结构的集合。

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

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

迭代器

  • goterator - 迭代器实现,提供 map 和 Reduce 功能。

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

地图

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

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

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

  • go-shelve -Go 编程语言的持久性、类似地图的对象。支持多个嵌入式键值存储。

  • goradd/maps -Go 1.18+ 通用地图界面,用于地图;安全地图;有序地图;有序、安全地图;等等。

杂项数据结构和算法

  • 并发编写器- 高度并发的替代品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 -Go 包,用于将值映射到空间填充曲线(例如希尔伯特 (Hilbert) 和皮亚诺 (Peano) 曲线)。

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

  • quadtree - 通用、零分配、100% 测试覆盖的四叉树。

  • 切片- 对切片进行操作的函数;类似package strings
    但适合与切片一起使用。

  • 切片- 纯粹的、通用的切片函数。

可空类型

  • nan - 一个库中的零分配可空结构,具有方便的转换函数、编组器和解组器。

  • null - 可空的 Go 类型,可以与 JSON 进行编组/解组。

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

队列

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

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

  • goconcurrentqueue - 并发 FIFO 队列。

  • hatchet-分布式、容错任务队列。

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

  • 队列-Go 的多个线程安全、通用队列实现。

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

  • golang-set -Go 的线程安全和非线程安全的高性能集合。

  • goset-适用于 Go 的有用的 Set 集合实现。

  • 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 中的跳跃列表实现。

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

  • treemap - 使用底层红黑树的通用键排序映射。

管道

  • ordered-concurrently -Go 模块,可同时处理工作并按照输入的顺序在通道中返回输出。

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

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

⬆ 返回顶部

数据库

缓存

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

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

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

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

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

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

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

  • clusteredBigCache - 具有集群支持和单个项目过期功能的BigCache。

  • coherence-go-client - 使用 gRPC 作为网络传输,为 Go 应用程序完整实现 Oracle Coherence 缓存 API。

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

  • EchoVault - 与 Redis 客户端兼容的可嵌入分布式内存数据存储。

  • fastcache - 适用于大量条目的快速线程安全内存缓存。最大限度地减少 GC 开销。

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

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

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

  • go-freelru一个无 GC、快速且通用的 LRU 哈希图库,具有可选的锁定、分片、驱逐和过期功能。

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

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

  • gocache - 具有高性能和自动清除功能的无数据竞争 Go ache 库

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

  • icache - 高性能、通用、线程安全、零依赖的缓存包。

  • imcache - 通用的内存缓存 Go 库。它支持过期、滑动过期、最大条目限制、逐出回调和分片。

  • nscache - 支持多个数据源驱动程序的 Go 缓存框架。

  • otter-用于 Go 的高性能无锁缓存。比 Ristretto 和同类产品快很多倍。

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

  • sturdyc - 具有高级并发功能的缓存库,旨在使 I/O 密集型应用程序变得健壮且性能高。

  • theine - 高性能,接近最佳的内存缓存,具有主动 TTL 过期和泛型。

  • timedmap-具有过期键值对的映射。

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

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

Go 实现的数据库

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

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

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

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

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

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

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

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

  • 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 是基于 LevelDB 的高性能 NoSQL,类似 Redis。

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

  • libradb -LibraDB 是一个简单的数据库,仅包含不到 1000 行代码,可供学习。

  • LinDB - LinDB 是一个可扩展、高性能、高可用性的分布式时间序列数据库。

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

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

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

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

  • objectbox-go-具有 Go API 的高性能嵌入式对象数据库(NoSQL)。

  • pebble -Go 中受 RocksDB / LevelDB 启发的键值数据库。

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

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

  • prometheus-监控系统和时间序列数据库。

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

  • rosedb - 基于 LSM+WAL 的嵌入式 kv 数据库,支持字符串、列表、哈希、集合、zset。

  • rotom-用 Golang 构建的小型 Redis 服务器,兼容 RESP 协议。

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

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

  • tidb -TiDB 是一个分布式 SQL 数据库。受 Google F1 设计的启发。

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

  • unitdb - 适用于 IoT、实时消息传递应用程序的快速时间序列数据库。使用 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 服务器发送大请求。

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

  • dg - 一种快速数据生成器,可根据生成的关系数据生成 CSV 文件。

  • dynago-简化使用 AWS DynamoDB 的工作。

  • gatewayd - 用于构建数据驱动应用程序的云原生数据库网关和框架。与用于数据库的 API 网关类似。

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

  • gorm-multitenancy - 对 GORM 管理数据库的多租户支持。

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

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

  • onedump - 使用一个命令和配置将数据库从不同的驱动程序备份到不同的目的地。

  • pg_timetable - PostgreSQL 的高级调度。

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

  • prep-使用准备好的 SQL 语句而不更改代码。

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

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

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

  • vitess -vitess 提供服务器和工具,方便扩展 MySQL 数据库以用于大规模 Web 服务。

  • wescale - WeScale是一个数据库代理,旨在增强应用程序的可扩展性、性能、安全性和弹性。

SQL 查询生成器

用于构建和使用 SQL 的库。

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

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

  • builq-在 Go 中轻松构建 SQL 查询。

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

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

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

  • godbal -go 的数据库抽象层 (dbal)。支持 SQL 生成器并轻松获取结果。

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

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

  • Hotcoal - 保护您手工制作的 SQL 免遭注入。

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

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

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

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

  • 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、结构化文件的数据存储连接。

  • dynamo - 一种简单的键值抽象,用于在 AWS 存储服务中存储代数和链接数据类型:AWS DynamoDB 和 AWS S3。

  • 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 Object DataBase 驱动程序。

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

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

  • go-sql-driver/mysql -Go 的 MySQL 驱动程序。

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

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

  • gofreetds -Microsoft MSSQL 驱动程序。FreeTDS 上的 Go 包装

  • KSQL - 一个简单而强大的 Golang SQL 库

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

  • pig-简单的pgx包装器,可轻松执行和扫描查询结果。

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

  • Sqinn-Go-纯 Go 的 SQLite。

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

  • surrealdb.go -Go 的 SurrealDB 驱动程序。

  • ydb-go-sdk - 本机和数据库/sql 驱动程序 YDB(Yandex 数据库)

NoSQL 数据库驱动程序

  • aerospike-client-go -Go 语言的 Aerospike 客户端。

  • arangolite-适用于 ArangoDB 的轻量级 golang 驱动程序。

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

  • forestdb-与 ForestDB 进行绑定。

  • go-couchbase -Go 中的 Couchbase 客户端。

  • go-mongox - 基于官方驱动程序的 Go Mongo 库,具有简化的文档操作、结构到集合的通用绑定、内置 CRUD、聚合、自动字段更新、结构验证、钩子和基于插件的编程。

  • go-pilosa -Pilosa 的 Go 客户端库。

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

  • gocb-官方 Couchbase Go SDK。

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

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

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

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

  • gomemcache -Go 编程语言的 memcache 客户端库。

  • gomemcached -Go 的二进制 Memcached 客户端,支持使用一致性散列和 SASL 进行分片。

  • gorethink -RethinkDB 的 Go 语言驱动程序。

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

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

  • mgm-基于 MongoDB 模型的 Go 版 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 客户端。

搜索和分析数据库

  • clickhouse-go-具有兼容性的 Go 的 ClickHouse SQL 客户端database/sql

  • effdsl -Go 的 Elasticsearch 查询生成器。

  • elastic -Go 的 Elasticsearch 客户端。

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

  • elastigo -Elasticsearch 客户端库。

  • go-elasticsearch -Go 的官方 Elasticsearch 客户端。

  • goes - 与 Elasticsearch 交互的库。

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

⬆ 返回顶部

日期和时间

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

  • approx - Duration 扩展支持以天、周和年为单位解析/打印持续时间。

  • carbon-用于日期时间的简单、语义且开发人员友好的 golang 包。

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

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

  • 日期- 增强处理日期、日期范围、时间跨度、时间段和一天中的时间的时间。

  • dateparse-无需事先知道格式即可解析日期。

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

  • feiertage - 一组用于计算德国公共假期的函数,包括对德国各州(联邦州)的专业化。例如复活节、五旬节、感恩节...

  • go-anytime - 解析日期/时间,如“下一个 12 月 22 日下午 3 点”和范围,如“从今天到下周四”,而无需事先知道格式。

  • go-datebin-一个简单的日期时间解析包。

  • go-persian-calendar -Go(golang)中波斯(太阳希吉来)历法的实现。

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

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

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

  • gostradamus-用于处理日期的 Go 包。

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

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

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

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

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

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

  • tuesday - 与 Ruby 兼容的 Strftime 函数。

⬆ 返回顶部

分布式系统

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

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

  • bedrock - 为在 Go 中快速开发服务和更多特定用例框架提供了最小、模块化和可组合的基础。

  • 毛细血管- 分布式批量数据处理框架。

  • celeriac-用于在 Go 中添加对与 Celery 工作者、任务和事件进行交互和监控的支持的库。

  • 一致- 具有有界负载的一致性哈希。

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

  • dht ——BitTorrent Kademlia DHT 实现。

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

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

  • doublejump - 改进的 Google 跳转一致性哈希。

  • dragonboat -Go 中功能齐全且高性能的多组 Raft 库。

  • Dragonfly - 基于p2p技术提供高效、稳定、安全的文件分发和镜像加速,成为云原生架构的最佳实践和标准解决方案。

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

  • dynamolock - DynamoDB 支持的分布式锁定实现。

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

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

  • evans - Evans:更具表现力的通用 gRPC 客户端。

  • failedd - 分布式系统的自适应累积故障检测器。

  • flowgraph-基于流的编程包。

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

  • glow-易于使用的可扩展分布式大数据处理,Map-Reduce,DAG 执行,全部采用纯 Go 语言编写。

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

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

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

  • go-jump -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 客户端实现。

  • K8gb - 云原生 Kubernetes 全局均衡器。

  • Kitex - 一个高性能、高扩展性的 Golang RPC 框架,可帮助开发人员构建微服务。如果性能和可扩展性是开发微服务时的主要考虑因素,那么 Kitex 是一个不错的选择。

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

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

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

  • micro - 适用于云及其他领域的分布式系统运行时。

  • mochi mqtt - 完全符合规格,可嵌入高性能 MQTT v5/v3 代理,适用于物联网、智能家居和 pubsub。

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

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

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

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

  • raft - 由 HashiCorp 开发的 Raft 共识协议的 Golang 实现。

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

  • rain - BitTorrent 客户端和库。

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

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

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

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

  • Semaphore - 一个简单的(微)服务协调器。

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

  • sponge - 集成自动代码生成、gin 和 grpc 框架、基础开发框架的分布式开发框架。

  • Tarmac - 使用 WebAssembly 编写函数、微服务或整体式应用程序的框架

  • Temporal - 持久的执行系统,使代码具有容错能力并且简单。

  • torrent ——BitTorrent 客户端包。

  • trpc-go -tRPC 的 Go 语言实现,它是一个可插入的高性能 RPC 框架。

⬆ 返回顶部

动态 DNS

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

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

  • dyndns - Background Go 进程会定期自动检查您的 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-用于互联网消息格式和邮件消息的流媒体库。

  • go-premailer -Go 中 HTML 邮件的内联样式。

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

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

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

  • Maddy - 一体化(SMTP、IMAP、DKIM、DMARC、MTA-STS、DANE)电子邮件服务器

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

  • mailgun-go-使用 Mailgun API 发送邮件的 Go 库。

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

  • Mailpit-面向开发人员的电子邮件和 SMTP 测试工具。

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

  • mox - 现代全功能安全邮件服务器,用于低维护、自托管电子邮件。

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

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

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

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

⬆ 返回顶部

可嵌入脚本语言

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

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

  • binding - 转到 Lua 绑定库,基于gopher-lua

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

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

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

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

  • gisp -Go 中的简单 LISP。

  • go-duktape -Go 的 Duktape JavaScript 引擎绑定。

  • go-lua-将 Lua 5.2 VM 移植到纯 Go。

  • go-php -Go 的 PHP 绑定。

  • go-python - 与 CPython C-API 进行简单的绑定。

  • 目标——一种可嵌入的脚本数组语言。

  • goja -Go 中的 ECMAScript 5.1(+) 实现。

  • golua -Lua C API 的 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 的语言。

  • starlet - starlark-go的 Go 包装器,可简化脚本执行、提供数据转换以及有用的 Starlark 库和扩展。

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

  • Wa/凹语言- Go 中嵌入的 Wa 编程语言。

⬆ 返回顶部

错误处理

用于处理错误的库。

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

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

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

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

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

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

  • 错误- 提供带有堆栈跟踪和可选结构化详细信息的错误。与 github.com/pkg/errors API 兼容,但不在内部使用。

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

  • 错误- 转到错误库,可通过网络进行错误移植。

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

  • 异常-Golang 中使用 try-catch 进行异常处理的简单实用程序包。

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

  • 故障- 一种包装错误的人体工程学机制,以便于提供错误值的结构化元数据和上下文。

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

  • multierr-用于将错误列表表示为单个错误的包。

  • oops-使用上下文、堆栈跟踪和源片段进行错误处理。

  • 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。

  • 复制-递归复制目录。

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

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

  • go-csv-tag-使用标签加载 csv 文件。

  • go-decent-copy-为人类复制文件。

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

  • go-gtfs-在 go 中加载 gtfs 文件。

  • go-wkhtmltopdf-将 HTML 模板转换为 PDF 文件的包。

  • gofs-开箱即用的跨平台实时文件同步工具。

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

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

  • iso9660 - 用于读取和创建 ISO9660 磁盘映像的软件包

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

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

  • parquet-读取和写入parquet文件。

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

  • pdfcpu ——PDF 处理器。

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

  • todotxt -Gina Trapani 的todo.txt文件的 Go 库,支持解析和操作todo.txt格式的任务列表

  • vfs-一组可插入、可扩展且有主见的文件系统功能,适用于多种文件系统类型,例如 os、S3 和 GCS。

⬆ 返回顶部

金融的

会计和财务软件包。

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

  • ach - 自动清算所 (ACH) 文件的读取器、写入器和验证器。

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

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

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

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

  • decimal - 具有无恐慌算术的不可变十进制数。

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

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

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

  • go-finance-用于获取汇率、通过 VIES 检查增值税号以及检查 IBAN 银行账号的模块。

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

  • go-money-福勒货币模式的实现。

  • go-nowpayments-加密 NOWPayments API 库。

  • 金钱- 不可变的货币金额和汇率,无恐慌算术。

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

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

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

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

  • swift - 离线检查 IBAN(国际银行帐号)的有效性并检索 BIC(针对某些国家)。

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

  • 股票行情机- 终端股票观察器和股票头寸追踪器。

  • 交易- 嵌入式账户交易数据库,以多线程模式运行。

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

⬆ 返回顶部

表格

用于处理表单的库。

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

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

  • checker - Checker 帮助通过结构标签中定义的规则或直接通过函数验证用户输入。

  • 符合- 控制用户输入。根据结构标签修剪、清理和擦洗数据。

  • 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- functional - 使用泛型进行 Go 函数式编程

  • go-underscore-实用且实用的 Go 集合实用程序集合。

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

  • mo-基于 Go 1.18+ 泛型(Option、Result、Either...)的 Monad 和流行的 FP 抽象。

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

  • valor-通用选项和结果类型,可选择包含一个值。

⬆ 返回顶部

游戏开发

很棒的游戏开发库。

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

  • Ebitengine - Go 中极其简单的 2D 游戏引擎。

  • ecs-基于 Golang 中的实体组件系统概念构建您自己的游戏引擎。

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

  • fantasyname - 幻想名称生成器。

  • g3n -Go 3D 游戏引擎。

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

  • go-sdl2-简单 DirectMedia 层的 Go 绑定

  • go3d-面向性能的 Go 2D / 3D 数学包。

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

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

  • 网格- 具有光线投射、阴影投射和路径查找功能的通用 2D 网格。

  • Harfang3D -Go 语言的 3D 引擎,可在 Windows 和 Linux 上运行(Go.dev 上的 Harfang)。

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

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

  • Oak ——Pure Go 游戏引擎。

  • Pitaya - 可扩展的游戏服务器框架,通过 C SDK 提供集群支持和适用于 iOS、Android、Unity 和其他平台的客户端库。

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

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

  • raylib-go -raylib的 Go 绑定,一个用于学习视频游戏编程的简单且易于使用的库。

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

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

⬆ 返回顶部

生成器

生成 Go 代码的工具。

  • convergen - 功能丰富的类型到类型复制代码生成器。

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

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

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

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

  • goderive - 从输入类型派生函数

  • goverter-通过定义接口来生成转换器。

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

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

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

  • oapi-codegen-此软件包包含一组实用程序,用于根据 OpenAPI 3.0 API 定义生成服务的 Go 样板代码。

  • typeregistry - 一个动态创建类型的库。

⬆ 返回顶部

地理

地理工具和服务器

  • geoos-一个提供空间数据和几何算法的库。

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

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

  • godal -GDAL 的 Go 包装器。

  • 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 几何-Go 中的 S2 几何库。

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

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

  • Web-Mercator-Projection一个使用 Web Mercator 投影在地图上轻松使用和转换 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

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

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

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

  • async-适用于 Go 的具有 async / await 风格的异步任务包。

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

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

  • async-job - AsyncJob 是一个异步队列作业管理器,代码轻量,清晰,速度快。

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

  • channelify - 转换您的功能以返回通道,从而实现轻松而强大的并行处理。

  • conc -conc
    是您在 go 中进行结构化并发的工具带,使常见任务更容易、更安全。

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

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

  • cyclicbarrier -golang 的 CyclicBarrier。

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

  • flowmatic - 结构化并发变得简单。

  • go-accumulator-事件积累及其后续处理的解决方案。

  • go-actor-一个使用参与者模型编写并发程序的小型库。

  • go-floc-轻松协调 goroutine。

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

  • go-tools/multithreading-使用这个具有简单 API 的轻量级库来管理 goroutine 池。

  • go-trylock- Golang 的读写锁支持 TryLock。

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

  • go-workerpool - 受 Java 线程池的启发,Go WorkerPool 旨在控制繁重的 Go 例程。

  • go-workers-轻松安全地运行用于大型数据处理管道的工作程序。

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

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

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

  • gowl - Gowl 是一款同时具备流程管理和流程监控功能的工具。无限工作池让您能够控制池和流程并监控其状态。

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

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

  • gpool - 管理可调整大小的上下文感知 goroutine 池以限制并发。

  • grpool-轻量级 Goroutine 池。

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

  • Hunch - Hunch 提供的功能包括:All
    、、First
    Retry
    Waterfall
    使得异步流控制更加直观。

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

  • neilotoole/errgroup - 的替代方案sync/errgroup
    ,仅限于 N 个工作 goroutine 池。

  • Nursery -Go 中的结构化并发。

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

  • parallel-fn-并行运行函数。

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

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

  • rill - 通过通道转换实现并发。无需样板、类型安全、批处理和错误处理。

  • router -routine
    是一个ThreadLocal
    for go 库,它封装并提供了一些简单易用、无竞争、高性能的goroutine
    上下文访问接口,可以帮助你更优雅地访问协程上下文信息。

  • 例程- 使用上下文进行例程控制,支持:Main、Go、Pool 和一些有用的执行器。

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

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

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

  • threadpool -Golang 线程池实现。

  • tunny -golang 的 Goroutine 池。

  • worker-pool -goworker 是一个 Go 简单异步工作池。

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

⬆ 返回顶部

图形用户界面

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

工具包

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

  • cimgui-go-通过cimgui为Dear ImGui自动生成 Go 包装器

  • Cogent Core - 用于构建在 macOS、Windows、Linux、iOS、Android 和 Web 上运行的 2D 和 3D 应用程序的框架.

  • DarwinKit-使用 Go 构建本机 macOS 应用程序。

  • energy - 基于 LCL(Native System UI Control Library) 和 CEF(Chromium Embedded Framework) 的跨平台 (Windows/ macOS / Linux)

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

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

  • go-gtk- GTK 的 Go 绑定。

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

  • Goey - 适用于 Windows / Linux / Mac 的跨平台 UI 工具包聚合器。GTK、Cocoa、Windows API

  • goradd/html5tag-用于输出 HTML5 标签的库。

  • gotk3- GTK3 的绑定。

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

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

  • Spot - 反应灵敏、跨平台的桌面 GUI 工具包。

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

  • unison-用于 Go 桌面应用程序的统一图形用户体验工具包。支持 macOS、Windows 和 Linux。

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

  • walk-适用于 Go 的 Windows 应用程序库套件。

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

相互作用

  • 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)库。

  • 操纵杆——一个轮询 API,用于读取所连接的操纵杆的状态。

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

⬆ 返回顶部

图片

用于处理图像的库。

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

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

  • cameron-围棋的头像生成器。

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

  • color-extractor - 无需外部依赖的主色提取器。

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

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

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

  • gg-纯 Go 语言进行 2D 渲染。

  • gift-图像处理过滤器包。

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

  • go-cairo-与 cairo 图形库进行绑定。

  • go-gd-为 GD 库进行绑定。

  • go-nude-使用 Go 进行裸体检测。

  • go-webcolors-将 webcolors 库从 Python 移植到 Go。

  • 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 微服务。

  • 成像- 简单的 Go 图像处理包。

  • imagor-使用 libvips 的快速、安全的图像处理服务器和 Go 库。

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

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

  • mergi-用于图像处理(合并,裁剪,调整大小,水印,动画)的工具和 Go 库。

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

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

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

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

  • rez-使用纯 Go 和 SIMD 调整图像大小。

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

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

  • 隐写术- 用于 LSB 隐写术的纯 Go 库。

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

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

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

  • transformimgs - Transformimgs 使用下一代格式调整 Web 图像大小并优化图像。

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

⬆ 返回顶部

物联网 (IoT)

物联网编程设备的库。

  • Connectordb - 量化自我和物联网的开源平台。

  • devices - 物联网设备库套件,针对 x / exp / io 进行实验。

  • ekuiper-用于物联网边缘的轻量级数据流处理引擎。

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

  • flogo - Project Flogo 是一个用于 IoT 边缘应用和集成的开源框架。

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

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

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

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

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

  • periph-外围设备 I/O,用于与低级板卡设备接口。

  • rulego -RuleGo 是一种面向物联网边缘的轻量级、高性能、嵌入式、可编排的基于组件的规则引擎。

  • sensorbee-物联网的轻量级流处理引擎。

  • shifu - Kubernetes 原生物联网开发框架。

  • 智能家居-物联网自动化软件包。

⬆ 返回顶部

作业调度器

用于调度作业的库。

  • Cadence-client - 在 Uber 制作的 Cadence 编排引擎上运行的用于编写工作流和活动的框架。

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

  • cheek - 一个简单的类似于 crontab 的调度程序,旨在提供一种 KISS 方法来进行作业调度。

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

  • cronticker - 支持 cron 计划的自动收报机实现。

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

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

  • go-dag - 用 Go 开发的框架,用于管理有向无环图描述的工作流的执行。

  • go-quartz-适用于 Go 的简单、零依赖调度库。

  • gocron - 简单流畅的 Go 作业调度。这是jasonlvhit/gocron的一个积极维护的分支。

  • goflow-一个简单但功能强大的 DAG 调度程序和仪表板。

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

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

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

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

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

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

  • 调度程序- 使 Cronjobs 调度变得简单。

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

⬆ 返回顶部

JSON

用于处理 JSON 的库。

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

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

  • dynjson - 针对动态 API 的客户端可定制的 JSON 格式。

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

  • epoch-包含用于将 Unix 时间戳/纪元编组/解组为 JSON 中的内置时间。时间类型。

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

  • gabs-用于在 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 差异实用程序。

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

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

  • JSON-to-Go-将 JSON 转换为 Go 结构。

  • JSON-to-Proto - 在线将 JSON 转换为 Protobuf。

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

  • jsonapi-errors-根据 JSON API 错误参考进行绑定。

  • jsoncolor-输出encoding/json
    彩色 JSON 的替代品。

  • jsondiff-基于 RFC6902(JSON Patch)的 Go 的 JSON diff 库。

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

  • jsongo -Fluent API 使创建 Json 对象变得更容易。

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

  • jsonhandlers -JSON 库公开简单的处理程序,让您可以轻松地从各种来源读取和写入 json。

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

  • jsonvalue - 一个快速、方便的非结构化 JSON 数据库,替代encoding/json

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

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

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

  • marshmallow - 高性能 JSON 解组,适用于灵活的用例。

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

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

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

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

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

⬆ 返回顶部

日志记录

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

  • stillog - 精炼分级日志(可将其视为 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 程序的简单记录器,带有级别处理程序。

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

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

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

  • journald-用于日志记录的 systemd Journal 本机 API 的 Go 实现。

  • 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 的简约日志库。

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

  • logrus -Go 的结构化记录器。

  • logrusiowriter——io.Writer
    使用logrus logger的实现

  • logrusly - logrus插件用于将错误发送到Loggly

  • logur - 一个有主见的记录器接口和日志记录最佳实践的集合,带有知名库(logrusgo-kit logzapzerolog等)的适配器和集成。

  • 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 的常用格式化程序和帮助程序,可帮助您构建自己的格式化程序。

  • slog-multi -slog.Handler 链(管道、扇出……)。

  • slogor - 一款丰富多彩的 slog 处理程序。

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

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

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

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

  • tail -Go 软件包致力于模拟 BSD tail 程序的功能。

  • tint——写入有色日志的 slog.Handler。

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

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

  • xylog - 分级和结构化日志记录、动态字段、高性能、区域管理、简单配置和可读语法。

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

  • zap-使用 Go 进行快速、结构化、分级的日志记录。

  • zax-将 Context 与 Zap 记录器集成,从而为 Go 日志记录提供更大的灵活性。

  • zerolog-零分配 JSON 记录器。

  • zkits-logger - 强大的零依赖 JSON 记录器。

  • zl - 高开发者体验,基于 zap 的记录器。它提供丰富的功能,但易于配置。

⬆ 返回顶部

机器学习

机器学习库。

  • 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 语言中的模式识别包。

  • gobrain-用 go 编写的神经网络。

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

  • goga -Go 的遗传算法库。

  • GoLearn -Go 的通用机器学习库。

  • golinear -Go 的 liblinear 绑定。

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

  • goml -Go 中的在线机器学习。

  • GoMLX -Go 的加速机器学习框架。

  • gonet-围棋神经网络。

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

  • goRecommend-用 Go 编写的推荐算法库。

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

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

  • goscore-用于 PMML 的 Go 评分 API。

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

  • hugot-带有 onnxruntime 的 golang Huggingface 变压器管道。

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

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

  • neat-用于增强拓扑神经进化 (NEAT) 的即插即用、并行 Go 框架。

  • neuro-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-基于 Redis 构建的简单、可靠、高效的 Go 分布式任务队列。

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

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

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

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

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

  • Confluent Kafka Golang 客户端- confluent-kafka-go 是 Confluent 针对 Apache Kafka 和 Confluent 平台的 Golang 客户端。

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

  • drone-line -使用二进制、docker 或 Drone CI发送Line通知。

  • emitter-使用 Go 方式发出事件,具有通配符,谓词,取消可能性和许多其他优点。

  • 事件——模式观察者的实现。

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

  • gaurun-client-用 Go 编写的 Gaurun 客户端。

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

  • go-eventbus -Go 的简单事件总线包。

  • Go-MediatR - 受 csharp MediatR 库启发,用于在事件驱动架构中处理中介模式和简化的 CQRS 模式的库。

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

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

  • go-nsq -NSQ 的官方 Go 软件包。

  • go-res-使用 NATS 和 Resgate 构建 REST / 实时服务的软件包,其中客户端可以无缝同步。

  • go-socket.io-用于 golang 的 socket.io 库,一个实时应用程序框架。

  • go-vitotrol- Viessmann Vitotrol Web 服务的客户端库。

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

  • golongpoll -HTTP longpoll 服务器库,使 Web 发布-订阅变得简单。

  • gopush-cluster -gopush-cluster 是一个 go push 服务器集群。

  • gorush - 使用APNs2和 google GCM 的推送通知服务器

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

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

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

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

  • hypermatch - 一个非常快速且高效的 Go 库,用于将事件与大量规则进行匹配

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

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

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

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

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

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

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

  • nsq-event-bus - NSQ 主题和通道周围的一个小包装器。

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

  • pubsub-适用于 go 的简单 pubsub 包。

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

  • rabbitroutine - 处理 RabbitMQ 自动重新连接和发布重试的轻量级库。该库考虑到重新连接后需要在 RabbitMQ 中重新声明实体。

  • 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、saga。可以使用传统的发布/订阅实现,如 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-一个简单轻便的阅读器,可以将类似 relate-db 的 excel 读取为表格。

  • goxlsxwriter-用于 libxlsxwriter 的 Golang 绑定,用于编写 XLSX(Microsoft Excel)文件。

  • xlsx-用于简化在 Go 程序中读取最新版本的 Microsoft Excel 使用的 XML 格式的库。

  • xlsx-在 Go 程序中读取 / 更新现有 Microsoft Excel 文件的快速安全的方法。

微软 Word

用于处理 Microsoft Word 的库。

  • godocx-用于读取和写入 Microsoft Word(Docx)文件的库。

⬆ 返回顶部

各种各样的

依赖注入

用于依赖注入的库。

  • alice-适用于 Golang 的附加依赖项注入容器。

  • autowire - 使用泛型和反射进行依赖注入。

  • boot-go - 为 Go 开发人员提供使用反射进行依赖注入的基于组件的开发。

  • componego - 一个基于组件的依赖注入框架,允许动态依赖替换而无需在测试中重复代码。

  • cosban/di - 基于代码生成的依赖注入连接工具。

  • di - 用于 Go 编程语言的依赖注入容器。

  • dig -Go 的基于反射的依赖注入工具包。

  • dingo-基于 Guice 的 Go 依赖注入工具包。

  • do - 基于泛型的依赖注入框架。

  • fx - 一个基于依赖注入的 Go 应用程序框架(建立在 dig 之上)。

  • gocontainer-简单的依赖注入容器。

  • goioc/di——受 Spring 启发的依赖注入容器。

  • GoLobby/Container - GoLobby Container 是适用于 Go 编程语言的轻量级但功能强大的 IoC 依赖注入容器。

  • gontainer -Go 项目的依赖注入服务容器。

  • gontainer/gontainer - 基于 YAML 的 GO 依赖注入容器。它支持依赖项的范围和循环依赖项的自动检测。Gontainer 是并发安全的。

  • google/wire -Go 中的自动初始化。

  • HnH/di - 专注于干净的 API 和灵活性的 DI 容器库。

  • kinit - 具有全局模式、级联初始化和恐慌安全完成的可定制依赖注入容器。

  • kod -Go 的基于泛型的依赖注入框架。

  • 链接器- 一个基于反射的依赖注入和控制反转库,具有组件生命周期支持。

  • nject - 用于库、测试、http 端点和服务启动的类型安全、反射框架。

  • ore - 轻量级、通用且简单的依赖注入(DI)容器。

  • wire-针对 Golang 的严格运行时依赖注入。

⬆ 返回顶部

项目布局

用于构建项目的非官方模式集。

  • ardanlabs/service——用于构建生产级可扩展 Web 服务应用程序的入门套件

  • cookiecutter-golang - 一个 Go 应用程序样板模板,用于遵循生产最佳实践快速启动项目。

  • go-blueprint-允许用户使用流行的框架快速启动 Go 项目。

  • go-module-用 Go 编写的典型模块的模板。

  • go-sample-带有真实代码的 Go 应用程序项目的示例布局。

  • go-starter - 一个有主见的、可用于生产的 RESTful JSON 后端模板,与 VSCode DevContainers 高度集成。

  • go-todo-backend -Go Todo Backend 示例,使用模块化项目布局实现产品微服务。

  • gobase- Golang 应用程序的简单框架,具有实际 Golang 应用程序的基本设置。

  • golang-standards/project-layout - Go 生态系统中常见的历史和新兴项目布局模式集。注意:尽管组织名称不同,但它们并不代表官方的 golang 标准,请参阅此问题以获取更多信息。尽管如此,有些人可能会发现布局很有用。

  • golang-templates/seed -Go 应用程序 GitHub 存储库模板。

  • goxygen-在几秒钟内使用 Go 和 Angular、React 或 Vue 生成一个现代 Web 项目。

  • insidieux/inizio-带有插件的 Golang 项目布局生成器。

  • modern-go-application -Go 应用程序样板和应用现代实践的示例。

  • nunu -Nunu 是用于构建 Go 应用程序的脚手架工具。

  • pagoda-使用 Go 语言构建的快速、简便的全栈 Web 开发入门套件。

  • scaffold -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-根据威尔逊评分方程计算平均分数和评级。

  • banner-在您的 Go 应用程序中添加漂亮的横幅。

  • base64Captcha - Base64captch 支持数字、数值、字母、算术、音频和数字字母验证码。

  • basexx - 在各种数字基数中转换为数字字符串、从数字字符串转换以及在数字字符串之间进行转换。

  • 电池- 跨平台、规范化的电池信息库。

  • bitio-高度优化的 Go 位级读取器和写入器。

  • browscap_go-浏览器功能项目的 GoLang 库

  • captcha -captcha 软件包提供了一个易于使用、不受束缚的验证码生成 API。

  • common——服务器框架的库。

  • conv-包 conv 提供跨 Go 类型的快速直观的转换。

  • datacounter-针对读者 / 作者 / http.ResponseWriter 的计数器。

  • faker-虚假数据生成器。

  • faker-用于 Go 的随机虚假数据和结构生成器。

  • ffmt - 美化人类的数据显示。

  • gatus-自动化服务健康仪表板。

  • go-commandbus-用于 Go 的轻微且可插入的命令总线。

  • go-commons-pool -Golang 的通用对象池。

  • go-openapi-用于解析和利用开放 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 - 提供 CLI、包和 Web,用于从 Markdown 或以编程方式创建树输出和目录。

  • 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 服务。

  • persian -go 中波斯语的一些实用程序。

  • sandid - 地球上的每一粒沙子都有自己的 ID。

  • shellwords - 一个 Golang 库,用于根据 UNIX Bourne shell 的单词解析规则来操作字符串。

  • shortid - 分布式生成超短、唯一、非连续、URL 友好的 ID。

  • screamrrr-通知库,可轻松访问各种消息服务,例如 slack、mattermost、gotify 和 smtp 等。

  • sitemap-format - 一个简单的站点地图生成器,带有一些语法糖。

  • stateless - 用于创建状态机的流畅库。

  • stats - 监视 Go MemStats + 系统统计数据(例如内存、交换和 CPU),并通过 UDP 发送到您想要的任何位置进行记录等...

  • turtle -Go 的表情符号。

  • url-shortener - 一种现代、强大且健壮的 URL 缩短器微服务,支持 mysql。

  • VarHandler - 生成样板 http 输入和输出处理。

  • varint - 比标准库中提供的编码器/解码器更快的变长整数编码器/解码器。

  • xdg-用 Go 实现的 FreeDesktop.org(xdg)规范。

  • xkg —X 键盘抓取器。

  • xz-用于读取和写入 xz 压缩文件的纯 golang 包。

⬆ 返回顶部

自然语言处理

用于处理人类语言的库。

另请参阅文本处理文本分析

语言检测

  • detectlanguage-语言检测 API Go 客户端。支持批量请求、短语或单词语言检测。

  • getlang-快速自然语言检测包。

  • guesslanguage - 用于确定 Unicode 文本的自然语言的函数。

  • lingua-go - 一个准确的自然语言检测库,适用于长文本和短文本。支持在混合语言文本中检测多种语言。

  • whatlanggo -Go 的自然语言检测包。支持 84 种语言和 24 种脚本(书写系统,例如拉丁文、西里尔文等)。

形态分析仪

  • go-stem-波特词干算法的实现。

  • go2vec -word2vec 嵌入的阅读器和实用函数。

  • golibstemmer-包括 porter 2 在内的 snowball libstemmer 库的绑定。

  • gosentiwordnet-使用 Go 中的 sentiwordnet 词典的情感分析器。

  • govader - VADER 情感分析的 Go 实现

  • govader-backend - GoVader的微服务实现

  • kagome-用纯 Go 编写的 JP 形态分析仪。

  • libtextcat -libtextcat C 库的 Cgo 绑定。保证与 2.2 版本兼容。

  • nlp - 从字符串中提取值并用 nlp 填充您的结构。

  • nlp-支持 LSA(潜在语义分析)的 Go 自然语言处理库。

  • paicehusk -Paice /Husk 词干提取算法的 Golang 实现。

  • porter——这是 Martin Porter 用 C 语言实现的 Porter 词干提取算法的一个相当简单的移植。

  • porter2 - 非常快的 Porter 2 词干分析器。

  • RAKE.go-快速自动关键字提取算法 (RAKE) 的 Go 端口。

  • snowball -Go 的 Snowball 词干提取器端口 (cgo 包装器)。提供Snowball 原生的词干提取功能

  • spaGO -Go 中独立的机器学习和自然语言处理库。

  • 拼写纠正器- 西班牙语的拼写纠正器或创建您自己的拼写纠正器。

击落器

  • go-slugify-通过多种语言支持制作漂亮的 slug。

  • slug - URL 友好的 slugify,支持多种语言。

  • Slugify-处理字符串的 Go slugify 应用程序。

标记器

  • gojieba-这是jieba的 Go 实现,它是一种中文分词算法。

  • gotokenizer - 基于 Golang 的字典和 Bigram 语言模型的标记器。 (现在仅支持中文分词)

  • gse-高效的文本分割;支持英语、中文、日语等。

  • MMSEGO – 这是MMSEG的 GO 实现,是一种中文分词算法。

  • prose - 支持标记化、词性标记、命名实体提取等的文本处理库。仅限英文。

  • 段- 用于执行Unicode 标准附件#29中描述的 Unicode 文本分割的 Go 库

  • 句子- 句子标记器:将文本转换为句子列表。

  • shamoji -shamoji 是用 Go 编写的单词过滤包。

  • Stemmer -Go 编程语言的 Stemmer 包。包括英语和德语词干提取器。

  • textcat-用于基于 n-gram 的文本分类的 Go 包,支持 utf-8 和原始文本。

翻译

  • ctxi18n - 上下文感知 i18n,具有简短、简洁的 API、复数、插值和fs.FS
    支持。YAML 语言环境定义基于Rails i18n

  • go-i18n-用于处理本地化文本的软件包和附带工具。

  • go-mystem - CGo 与 Yandex.Mystem 绑定 - 俄语形态分析仪。

  • go-pinyin - CN Hanzi 到 Hanyu Pinyin 转换器。

  • go-words -Golang 项目的单词表和文本资源库。

  • gotext-适用于 Go 的 GNU gettext 实用程序。

  • 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)。

  • cidranger-用于 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 标签的编组和解组。

  • event-用 Golang 编写的简单 I / O 事件通知库。

  • fasthttp-软件包 fasthttp 是 Go 的快速 HTTP 实现,比 net/http 快 10 倍。

  • fortio - 负载测试库和命令行工具、高级回显服务器和 Web UI。允许指定一组每秒查询负载并记录延迟直方图和其他有用的统计数据并绘制图表。Tcp、Http、gRPC。

  • ftp — 软件包 ftp 实现了RFC 959中描述的 FTP 客户端

  • ftpserverlib - 功能齐全的 FTP 服务器库。

  • fullproxy - 一个功能齐全的可编写脚本和守护进程可配置的代理和枢转工具包,带有 SOCKS5、HTTP、原始端口和反向代理协议。

  • fwdctl - 一个简单直观的 CLI,用于管理 Linux 服务器中的 IPTables 转发。

  • gaio-在 proactor 模式下为 Golang 提供高性能异步 io 网络。

  • gev -gev 是一个基于 Reactor 模式的轻量级、快速、非阻塞 TCP 网络库。

  • gldap - gldap 提供一个 ldap 服务器实现并且您为其 ldap 操作提供处理程序。

  • gmqtt -Gmqtt 是一个灵活、高性能的 MQTT 代理库,完全实现了 MQTT 协议 V3.1.1。

  • gnet -gnet
    是一个用纯 Go 编写的高性能、轻量级、非阻塞、事件驱动的网络框架。

  • gnet -gnet
    是一个高性能网络框架,特别适用于游戏服务器。

  • gNxI - 使用 gNMI 和 gNOI 协议的网络管理工具集合。

  • go-getter -Go 库,用于使用 URL 从各种来源下载文件或目录。

  • go-multiproxy - 通过代理池发出 HTTP 请求的库,提供容错、负载平衡、自动重试、cookie 管理等功能,通过 http.Get/Post 替换或 http.Client RoundTripper 插件

  • go-powerdns -Golang 的 PowerDNS API 绑定。

  • go-sse -Go 客户端和服务器实现 HTML 服务器发送事件。

  • go-stun -STUN 客户端的 Go 实现(RFC 3489 和 RFC 5389)。

  • gobgp-使用 Go 编程语言实现的 BGP。

  • 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 Client 提供了一个 MQTT 客户端库,用于通过 TCP、TLS 或 WebSockets 连接到 MQTT 代理。

  • natiu-mqtt - 一种极其简单、不分配、低级的 MQTT 实现,非常适合嵌入式系统。

  • nbio-纯 Go 1000k+ 连接解决方案,支持 tls/http1.x/websocket 并基本兼容 net/http,具有高性能、低内存成本、非阻塞、事件驱动、易于使用。

  • net-该存储库包含补充的 Go 网络库。

  • netpoll - 由字节跳动开发的专注于 RPC 场景的高性能非阻塞 I/O 网络框架。

  • NFF-Go - 用于快速开发云和裸机(以前称为 YANFF)高性能网络功能的框架。

  • packet - 通过 TCP 和 UDP 发送数据包。如果需要,它可以缓冲消息和热插拔连接。

  • peerdiscovery-使用 UDP 多播进行跨平台本地对等发现的纯 Go 库。

  • portproxy - 简单的 TCP 代理,为不支持 CORS 的 API 添加 CORS 支持。

  • psql-wire - PostgreSQL 服务器线路协议。构建您自己的服务器并开始提供连接服务。

  • publicip-包 publicip 返回您面向公众的 IPv4 地址(互联网出口)。

  • quic-go-纯 Go 中 QUIC 协议的实现。

  • raw-软件包 raw 支持在网络接口的设备驱动程序级别读取和写入数据。

  • sdns - 具有 DNSSEC 支持的高性能递归 DNS 解析器服务器,专注于保护隐私。

  • sftp - 软件包 sftp 实现了 SSH 文件传输协议,如https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt中所述。

  • ssh-用于构建 SSH 服务器的高级 API(包装 crypto/ssh)。

  • sslb——这是一个超级简单的负载均衡器,只是一个实现某种性能的小项目。

  • stun -RFC 5389 STUN 协议的 Go 实现。

  • tcp_server-用于更快地构建 tcp 服务器的 Go 库。

  • tcpack -tcpack 是一种基于 TCP 的应用协议,用于在 go 程序中打包和解包字节流。

  • tspool -TCP 库使用工作池来提高性能并保护您的服务器。

  • tun2socks-由gVisor TCP / IP 堆栈提供支持的 tun2socks 的纯 go 实现。

  • utp-转到 uTP 微传输协议实现。

  • vssh-用于通过 SSH 协议构建网络和服务器自动化的 Go 库。

  • water - 简单的 TUN/TAP 库。

  • webhooked - 一个功能强大的 webhook 接收器:处理、保护、格式化和存储 Webhook 有效负载从未如此简单。

  • webrtc -WebRTC API 的纯 Go 实现。

  • winrm-转到 WinRM 客户端在 Windows 机器上远程执行命令。

  • xtcp-具有同时全双工通信,正常关机和自定义协议的 TCP 服务器框架。

⬆ 返回顶部

HTTP 客户端

用于发出 HTTP 请求的库。

  • fast-shot-使用 Go 最快、最简单的 HTTP 客户端,快速精确地击中您的 API 目标。

  • 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 - 一个功能强大、轻量级、简单的 Http 客户端,受 Web Fetch API 启发。

  • grequests - 伟大而著名的 Requests 库的 Go“克隆”。

  • heimdall - 具有重试和 hystrix 功能的增强型 http 客户端。

  • httpretry-使用重试功能丰富默认的 go HTTP 客户端。

  • pester-使用重试,退避和并发进行 HTTP 客户端调用。

  • req-带有 Black Magic 的简单 Go HTTP 客户端(更少的代码和更高的效率)。

  • request - golang 的 HTTP 客户端。如果您有使用 axios 或请求的经验,您会喜欢它的。没有第三个依赖项。

  • 请求- 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-glmatrix- glMatrix库的 Go 端口

  • goxjs/gl -Go 跨平台 OpenGL 绑定(OS X、Linux、Windows、浏览器、iOS、Android)。

  • goxjs/glfw - 用于创建 OpenGL 上下文和接收事件的跨平台 glfw 库。

  • mathgl-纯 Go 数学包,专门用于 3D 数学,受到 GLM 的启发。

⬆ 返回顶部

对象关系映射

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

  • bob -Go 的 SQL 查询生成器和 ORM/Factory 生成器。SQLBoiler 的后继者。

  • bun -SQL-first Golang ORM。go-pg 的后继者。

  • cacheme-基于模式的、类型化的 Redis 缓存 / 记忆框架,适用于 Go。

  • CQL - 建立在 GORM 之上,添加基于自动生成的代码的编译时验证查询。

  • ent -Go 的实体框架。简单但功能强大的 ORM,用于建模和查询数据。

  • go-dbw-封装数据库操作的简单包。

  • 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 数据库访问。

  • 改革- 基于非空接口和代码生成的更好的 Go ORM。

  • rel -Golang 的现代数据库访问层 - 可测试,可扩展并精心打造为干净优雅的 API。

  • SQLBoiler - ORM 生成器。生成适合您的数据库模式的功能强大且速度超快的 ORM。

  • upper.io/db - 通过使用包装成熟数据库驱动程序的适配器与不同数据源交互的单一接口。

  • XORM-简单而强大的 Go 版 ORM。(支持:MySQL、MyMysql、PostgreSQL、Tidb、SQLite3、MsSql 和 Oracle)。

  • Zoom - 基于 Redis 构建的超快数据存储和查询引擎。

⬆ 返回顶部

包管理

依赖项和包管理的官方工具

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

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

  • dep -Go 依赖工具。

  • vgo-版本化的 Go。

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

  • glide - 轻松管理您的 golang 供应商和供应商软件包。受到 Maven、Bundler 和 Pip 等工具的启发。

  • godep -go 的依赖工具,godep 通过修复依赖关系来帮助可重复地构建软件包。

  • gom -Go 管理器 -Go 捆绑包。

  • goop-受 Bundler 启发的 Go(golang)简单依赖管理器。

  • gop-使用 GOPATH 构建和管理您的 Go 应用程序。

  • gopm -Go 包管理器。

  • govendor -Go 软件包管理器。与标准供应商文件一起使用的 Go 供应商工具。

  • gpm -Go 的 Barebones 依赖管理器。

  • gup-更新通过“go install”安装的二进制文件。

  • johnny-deps - 使用 Git 的最小依赖版本。

  • modgv-将“go mod graph”输出转换为 Graphviz 的 DOT 语言。

  • mvn-golang-插件,提供在 Maven 项目基础架构中自动加载 Golang SDK、依赖管理和启动构建环境的方法。

  • syft-一个 CLI 工具和 Go 库,用于从容器映像和文件系统生成软件物料清单 (SBOM)。

  • VenGO-创建和管理可导出的隔离的 go 虚拟环境。

⬆ 返回顶部

表现

  • go-instrument-自动将跨度添加到所有方法和功能。

  • jaeger - 一个分布式跟踪系统。

  • mm-go-适用于 golang 的通用手动内存管理。

  • pixie-无法通过 eBPF 对 Golang 应用程序进行仪器跟踪。

  • profile-为 Go 提供简单的分析支持包。

  • statsviz-实时可视化您的 Go 应用程序运行时统计信息。

  • tracer - 简单、轻量级的追踪。

⬆ 返回顶部

查询语言

  • api-fu - 全面的 GraphQL 实现。

  • dasel - 使用命令行中的选择器查询和更新数据结构。与 jq/yq 类似,但支持 JSON、YAML、TOML 和 XML,且无运行时依赖性。

  • gojsonq-一个用于查询 JSON 数据的简单 Go 包。

  • goven - 适用于任何数据库模式的嵌入式查询语言。

  • gqlgen-生成基于 graphql 服务器库。

  • grapher - 一个利用 Go 泛型和额外实用程序和功能的 GraphQL 字段构建器。

  • graphql -graphql 解析器 + 实用程序。

  • graphql - 注重易用性的 GraphQL 服务器。

  • graphql-go -Go 的 GraphQL 实现。

  • gws -Apollos 的“GraphQL over Websocket”客户端和服务器实现。

  • jsonpath - 基于 JSONPath 语法检索 JSON 部分的查询库。

  • jsonql -Golang 中的 JSON 查询表达式库。

  • jsonslice-具有高级过滤器的 Jsonpath 查询。

  • mql - 模型查询语言 (mql) 是一种用于数据库模型的查询语言。

  • rql -REST API 的资源查询语言。

  • rqp - REST API 的查询解析器。查询中直接支持过滤、验证等AND
    操作。OR

  • straf-轻松将 Golang 结构转换为 GraphQL 对象。

⬆ 返回顶部

反射

  • copy-用于快速复制不同类型结构的包。

  • Deepcopier -Go 的简单结构复制。

  • go-deepcopy-快速深度复制库。

  • goenum - 基于泛型和反射的通用枚举结构,允许您快速定义枚举并使用一组有用的默认方法。

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

  • gpath-使用反射中的 Go 表达式简化访问结构字段的库。

  • objwalker-通过反射来行走物体。

  • reflectutils - 用于反射的助手:结构标签解析;递归遍历;从字符串填充值。

⬆ 返回顶部

资源嵌入

  • debme—embed.FS
    从现有子目录创建embed.FS

  • esc-将文件嵌入到 Go 程序中并为它们提供 http.FileSystem 接口。

  • fileb0x-简单的工具,用于嵌入文件,重点是“定制”和易于使用。

  • go-resources-使用 Go 嵌入的非花哨资源。

  • go.rice -go.rice 是一个 Go 包,可以非常轻松地使用 HTML、JS、CSS、图像和模板等资源。

  • mule-将外部资源(如图像,电影...)嵌入到 Go 源代码中,以使用创建单个文件二进制文件go generate
    。 专注于简单性。

  • packr-将静态文件嵌入 Go 二进制文件的简单易行的方法。

  • rebedembed.FS
     - 根据 Go 1.16 的类型重新创建文件夹结构和文件

  • 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” 语言编写的图论算法。

  • go-hep-一组用于轻松执行高能物理分析的库和工具。

  • godesim - 具有简单 API 的基于事件的模拟的扩展/多变量 ODE 求解器框架。

  • goent-熵测量的 GO 实现。

  • gograph-提供数学图论和算法的 golang 通用图库。

  • gohistogram-数据流的近似直方图。

  • gonum -Gonum 是 Go 编程语言的一组数字库。它包含矩阵、统计、优化等库。

  • gonum/plot -gonum/plot 提供了在 Go 中构建和绘制图表的 API。

  • goraph -Pure Go 图论库(数据结构,算法可视化)。

  • gosl-用于线性代数、FFT、几何、NURBS、数值方法、概率、优化、微分方程等的 Go 科学库。

  • GoStats -GoStats 是一个开源 GoLang 数学统计库,主要用于机器学习领域,它涵盖了大多数统计测量功能。

  • graph - 基本图形算法库。

  • jsonl-graph - 使用 graphviz 支持来操作 JSONL 图的工具。

  • ode - 支持扩展状态和基于通道的迭代停止条件的常微分方程 (ODE) 求解器。

  • orb - 具有剪辑、GeoJSON 和 Mapbox 矢量瓦片支持的 2D 几何类型。

  • pagerank-在 Go 中实现的加权 PageRank 算法。

  • piecewiselinear - 微型线性插值库。

  • PiHex——十六进制数 Pi 的“Bailey-Borwein-Plouffe”算法的实现。

  • Poly-用于工程生物的 Go 包。

  • rootfinding - 用于寻找二次函数根的根寻找算法库。

  • sparse - 支持科学和机器学习应用的线性代数的 Go 稀疏矩阵格式,与 gonum 矩阵库兼容。

  • stats-统计包,其中包含 Golang 标准库中缺少的常用功能。

  • streamtools-用于处理数据流的通用图形工具。

  • TextRank -Golang 中的 TextRank 实现,具有可扩展功能(摘要,加权,短语提取)和多线程(goroutine)支持。

  • topk - 基于 HeavyKeeper 算法的滑动窗口和常规 top-K 草图。

  • triangolatte - 2D 三角剖分库。允许将线和多边形(均基于点)转换为 GPU 语言。

⬆ 返回顶部

安全

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

  • acmetool - 具有自动更新功能的 ACME(Let's Encrypt)客户端工具。

  • acopw-go-适用于 Go 的小型加密安全密码生成器包。

  • acra - 网络加密代理,保护基于数据库的应用程序免受数据泄露:强选择性加密、SQL 注入预防、入侵检测系统。

  • age - 一个简单、现代且安全的加密工具(和 Go 库),具有小型显式密钥、无配置选项和 UNIX 风格的可组合性。

  • argon2-hashing - Go 的 argon2 包的轻量级包装器,与 Go 的标准库 Bcrypt 和 simple-scrypt 包紧密相似。

  • argon2pw-使用恒定时间密码比较的 Argon2 密码哈希生成。

  • autocert-自动提供 Let's Encrypt 证书并启动 TLS 服务器。

  • BadActor - 以 fail2ban 精神构建的内存中、应用程序驱动的监狱程序。

  • beelzebub - 一个安全的低代码蜜罐框架,利用 AI 实现系统虚拟化。

  • booster - 具有全盘加密支持的快速 initramfs 生成器。

  • Cameradar - 用于远程破解监控摄像头的 RTSP 流的工具和库。

  • 证书- 用于生成 tls 证书的专用工具。

  • CertMagic - 成熟、强大且功能强大的 ACME 客户端集成,用于完全管理的 TLS 证书颁发和更新。

  • Coraza - 企业级、modsecurity 和 OWASP CRS 兼容的 WAF 库。

  • dongle-一个简单、语义且对开发人员友好的 golang 包,用于编码和解码以及加密和解密。

  • encid - 对加密的整数 ID 进行编码和解码。

  • firewalld-rest - 一个用于动态更新 Linux 服务器上的 Firewalld 规则的 rest 应用程序。

  • go-generate-password-可以在 CLI 上或作为库使用的密码生成器。

  • go-htpasswd -Go 的 Apache htpasswd 解析器。

  • go-password-validator-基于原始加密熵值的密码验证器。

  • go-peer-用于创建安全和匿名的分散系统的软件库。

  • go-yara -YARA的 Go Bindings ,“恶意软件研究人员(以及其他所有人)的模式匹配瑞士刀”。

  • goArgonPass -Argon2 密码哈希和验证旨在与现有的 Python 和 PHP 实现兼容。

  • goSecretBoxPassword-一个可能偏执的包,用于安全地散列和加密密码。

  • Interpol - 用于模糊测试和渗透测试的基于规则的数据生成器。

  • lego -Pure Go ACME 客户端库和 CLI 工具(用于 Let's Encrypt)。

  • luks.go-纯 Golang 库来管理 LUKS 分区。

  • memguard-用于处理内存中敏感值的纯 Go 库。

  • multikey - 基于 Shamir 的秘密共享算法的 n-out-of-N 密钥加密/解密框架。

  • nacl -NaCL API 集的 Go 实现。

  • optimus-go-使用 Knuth 算法进行 ID 散列和混淆。

  • passlib-面向未来的密码散列库。

  • passwap - 提供不同密码哈希算法之间的统一实现

  • secret - 防止你的秘密泄露到日志、std* 等中。

  • 安全-Go 的 HTTP 中间件,可促进一些快速的安全胜利。

  • secureio - 基于 XChaCha20-poly1305、ECDH 和 ED25519 的密钥交换+认证+加密包装器和多路复用器io.ReadWriteCloser

  • 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-来自 go 的 Cap'n Proto 模式生成器。

  • bel-从 Go 结构 / 接口生成 TypeScript 接口。对 JSON RPC 有用。

  • binstruct-用于将数据映射到结构的 Golang 二进制解码器。

  • cbor-小型,安全且简单的CBOR编码和解码库。

  • colfer - Colfer 二进制格式的代码生成。

  • csvutil-高性能、惯用的 CSV 记录编码和解码为本机 Go 结构。

  • elastic - 无论如何,在运行时转换不同类型之间的切片,映射或任何其他未知值。

  • fixedwidth - 固定宽度文本格式(支持 UTF-8)。

  • fwencoder-适用于 Go 的固定宽度文件解析器(编码和解码库)。

  • go-capnproto -Cap'n Proto 库和 go 解析器。

  • go-codec-用于 msgpack、cbor 和 json 的高性能、功能丰富、惯用的编码、解码和 rpc 库,具有基于运行时的 OR 代码生成支持。

  • go-csvlib-高级且功能丰富的 CSV 序列化 / 反序列化库。

  • gogoprotobuf-用于 Gadgets 的协议缓冲区。

  • goprotobuf-以库和协议编译器插件的形式为 Google 的协议缓冲区提供 Go 支持。

  • gotiny-高效的 Go 序列化库,gotiny 几乎与生成代码的序列化库一样快。

  • jsoniter-高性能、100%兼容的“encoding/json”替代品。

  • mapstructure-用于将通用映射值解码为本机 Go 结构的 Go 库。

  • php_session_decoder-用于处理 PHP 会话格式和 PHP Serialize/Unserialize 函数的 GoLang 库。

  • pletter - 为消息代理包装原始消息的标准方法。

  • structomap-从静态结构轻松动态地生成地图的库。

  • unitpacking-将单位向量打包成尽可能少的字节的库。

⬆ 返回顶部

服务器应用程序

  • algernon -HTTP/2 Web 服务器,内置对 Lua、Markdown、GCSS 和 Amber 的支持。

  • Caddy - Caddy 是一种替代的 HTTP/2 网络服务器,易于配置和使用。

  • consul -Consul 是一个用于服务发现,监控和配置的工具。

  • cortex-tenant -Prometheus 远程写入代理,根据指标标签添加 Cortex 租户 ID 标头。

  • devd-面向开发人员的本地网络服务器。

  • 发现- 用于弹性中间层负载平衡和故障转移的注册表。

  • dudeldu-一个简单的SHOUTcast服务器。

  • dummy-使用一个命令根据 API 契约运行模拟服务器。

  • Easegress - 具有可观察性和可扩展性的云原生高可用性/性能流量编排系统。

  • etcd - 用于共享配置和服务发现的高可用性键值存储。

  • Euterpe - 自托管音乐流媒体服务器,具有内置 Web UI 和 REST API。

  • Fider - Fider 是一个收集和组织客户反馈的开放平台。

  • Flagr - Flagr 是一项开源功能标记和 A/B 测试服务。

  • flipt - 用 Go 和 Vue.js 编写的自包含功能标志解决方案

  • go-feature-flag-一个简单,完整,轻量级的自托管功能标志解决方案,100%开源。

  • go-proxy-cache-具有缓存的简单反向代理,用 Go 编写,使用 Redis。

  • gondola - 基于 YAML 的 golang 反向代理。

  • jackal-用 Go 编写的 XMPP 服务器。

  • lets-proxy2 - 通过 lets-encrypt 动态处理 https 并颁发证书的反向代理。

  • minio -Minio 是一个分布式对象存储服务器。

  • Moxy - Moxy 是一个简单的模拟器和代理应用程序服务器,您可以创建模拟端点以及代理请求,以防端点不存在模拟。

  • nginx-prometheus -Nginx 日志解析器和 Prometheus 导出器。

  • nsq-一个实时分布式消息平台。

  • pocketbase -PocketBase 是 1 个文件中的实时后端,由带有实时订阅、内置身份验证管理等功能的嵌入式数据库(SQLite)组成。

  • protoxy - 将 JSON 请求主体转换为协议缓冲区的代理服务器。

  • psql-streamer - 将数据库事件从 PostgreSQL 流式传输到 Kafka。

  • riemann-relay - 中继以平衡 Riemann 事件的负载和/或将其转换为 Carbon。

  • RoadRunner - 高性能 PHP 应用服务器、负载均衡器和进程管理器。

  • SFTPGo - 功能齐全且高度可配置的 SFTP 服务器,具有可选的 FTP/S 和 WebDAV 支持。它可以为本地文件系统和云存储后端(如 S3 和 Google Cloud Storage)提供服务。

  • simple-jwt-provider - 简单轻量级的提供程序,展示 JWT,支持登录、密码重置(通过邮件)和用户管理。

  • Trickster -HTTP 反向代理缓存和时间序列加速器。

  • 愿望——制作 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 倍。

  • gomponents - 纯 Go 中的 HTML 5 组件,看起来像这样:func(name string) g.Node { return Div(Class("headline"), g.Textf("Hi %v!", name)) }

  • gospin - 文章旋转和 spintax/spinning 语法引擎,适用于 A/B、测试文本/文章片段并创建更自然的对话。

  • got - 受 Hero 和 Fasttemplate 启发的 Go 代码生成器。具有包含文件、自定义标签定义、注入的 Go 代码、语言翻译等。

  • goview -Goview 是一个基于 golang html /template 的轻量级,简约且惯用的模板库,用于构建 Go Web 应用程序。

  • jet -Jet 模板引擎。

  • liquid -Shopify Liquid 模板的 Go 实现。

  • maroto - maroto 创建 PDF 的方法。Maroto 的灵感来自 Bootstrap,并使用 gofpdf。快速又简单。

  • pongo2 -Go 的类似 Django 的模板引擎。

  • quicktemplate-快速、强大且易于使用的模板引擎。将模板转换为 Go 代码,然后进行编译。

  • raymond-在 Go 中完成车把的实现。

  • Razor -Golang 的 Razor 视图引擎。

  • Soy -Go 的闭包模板 (又名 Soy 模板),遵循官方规范

  • sprout -Go 模板的有用模板函数。

  • tbd - 一种使用占位符创建文本模板的非常简单的方法 - 公开额外的内置 Git repo 元数据。

  • templ - 一种具有优秀开发工具的 HTML 模板语言。

⬆ 返回顶部

测试

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

测试框架

  • apitest - 针对基于 REST 的服务或 HTTP 处理程序的简单且可扩展的行为测试库,支持模拟外部 http 调用和呈现序列图。

  • arch-go -Go 项目的架构测试工具。

  • assert-与本机 go 测试一起使用的基本断言库,带有用于自定义断言的构建块。

  • baloo - 轻松实现富有表现力且多功能的端到端 HTTP API 测试。

  • be - 极简主义的通用测试断言库。

  • biff - 分叉测试框架,兼容 BDD。

  • charlatan-用于生成虚假接口实现的测试工具。

  • commander-用于在 Windows、Linux 和 OSX 上测试 CLI 应用程序的工具。

  • cupaloy-适用于您的测试框架的简单快照测试插件。

  • dbcleanerdatabase_cleaner
     - 受Ruby启发,清理数据库以用于测试目的。

  • dft-用于测试(或更多)的轻量级、零依赖性 docker 容器。

  • dsunit - SQL,NoSQL,结构化文件的数据存储测试。

  • embedded-postgres-在 Linux、OSX 或 Windows 上本地运行真正的 Postgres 数据库,作为另一个 Go 应用程序或测试的一部分。

  • endly - 声明式端到端功能测试。

  • envite - 开发和测试环境管理框架。

  • 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 testcontainer 帮助进行 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-类似 YATSPEC 的 Go 版 BDD 测试框架。

  • gomatch-用于根据模式测试 JSON 的库。

  • gomega-类似 Rspec 的匹配器 / 断言库。

  • Gont -Go 网络测试工具包,用于使用 Linux 命名空间测试构建复杂的网络拓扑。

  • gospecify - 这提供了用于测试 Go 代码的 BDD 语法。任何使用过 rspec 等库的人都应该熟悉它。

  • gosuite-testing
    利用 Go1.7 的子测试,提供具有设置 / 拆卸功能的轻量级测试套件。

  • got-一个令人愉快的 golang 测试框架。

  • gotest.tools-一组用于增强 go 测试包并支持常见模式的包。

  • Hamcrest - 声明式 Matcher 对象的流畅框架,当应用于输入值时,会产生自描述的结果。

  • httpexpect - 简洁、声明性且易于使用的端到端 HTTP 和 REST API 测试。

  • is -Go 的专业轻量级测试迷你框架。

  • jsonassert-用于验证 JSON 有效负载是否正确序列化的包。

  • keploy-从 API 调用自动生成测试用例和数据模拟。

  • omg.testingtools——用于更改私有字段的值以进行测试的简单库。

  • restit -Go 微框架帮助编写 RESTful API 集成测试。

  • schema - 快速轻松地匹配请求和响应中使用的 JSON 模式的表达式。

  • stop-and-go - 并发测试助手。

  • testcase - 行为驱动开发的惯用测试框架。

  • testcerts - 在测试功能中动态生成自签名证书和证书颁发机构。

  • testcontainers-go - 一个 Go 包,可轻松创建和清理基于容器的依赖项,以进行自动集成/冒烟测试。简洁易用的 API 使开发人员能够以编程方式定义应作为测试的一部分运行的容器,并在测试完成后清理这些资源。

  • testfixtures - 类似 Rails 的测试工具的助手,用于测试数据库应用程序。

  • Testify - 标准 go 测试包的神圣扩展。

  • testsql-测试前从 SQL 文件生成测试数据,测试完成后清除它。

  • testza-功能齐全的测试框架,具有漂亮的彩色输出。

  • 试用- 快速、简单的可扩展断言,无需引入太多样板。

  • Tt - 简单且丰富多彩的测试工具。

  • wstest - 用于对 websocket http.Handler 进行单元测试的 Websocket 客户端。

嘲笑

  • counterfeiter-用于生成自包含模拟对象的工具。

  • genmock-使用代码生成器的 Go 模拟系统来构建接口方法的调用。

  • 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 的模拟对象。

  • mooncake - 一种为多种目的生成模拟的简单方法。

  • moq - 从任何接口生成结构的实用程序。该结构可在测试代码中用作接口的模拟。

  • timex - 本机包的测试友好替代品time

  • xgo-通用的纯函数模拟库。

模糊测试和增量调试/减少/收缩

  • go-fuzz-随机测试系统。

  • gofuzz-使用随机值填充 go 对象的库。

  • Tavor - 通用模糊测试和增量调试框架。

Selenium 和浏览器控制工具

  • cdp -Chrome 调试协议的类型安全绑定,可与实现该协议的浏览器或其他调试目标一起使用。

  • chromedp - 一种驱动/测试 Chrome、Safari、Edge、Android Webviews 和其他支持 Chrome 调试协议的浏览器的方法。

  • ggr - 一个轻量级服务器,它将 Selenium WebDriver 请求路由和代理到多个 Selenium 集线器。

  • playwright-go-使用单一 API 控制 Chromium、Firefox 和 WebKit 的浏览器自动化库。

  • rod - 一个使网络自动化和抓取变得简单的 Devtools 驱动程序。

  • selenoid-替代的Selenium集线器服务器,可在容器内启动浏览器。

注入失败

  • failpoint -Golang的故障点实现。

⬆ 返回顶部

文本处理

用于解析和处理文本的库。

另请参阅自然语言处理文本分析

格式化程序

  • 地址- 处理地址表示、验证和格式化。

  • align——对齐文本的通用应用程序。

  • 字节——格式化并解析数字字节值(10K、2M、3G 等)。

  • go-fixedwidth-固定宽度的文本格式(带反射的编码器 / 解码器)。

  • go-humanize-将时间,数字和内存大小格式化为人类可读的格式。

  • gotabulate-使用 Go 轻松漂亮地打印表格数据。

  • textwrap - 在行尾换行。textwrap
    使用 Python 实现模块。

标记语言

  • bafi - 使用模板将通用 JSON、BSON、YAML、XML 转换器转换为任意格式。

  • bbConvert - 将 bbCode 转换为 HTML,允许您添加对自定义 bbCode 标签的支持。

  • blackfriday -Go 中的 Markdown 处理器。

  • 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 形式进行丰富呈现

  • htree - 遍历、导航、过滤和以其他方式处理html.Node对象树。

  • 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-querystring-用于将结构编码为 URL 查询参数的 Go 库。

  • go-vcard-解析并格式化 vCard。

  • godump-轻松打印任何 GO 变量,这是 Go 的替代品fmt.Printf("%#v")

  • gofeed-在 Go 中解析 RSS 和 Atom 提要。

  • gographviz-解析 Graphviz DOT 语言。

  • gonameparts-将人类姓名解析为各个姓名部分。

  • ltsv-适用于 Go 的高性能LTSV(标签制表符分隔值)阅读器。

  • 规范化- 清理、规范化和比较模糊文本。

  • parseargs-go-理解引号和反斜杠的字符串参数解析器。

  • parth -URL 路径分割解析。

  • prattle - 简单有效地扫描和解析 LL(1) 语法。

  • sdp ——SDP:会话描述协议[ RFC 4566 ]。

  • sh - Shell 解析器和格式化程序。

  • tokenizer - 将任何字符串,切片或无限缓冲区解析为任何标记。

  • when - 具有可插入规则的自然 EN 和 RU 语言日期 / 时间解析器。

  • xj2go-将 xml 或 json 转换为 go struct。

正则表达式

  • genex - 计算正则表达式并将其扩展为所有匹配的字符串。

  • go-wildcard-简单轻量的通配符模式匹配。

  • goregen-从正则表达式生成随机字符串的库。

  • regroup-使用结构标签和自动解析将正则表达式命名的组匹配到 go 结构中。

  • rex - 正则表达式生成器。

卫生

  • bluemonday ——HTML 清理器。

  • gofuckyourself-基于净化功能的 Go 脏话过滤器。

刮刀

  • colly - 快速而优雅的 Gophers 抓取框架。

  • dataflowkit - Web 抓取框架,将网站转换为结构化数据。

  • go-recipe-用于从网站抓取食谱的软件包。

  • GoQuery -GoQuery 为 Go 语言带来了与 jQuery 类似的语法和一组功能。

  • pagser -Pagser 是一个简单、可扩展、可配置的解析和反序列化 html 页面以基于 goquery 和 struct 标签为 golang 爬虫构造的程序。

  • Tagify-从给定源生成一组标签。

  • walker - 无缝地从任何来源获取分页数据。包括简单且高性能的 API 抓取。

  • xurls——从文本中提取 URL。

RSS

  • podcast - 兼容 iTunes 且使用 Golang 编写的 RSS 2.0 播客生成器

公用设施/杂项

  • go-runewidth-获取字符或字符串的固定宽度的函数。

  • go-zero-width -Go 的零宽度字符检测和删除。

  • kace - 常见的大小写转换,涵盖常见的首字母缩略词。

  • petrovich - Petrovich 是一个将俄语名字转化为给定语法案例的图书馆。

  • radix - 快速字符串排序算法。

  • TySug——有关键盘布局的替代建议。

  • w2vgrep - 一种使用词嵌入来查找语义相似匹配的语义 grep 工具。例如,搜索“death”将找到“dead”、“killing”、“murder”。

⬆ 返回顶部

第三方 API

用于访问第三方 API 的库。

  • airtable-用于Airtable API的 Go 客户端库

  • amazon-product-advertising-api -Amazon 产品广告 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 聊天 API 的绑定。

  • disgo -Discord API 的 Go API 包装器。

  • dusupay-sdk-go - 非官方 Dusupay 支付网关 API 客户端(Go 版本)

  • ethrpc-以太坊 JSON RPC API 的绑定。

  • facebook-支持 Facebook Graph API 的 Go 库。

  • fasapay-sdk-go-适用于 Golang 的非官方 Fasapay 支付网关 XML API 客户端。

  • fcm -Firebase Cloud Messaging 的 Go 库。

  • gads ——Google Adwords 非官方 API。

  • gami-用于 Asterisk Manager 界面的 Go 库。

  • gcm-用于 Google Cloud Messaging 的 Go 库。

  • geo-golang-用于访问Google MapsMapQuestNominatimOpenCageBingMapboxOpenStreetMap地理编码 / 反向地理编码 API的 Go 库

  • github-用于访问 GitHub REST API v3 的 Go 库。

  • githubql-用于访问 GitHub GraphQL API v4 的 Go 库。

  • go-atlassian - 用于访问Atlassian Cloud服务的Go 库(Jira、Jira Service Management、Jira Agile、Confluence、Admin Cloud)

  • go-aws-news -Go 应用程序和库从 AWS 获取最新内容。

  • go-chronos - 用于与Chronos Job Scheduler交互的 Go 库

  • go-hacknews-用于 HackerNews API 的 Tiny Go 客户端。

  • go-here-围绕 HERE 位置 API 的 Go 客户端库。

  • go-hibp-简单的 Go 绑定到“Have I Been 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 -OpenAI ChatGPT、DALL·E、Go 的 Whisper API 库。

  • go-openproject-用于与OpenProject API交互的 Go 客户端库

  • go-postman-collection -Go 模块可与Postman Collections (与 Insomnia 兼容)配合使用

  • go-redoc-使用ReDoc为 Go 嵌入 OpenAPI / Swagger 文档用户界面

  • go-restcountries-用于REST Countries API的 Go 库

  • go-salesforce-用于与Salesforce REST API交互的 Go 客户端库。

  • go-sophos-用于Sophos UTM REST API的 Go 客户端库,具有零依赖关系。

  • go-swagger-ui -Go 库,包含预编译的Swagger UI,用于提供 swagger json。

  • 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 Sheets 之上提供常见且简单的数据库抽象。

  • gogtrends ——Google Trends 非官方 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 分析报告。

  • google-cloud -Google Cloud API Go 客户端库。

  • google-email-audit-api -Google G Suite 电子邮件审核 API的 Go 客户端库

  • google-play-scraper - 从 Google Play 商店获取数据。

  • gopaapi5-适用于亚马逊产品广告 API 5.0的 Go 客户端库

  • gopensky - OpenSKY Network live API(空域 ADS-B 和模式 S 数据)的 Go 客户端实现。

  • gosip -SharePoint 的客户端库。

  • gostorm -GoStorm 是一个 Go 库,它实现了用 Go 编写与 Storm shell 通信的 Storm spouts 和 Bolts 所需的通信协议。

  • hipchat-该项目为 Hipchat API 实现了一个 golang 客户端库。

  • hipchat (xmpp) - 一个通过 XMPP 与 HipChat 通信的 golang 包。

  • igdb-互联网游戏数据库 API的 Go 客户端

  • ip2location-io-go -IP2Location.io API IP2Location.io的 Go 包装器。

  • jokeapi-go- JokeAPI的 Go 客户端

  • lark -飞书Lark开放 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 是一个用于跟踪事件并从您的 go 应用程序向 Mixpanel 发送 Mixpanel 配置文件更新的库。

  • newsapi-go - NewsAPI的 Go 客户端

  • openaigo-适用于 Go 的 OpenAI GPT3/GPT3.5 ChatGPT API 客户端库。

  • patreon-go -Patreon API 的 Go 库。

  • paypal -PayPal 支付 API 的包装器。

  • playlyfe -Playlyfe Rest API Go SDK。

  • pushover -Pushover API 的包装器。

  • rawg-sdk-go - RAWG 视频游戏数据库API的 Go 库

  • rrdaclient-转到库以访问 statdns.com API,后者又是 RRDA API。通过 HTTP 进行 DNS 查询。

  • shopify -Go 库向 Shopify API 发出 CRUD 请求。

  • simples3-使用 REST 和 V4 签名以 Go 编写的简单而无装饰的 AWS S3 库。

  • slack -Go 中的 Slack API。

  • smite -Go 软件包包装了对 Smite 游戏 API 的访问。

  • spotify-前往库以访问 Spotify WEB API。

  • steam-前往库与 Steam 游戏服务器进行交互。

  • stripe-用于 Stripe API 的 Go 客户端。

  • swag - 无评论,简单的 go 包装器,用于创建与 swagger 2.0 兼容的 API。支持大多数路由框架,例如内置、gin、chi、mux、echo、httprouter、fasthttp 等。

  • textbelt-用于 textbelt.com txt 消息传递 API 的 Go 客户端。

  • 翻译- 转到在线翻译包。

  • Trello -Trello API 的 Go 包装器。

  • TripAdvisor -TripAdvisor API 的 Go 包装器。

  • tumblr -Tumblr v2 API 的包装器。

  • twitter-scraper - 无需身份验证和限制即可抓取 Twitter Frontend API。

  • uptimerobot -Uptime Robot v2 API 的 Go 包装器和命令行客户端。

  • 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 类似的扫描仪,但它以相反的顺序读取并返回行,从给定位置开始并向后移动。

  • blank - 验证或删除字符串中的空格和空白。

  • bleep-在 Go 中对任何一组 OS 信号执行任意数量的操作。

  • boilerr - 用于从样板模板创建项目的超快 CLI 工具。

  • changie - 自动化变更日志工具,用于准备具有大量自定义选项的版本。

  • chyle-使用具有多种配置可能性的 git 存储库的变更日志生成器。

  • circuit - 一种高效且功能齐全的 Hystrix,类似断路器模式的 Go 实现。

  • circuitbreaker -Go 中的断路器。

  • clipboard -📋Go 中的跨平台剪贴板包。

  • clockwork - 一个简单的 golang 假时钟。

  • cmd-在 osx、windows 和 linux 上执行 shell 命令的库。

  • command-具有线程安全串行和并行调度程序的 Go 命令模式。

  • config-file-validator - 用于验证配置文件的跨平台工具。

  • contextplus-包 contextplus 为上下文提供了更多易于使用的功能。

  • cookie -Cookie 结构解析和辅助包。

  • copy-pasta - 通用多工作站剪贴板,使用类似 S3 的后端进行存储。

  • 国家- 全面实施 ISO-3166-1、ISO-4217、ITU-T E.164、Unicode CLDR 和 IANA ccTLD 标准。

  • 国家- 在 Go 中与国家打交道时所需的一切。

  • create-go-app-一个强大的 CLI,通过运行一个命令即可创建一个具有后端(Golang)、前端(JavaScript、TypeScript)和部署自动化(Ansible、Docker)的新生产就绪项目。

  • cryptgo -Crytpgo 是一个基于 TUI 的应用程序,纯粹用 Go 编写,用于实时监控和观察加密货币价格!

  • ctop-用于容器指标的类似 Top 的界面(例如 htop)。

  • ctxutil——上下文实用函数集合。

  • cvt-轻松安全地将任何值转换为另一种类型。

  • dbt - 从中央可信存储库运行自我更新签名二进制文件的框架。

  • 死亡- 使用信号管理 Go 应用程序的关闭。

  • delve-转到调试器。

  • dive - 用于探索 Docker 镜像中每一层的工具。

  • dlog-编译时控制记录器,使您的版本更小,而无需删除调试调用。

  • EaseProbe - 一个简单、独立且轻量级的工具,可以执行健康/状态检查守护进程,支持 HTTP/TCP/SSH/Shell/Client/...探测,以及 Slack/Discord/Telegram/SMS...通知。

  • 均衡器-Go 的配额管理器和速率限制器集合。

  • ergo - 可以轻松管理通过不同端口运行的多个本地服务。

  • 求值器- 根据 s-expression 动态求值表达式。它简单且易于扩展。

  • Failsafe-go -Go 的容错和弹性模式。

  • filetype-通过检查魔术数字签名来推断文件类型的小包。

  • 填充器——使用“填充”标签填充结构的小实用程序。

  • 过滤器- 提供 Go 数据的过滤、清理和转换。

  • fzf-用 Go 编写的命令行模糊查找器。

  • 生成- 在指定的路径或环境变量上递归运行 go generate,并可以通过正则表达式进行过滤。

  • ghokin - 并行格式化程序,对 gherkin(cucumber、behat……)没有外部依赖。

  • git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪。

  • gitbatch-在一个地方管理你的 git 存储库。

  • gitcs -Git Commits Visualizer,CLI 工具,用于在本地机器上可视化您的 Git 提交。

  • go-actuator-适用于基于 Go 的 Web 框架的生产就绪功能。

  • go-astitodo-解析 GO 代码中的 TODO。

  • go-bind-plugin -go:generate 工具用于包装由 golang 插件导出的符号(仅限 1.8)。

  • go-bsdiff -Pure Go bsdiff 和 bspatch 库和 CLI 工具。

  • go-clip - 适用于 Mac 的简约剪贴板管理器。

  • go-convert-包 go-convert 使您能够将值转换为另一种类型。

  • go-countries-对 ISO-3166 代码进行轻量级查找。

  • go-dry -Go 的 DRY(不要重复自己)软件包。

  • go-funk-现代 Go 实用程序库,提供帮助程序(映射、查找、包含、过滤、块、反向......)。

  • go-health-健康包简化了您向服务添加健康检查的方式。

  • go-httpheader-用于将结构编码到 Header 字段的 Go 库。

  • go-lambda-cleanup-用于删除未使用或以前版本的 AWS Lambdas 的 CLI。

  • go-lock -go-lock 是一个实现无饥饿读写互斥和读写试锁的锁库。

  • go-pattern-match - 受 ts-pattern 启发的模式匹配库。

  • go-pkg-一个 Go 工具包。

  • go-problemdetails-用于处理问题详细信息的 Go 包。

  • go-qr - 原生、高质量、简约的二维码生成器。

  • 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 服务 / 应用程序的通用库。

  • gofn-使用 Go 1.18+ 的泛型编写的高性能实用程序函数。

  • gohper-各种工具/模块有助于开发。

  • golarm-通过系统事件发出火灾警报。

  • golog-简单轻量级的 CLI 工具,用于跟踪您的任务时间。

  • gopencils-小而简单的软件包,可轻松使用 REST API。

  • goplaceholder-一个用于生成占位符图像的小型 golang 库。

  • goreadability-使用 Facebook Open Graph 和 arc90 的可读性的网页摘要提取器。

  • goreleaser-尽可能快速、轻松地交付 Go 二进制文件。

  • goreporter-执行静态分析、单元测试、代码审查和生成代码质量报告的 Golang 工具。

  • goseaweedfs-具有几乎全部功能的 SeaweedFS 客户端库。

  • gostrutils-字符串操作和转换函数的集合。

  • gotenv-.env
    从 Go 中加载或加载任何环境变量io.Reader

  • goval-在 Go 中评估任意表达式。

  • graterm-提供在 Go 应用程序中执行有序(顺序 / 并发)GRAceful TERMination(又名关闭)的原语。

  • grofer-用 Golang 编写的系统和资源监控工具!

  • gubrak - 具有语法糖的 Golang 实用程序库。它类似于 lodash,但适用于 golang。

  • handy-许多实用程序和助手,如字符串处理程序/格式化程序和验证器。

  • hostctl - 一个使用简单命令管理 /etc/hosts 的 CLI 工具。

  • htcat-并行和流水线 HTTP GET 实用程序。

  • hub - 使用附加功能包装 git 命令以便从终端与 github 进行交互。

  • hystrix-go - 实现程序员定义的后备 (又称断路器) 的 Hystrix 模式。

  • immortal ——*nix 跨平台(与操作系统无关)管理器。

  • 内在的- 使用 x86 SIMD 而无需编写任何汇编代码。

  • jsend-用 Go 编写的 JSend 实现。

  • json-log-viewer - JSON 日志的交互式查看器。

  • jump - Jump 通过了解您的习惯帮助您更快地导航。

  • 只是- 只是一组用于处理通用数据结构的有用函数。

  • koazee - 受惰性求值和函数式编程启发的库,消除了处理数组的麻烦。

  • lancet - 一个全面,高效,可重复使用的 go 实用函数库。

  • lets-go -Go 模块,为 Cloud Native REST API 开发提供常用实用程序。还包含 AWS 特定的实用程序。

  • 限制器-Golang 中分布式应用程序的速率限制器,具有可配置的后端和分布式锁。

  • lo - 基于 Go 1.18+ 泛型(map、filter、contains、find......)的 Lodash 类 Go 库

  • 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 -cli 应用程序可轻松创建 ssh 隧道。

  • mongo-go-pagination -Mongodb 分页,用于官方 mongodb/mongo-go-driver 包,支持正常查询和聚合管道。

  • mssqlx - 数据库客户端库,任何主从、主主结构的代理。轻量级和自动平衡。

  • multitick-用于对齐股票行情的多路复用器。

  • myhttp-使用简单的 API 发出 HTTP GET 请求并支持超时。

  • netbug - 轻松远程分析您的服务。

  • nfdump-读取 nfdump netflow 文件。

  • nostromo-用于构建强大别名的 CLI。

  • okrun-运行错误压路机。

  • olaf-用 Go 实现的 Twitter Snowflake。

  • onecache-支持多个后端存储(Redis,Memcached,文件系统等)的缓存库。

  • panicparse - 对相似的 goroutine 进行分组并对堆栈转储进行着色。

  • pattern-match - 模式匹配库。

  • peco-简单的交互式过滤工具。

  • pgo-为 PHP 社区提供便捷的功能。

  • pm-具有 HTTP API 的进程(即 goroutine)管理器。

  • 指针-包指针包含用于简化基本类型可选字段的创建的辅助例程。

  • ptr-提供从基本类型常量简化创建指针的函数的包。

  • rclient - 可读、灵活、易于使用的 REST API 客户端。

  • 远程触摸板- 通过智能手机控制鼠标和键盘。

  • repeat-实施不同的退避策略,用于重试操作和心跳。

  • 请求- 针对人类的 HTTP 请求™。

  • 重新运行- 当源更改时重新编译并重新运行 go 应用程序。

  • rest-go-一个提供许多使用 rest api 的有用方法的软件包。

  • 重试-最先进的功能机制,重复执行操作直至成功。

  • retry -Go 的一个简单但高度可配置的重试包。

  • retry-简单易用的 Go 重试机制包。

  • retry-一个非常简单的库,以确保你的工作完成。

  • retry-go-重试机制的简单库。

  • retry-go-对于 golang 来说,重试变得简单而容易。

  • 稳健地- 有弹性地运行功能,捕获并重新启动恐慌。

  • rospo-在 Golang 中使用嵌入式 ssh 服务器的简单可靠的 ssh 隧道。

  • scan-将 golangsql.Rows
    直接扫描到结构,切片或原始类型。

  • 扫描- 将 SQL 行扫描为由泛型支持的任意类型。

  • scany-用于将数据从数据库扫描到 Go 结构等的库。

  • 服务-您需要的任何地方的静态 http 服务器。

  • set - 高性能且灵活的结构映射和松散类型转换。

  • shutdown - 用于处理应用程序关闭挂钩os.Signal

  • silk-读取silk netflow文件。

  • 切片- 用于常见 Go 切片操作的类型安全函数。

  • sliceconv - 原始类型之间的切片转换。

  • 切片机-使切片工作更容易。

  • 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 中字符串实用程序的通用架构™。

  • upterm - 开发人员通过 Web 安全共享终端/tmux 会话的工具。它非常适合远程结对编程、访问 NAT/防火墙后面的计算机、远程调试等。

  • usql - usql 是 SQL 数据库的通用命令行界面。

  • util - 有用的实用函数集合。(字符串,并发,操作......)。

  • watchhttp - 定期运行命令并将最新的 STDOUT 或其丰富的增量公开为 HTTP 端点。

  • wifiqr -Wi-Fi QR 码生成器。

  • wuzz-用于 HTTP 检查的交互式 CLI 工具。

  • xferspdy -Xferspdy 在 golang 中提供二进制差异和补丁库。

  • yogo-从命令行检查 yopmail 邮件。

⬆ 返回顶部

唯一唯一标识符

用于处理 UUID 的库。

  • fastuuid-快速生成 UUIDv4 为字符串或字节。

  • 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 生成器库,可直接在服务器代码中安全使用。






文章转载自数据库平台优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论