您的位置 首页 golang

盘点那些年让我们相爱恨晚的Go语言库

音频和音乐

用于处理音频的库。

  • flac – 支持 FLAC 流的本机 Go FLAC 编码器/解码器。
  • gaad – 本机 Go AAC 比特流解析器。
  • GoAudio – 本机 Go 音频处理库。
  • gosamplerate – 用于 go 的 libsamplerate 绑定。
  • id3v2 -Go 的 ID3 解码和编码库。
  • mal Go – 迷你音频库。
  • m INI mp3 – 轻量级 MP3 解码器库。
  • music-theory -Go 中的音乐理论模型。
  • Oto – 在多个平台上播放声音的低级库。
  • PortAudio – PortAudio 音频 I/O 库的 Go 绑定。

身份验证和 OAuth

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

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

回到顶部

区块链

构建区块链的工具。

  • cosmos-sdk – 在 Cosmos 生态系统中构建公共区块链的框架。
  • go-ethereum – 以太坊协议的官方 Go 实现。
  • gossamer – Polkadot 主机的 Go 实现。
  • solana-go – 与 Solana JSON RPC 和 WebSocket 接口交互的 Go 库。
  • endermint – 高性能中间件,用于使用 Tendermint 共识和区块链协议将用任何 编程语言 编写的状态机转换为拜占庭容错复制状态机。

回到顶部

机器人大楼

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

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

构建自动化

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

  • 1build – 命令行工具,可轻松管理特定于项目的命令。
  • anko – 多种编程语言的简单应用程序观察器。
  • gaper – 在 Go 项目崩溃或某些监视的文件更改时构建并重新启动它。
  • gilbert – 为 Go 项目构建系统和任务运行器。
  • goyek – 在 Go 中创建构建管道。
  • mage – Mage 是使用 Go 的类似 make/rake 的构建工具。
  • mmake – 现代品牌。
  • realize – Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.
  • Task – simple “Make” alternative.
  • taskctl – Concurrent task runner.

back to top

Command Line

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces.

  • ascii graph – Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
  • aurora – ANSI terminal colors that supports fmt.Printf/Sprintf.
  • box-cli-maker – Make Highly Customized Boxes for your CLI.
  • cfmt – Contextual fmt inspired by bootstrap color classes.
  • cfmt – 简单方便的格式化程式化输出,与 fmt 库完全兼容。
  • chalk – 用于美化终端/控制台输出的直观包。
  • colourize – 终端中 ANSI 颜色文本的 Go 库。
  • ctc – 非侵入式跨平台终端颜色库,无需修改 Print 方法。
  • go-ataman – 用于在终端中呈现 ANSI 彩色文本模板的 Go 库。
  • go-colorable – Windows 的可着色作家。
  • go-colortext – 用于终端颜色输出的 Go 库。
  • go-isatty – golang 的 isatty。
  • go-prompt – 受 python -prompt-toolkit启发,用于构建强大的交互式提示的库。
  • gocui – 旨在创建控制台用户界面的极简 Go 库。
  • gommon/color – 样式终端文本。
  • gookit/color – 终端显色工具库,支持16色、256色、RGB显色输出,兼容Windows。
  • 标记- 匹配和标记彩色终端输出的 字符串 的最简单方法。
  • mpb – 终端应用程序的多进度条。
  • progressbar – 适用于每个操作系统的基本线程安全进度条。
  • pterm – 一个库,用于美化每个平台上的控制台输出,具有许多可组合的组件。
  • simpletable – 带有 Go 的终端中的简单表。
  • spinner – Go 软件包,可以轻松地为终端微调器提供选项。
  • tabby – 一个用于超级简单 Golang 表的小型库。
  • table – 基于终端颜色的表格的小型库。
  • 表格- 从命令行实用程序打印 ASCII 表,无需将大量数据传递给 API。
  • termbox-go – Termbox 是一个用于创建跨平台基于文本的界面的库。
  • termdash – 基于 termbox-go 并受termui启发的 Go 终端仪表板。
  • termenv – 为您的终端应用程序提供高级 ANSI 样式和颜色支持。
  • termui – 基于 termbox-go 的 Go 终端仪表板,灵感来自blessed-contrib .
  • uilive – 用于实时更新终端输出的库。
  • uiprogress – 在终端应用程序中呈现进度条的灵活库。
  • uitable – 使用表格数据提高终端应用程序可读性的库。
  • yacspin – 另一个 CLi Spinner 包,用于使用终端微调器。

回到顶部

标准命令行界面

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

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

回到顶部

配置

用于配置解析的库。

  • aconfig – 简单、有用和固执己见的配置加载器。
  • cleanenv – 简约的配置阅读器(来自文件、ENV 和任何你想要的地方)。
  • config – 用于 Go 项目的轻量级但功能强大的配置包。
  • config – 云原生应用程序配置。仅用两行将 ENV 绑定到结构。
  • config – 带有环境变量和标志解析的 JSON 或 YAML 配置包装器。
  • configuration – 用于从 env 变量、文件、标志和“默认”标签初始化配置结构的库。
  • configure – 通过多个来源提供配置,包括 JSON、标志和环境变量。
  • configuro – 来自 ENV 和 Files 的自以为是的配置加载和验证框架,专注于 12-Factor 兼容的应用程序。
  • confita – 将配置从多个后端级联加载到一个结构中。
  • conflate – 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件的库/工具,针对 JSON 模式进行验证,以及应用模式中定义的默认值。
  • env – 将环境变量解析为 Go 结构(使用默认值)。
  • env – 用于将环境变量加载到结构中的轻量级包。
  • envcfg – 将环境变量解组到 Go 结构。
  • envconf – 来自环境的配置。
  • envconfig – 从环境变量中读取您的配置。
  • envh – 管理环境变量的助手。
  • fig – 用于从文件和环境变量(带有验证和默认值)读取配置的微型库。
  • gcfg – 将 INI 样式的配置文件读入 Go 结构;支持用户定义的类型和小节。
  • genv – 使用 dotenv 支持轻松读取环境变量。
  • go-aws-ssm – 从 AWS System Manager – Parameter Store 获取参数的 Go 包。
  • go-conf – 基于注释结构的应用程序配置的简单库。它支持从环境变量、配置文件和命令行参数中读取配置。
  • go-ini – 编组和解组 INI 文件的 Go 包。
  • go-ssm-config – 用于从 AWS SSM(参数存储)加载配置参数的 Go 实用程序。
  • go-up – 一个简单的配置库,具有递归占位符解析且没有魔法。
  • goConfig – 解析一个结构作为输入,并使用来自命令行、 环境变量 和配置文件的参数填充这个结构的字段。
  • godotenv – Ruby 的 dotenv 库的 Go 端口(从 加载环境变量.env).
  • gofigure – 轻松配置 Go 应用程序。
  • got/jconf – 模块化 JSON 配置。让您配置结构以及它们配置的代码并将解析委托给子模块,而不会牺牲完整的配置 序列化
  • gonfig – 基于标签的配置解析器,它将来自不同提供者的值加载到类型安全的结构中。
  • gookit/config – 应用程序配置管理(加载、获取、设置)。支持 JSON、YAML、TOML、INI、HCL。多文件加载,数据覆盖合并。
  • Harvester – Harvester,一个易于使用的静态和动态配置包,支持播种、环境变量和 Consul 集成。
  • hjson – 人类 JSON,人类的配置文件格式。轻松的语法,更少的错误,更多的评论。
  • hocon – 用于处理 HOCON(人类友好的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
  • ingo – 标志保留在类似 ini 的配置文件中。
  • ini – 用于读取和写入 INI 文件的包。
  • ini – INI 解析器和写入库,解组到结构,编组到 Json,写入文件,监视文件。
  • joshbetz/config – Go 的小型配置库,可解析环境变量、JSON 文件并在 SIGHUP 上自动重新加载。
  • kelseyhightower/envconfig – 用于管理来自环境变量的配置数据的 Go 库。
  • koanf – 轻量级、可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON、TOML、YAML、env、命令行的支持。
  • konfig – 分布式处理时代的 Go 的可组合、可观察和高性能配置处理。
  • kong – 命令行解析器,支持任意复杂的命令行结构和额外的配置源,例如 YAML、JSON、TOML 等(继任者kingpin)。
  • mini – 用于解析 ini 样式配置文件的 Golang 包。
  • nasermirzaei89/env – 用于读取环境变量的简单有用的包。
  • onion – 基于层的 Go 配置,支持 JSON、TOML、YAML、属性、etcd、env 和使用 PGP 的加密。
  • piper – 具有配置继承和密钥生成的 Viper 包装器。
  • store -Go 的轻量级配置管理器。
  • 交换- 基于构建环境递归地实例化/配置结构。(YAML、TOML、JSON 和环境)。
  • typenv – 简约、零依赖、类型化的环境变量库。
  • uConfig – 轻量级、零依赖和可扩展的配置管理。
  • viper – 使用尖牙进行配置。
  • XDG 基本目录规范和XDG 用户目录的xdg -Go 实现。
  • xdg – 遵循XDG 标准的跨平台包。

回到顶部

持续集成

帮助持续集成的工具。

  • CDS – 企业级 CI/CD 和 DevOps 自动化开源平台。
  • drone -Drone 是一个基于 Docker 的持续集成平台,用 Go 编写。
  • duci – 一个简单的 ci 服务器,不需要特定领域的语言。
  • gomason – 从干净的工作区测试、构建、签名和发布您的 go 二进制 文件。
  • gotestfmt – 为人类进行测试输出。
  • govalls – Coveralls.io 连续代码覆盖跟踪系统的 Go 集成。
  • 工作服- Multi-Package go 项目封面配置文件,用于 goveralls 等工具。
  • roveralls – 递归覆盖测试工具。

回到顶部

CSS 预处理器

用于预处理 CSS 文件的库。

  • gcss – 纯 Go CSS 预处理器。
  • go-lib Sass – 包装 100% Sass 兼容的 libsass 项目。

回到顶部

数据结构

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

  • 2q – 2Q 内存缓存实现。
  • 算法- 算法和数据结构。CLRS 研究。
  • bingo – 将本机类型快速、零分配、保持字典顺序的打包成字节。
  • binpacker – 二进制打包器和解包器帮助用户构建自定义二进制流。
  • bit – Golang 设置数据结构,具有额外的位旋转功能。
  • bitmap – Go 中密集、零分配、启用 SIMD 的位图/位集。
  • bitset – 实现 bitset 的 Go 包。
  • Bloom – 实现 Bloom 过滤器的 Go 包。
  • Bloom – 在 Go 中实现的 Bloom 过滤器。
  • bloom -Golang 布隆过滤器实现。
  • bloomfilter – Go 中的另一个 Bloomfilter 实现,与 Java 的 Guava 库兼容.
  • boomfilters – 用于处理连续、无界流的概率数据结构。
  • cmap – go 的线程安全并发映射,支持interface{}用作键和自动扩展分片。
  • concurrent-writer – 高度并发的替代bufio.Writer.
  • conjungo – 一个小型、强大且灵活的合并库。
  • count-min-log -Go 实现 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用更少的内存).
  • crunch – Go 包实现用于轻松处理各种数据类型的缓冲区。
  • cuckoo-filter – Cuckoo 过滤器:一个全面的布谷鸟过滤器,与其他工具相比可配置和空间优化,原论文中提到的所有功能都可用。
  • cuckoofilter – Cuckoo 过滤器:Go 中实现的计数布隆过滤器的一个很好的替代品。
  • deque – 高度优化的双端队列。
  • deque – 快速环形缓冲区双端队列(双端队列)。
  • dict – 用于 Go 的类似 Python 的字典 (dict)。
  • dsu – Go 中的不相交集数据结构实现。
  • encoding -Go 的整数压缩库。
  • fsm – 有限状态机包。
  • gdcache – 一个由 golang 实现的纯非侵入式缓存库,您可以使用它来实现自己的分布式缓存。
  • go-adaptive-radix-tree – 自适应基数树的 Go 实现。
  • go-datastructures – 有用的、高性能的和线程安全的数据结构的集合。
  • go-edlib – 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
  • go-ef – Elias-Fano 编码的 Go 实现。
  • go-geoindex – 内存中的地理索引。
  • go-mcache – 快速的内存键:值存储/缓存库。指针缓存。
  • go-rquad – 具有高效点定位和邻居查找的区域四叉树。
  • gocache – 一个完整的 Go 缓存库,具有多个存储(内存、memcache、redis ……)、可链接、可加载、指标缓存等。
  • goconcurrentqueue – 并发 FIFO 队列。
  • 众神- Go 数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet 等。
  • gofal – Go 的分数 api。
  • golang-set -Go 的线程安全和非线程安全高性能集。
  • goset – 一个有用的 Go 集合集合实现。
  • goskiplist -Go中的跳过列表实现。
  • gostl – go 的数据结构和算法库,旨在提供类似于 C++ STL 的功能。
  • gota – Go 的数据帧、系列和数据整理方法的实现。
  • geterator – 提供 map 和 reduce 功能的迭代器实现。
  • hashsplit – 将字节流拆分成块,并将块排列成树,边界由内容决定,而不是位置。
  • hide – 带有编组到/来自散列的 ID 类型,以防止向客户端发送 ID。
  • hilbert – Go 包,用于将值映射到空间填充曲线,例如 Hilbert 和 Peano 曲线。
  • hyperloglog – 具有 Sparse、LogLog-Beta 偏差校正和 TailCut 空间减少的 HyperLogLog 实现.
  • iter – C++ STL 迭代器和算法的 Go 实现。
  • levenshtein – Levenshtein 距离和相似度指标,具有可定制的编辑成本和通用前缀的 Winkler 式奖金。
  • levenshtein – 在 Go 中计算 levenshtein 距离的实现。
  • memlog – 受 Apache Kafka 启发的易于使用、轻量级、线程安全且仅追加的内存数据结构。
  • merkle – Merkle 根哈希和包含证明的空间高效计算。
  • merkletree – merkle 树的实现,提供对数据结构内容的有效和安全的验证。
  • mspm – 用于信息检索的多字符串模式匹配算法。
  • nan – 一个库中的零分配 Nullable 结构,具有方便的转换功能、编组器和解组器。
  • null – 可以编组/解组到 JSON 的可空 Go 类型。
  • ordered-concurrently – Go 模块,它同时处理工作并按输入顺序在通道中返回输出。
  • parapipe – FIFO 管道,在每个阶段并行执行,同时保持消息和结果的顺序。
  • parsefields – 用于解析类似 JSON 的日志以收集唯一字段和事件的工具。
  • 管道- 具有扇入和扇出的管道实现。
  • ptrie – 前缀树的实现。
  • remember-go – 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或 in-memory 支持)。
  • ring – 高性能、线程安全的布隆过滤器的 Go 实现。
  • roaring – 实现压缩位集的 Go 包。
  • set – Go 中使用 LinkedHashMap 的简单集合数据结构实现。
  • skiplist – 非常快的 Go Skiplist 实现。
  • skiplist -Go 中的 Skiplist 实现。
  • slices – 对切片进行操作的函数;喜欢package strings但适用于切片。
  • timedmap – 带有过期键值对的映射。
  • treap – 使用树堆的持久、快速有序的地图。
  • treemap – 在引擎盖下使用红黑树的通用键排序图。
  • trie – Go 中的 Trie 实现。
  • ttlcache – 具有项目过期和泛型的内存缓存。
  • typ – Null 类型、安全的原始类型转换和从复杂结构中获取值。

回到顶部

数据库

用 Go 实现的数据库。

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

数据库模式迁移。

  • atlas – 一个数据库工具包。旨在帮助公司更好地处理数据的 CLI。
  • avro – 发现 SQL 模式并将它们转换为 AVRO 模式。将 SQL 记录查询为 AVRO 字节。
  • darwin -Go 的数据库模式演变库。
  • go-fixtures – Golang 优秀的内置数据库/sql 库的 Django 样式夹具。
  • go-pg-migrate – 用于 go-pg 迁移管理的 CLI 友好包。
  • go-pg-migrations – 一个 Go 包,用于帮助使用 go-pg/pg 编写迁移。
  • goavro – 一个对 Avro 数据进行编码和解码的 Go 包。
  • godfish – 数据库迁移管理器,使用原生查询语言。支持 cassandra、mysql、postgres、sqlite3。
  • goose – 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。
  • gormigrate -Gorm ORM 的数据库模式迁移助手。
  • migrate – 数据库迁移。CLI 和 Golang 库。
  • 迁移器- 死的简单 Go 数据库迁移库。
  • migrator – MySQL 数据库迁移器,旨在运行迁移到您的功能并使用直观的 go 代码管理数据库模式更新。
  • pravasan – 简单的迁移工具 – 目前用于 MySQL,但计划很快支持 Postgres、SQLite、MongoDB 等。
  • schema – 用于在 Go 二进制文件中嵌入数据库/sql 兼容数据库的模式迁移的库。
  • skeema – MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。
  • soda – 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。
  • sql-migrate – 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。
  • sqlize – 数据库迁移生成器。允许通过不同的方式从模型和现有 sql 生成 sql 迁移。

数据库工具。

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

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

  • bqb – 轻量级且易于学习的查询构建器。
  • buildsqlx – 用于 PostgreSQL 的 Go 数据库查询构建器库。
  • dbq – Go 的零样板数据库操作。
  • Dotsql – Go 库,可帮助您将 sql 文件保存在一个地方并轻松使用它们。
  • gendry – 非侵入性 SQL 构建器和强大的数据绑定器。
  • godbal – 用于 Go 的数据库抽象层(dbal)。支持SQL builder,轻松获取结果。
  • goqu – 惯用的 SQL 构建器和查询库。
  • gosql – 具有更好的空值支持的 SQL 查询构建器。
  • hasql – 用于访问多主机 SQL 数据库安装的库。
  • igor – PostgreSQL 的抽象层,支持高级功能并使用类似 gorm 的语法。
  • jet – 用于在 Go 中编写类型安全 SQL 查询的框架,能够轻松地将数据库查询结果转换为所需的任意对象结构。
  • mpath – 用于 SQL 记录的 MPTT(修改前序树遍历)包 – 物化路径实现。
  • ormlite – 轻量级包,包含一些类似 ORM 的功能和 sqlite 数据库的帮助程序。
  • ozzo-dbx – 强大的数据检索方法以及与数据库无关的查询构建功能。
  • qry – 使用原始 SQL 查询从文件生成常量的工具。
  • sq – Go 的类型安全 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 代码。

回到顶部

数据库驱动程序

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

  • 关系数据库
    • avatica – 用于数据库/sql 的 Apache Avatica/Phoenix SQL 驱动程序。
    • bgc – 适用于 Go 的 BigQuery 的数据存储连接。
    • firebirdsql -Go 的 Firebird RDBMS SQL 驱动程序。
    • go-adodb – 使用数据库/sql 的 Microsoft ActiveX 对象数据库驱动程序。
    • go-mssqldb – 用于 Go 的 Microsoft MSSQL 驱动程序。
    • go-oci8 – 使用数据库/sql 的 Oracle 驱动程序。
    • go-sql-driver/mysql -Go 的 MySQL 驱动程序。
    • go-sqlite3 – 使用数据库/sql 的 go 的 SQLite3 驱动程序。
    • godror – 用于 Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。
    • gofreetds – Microsoft MSSQL 驱动程序。在FreeTDS上进行包装。
    • pgx – PostgreSQL 驱动程序支持超出数据库/sql 公开的功能。
    • pig – 简单的pgx包装器,可以轻松地执行和扫描查询结果。
    • pq – 用于数据库/sql 的纯 Go Postgres 驱动程序。
    • Squinn-Go – 纯 Go 的 SQLite.
    • sqlhooks – 将挂钩附加到任何数据库/sql 驱动程序。
  • NoSQL 数据库
    • aerospike-client-go -Go 语言的 Aerospike 客户端。
    • arangolite -ArangoDB的轻量级 golang 驱动程序。
    • asc – 适用于 Aerospike 的数据存储连接。
    • Forestdb -ForestDB的 Go 绑定。
    • go-couchbase -Go中的 Couchbase 客户端。
    • 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 客户端库。
    • gorethink – RethinkDB 的 Go 语言驱动程序。
    • goriak – Riak KV 的 Go 语言驱动程序。
    • mgm – Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序).
    • mgo – Go 语言的(未维护的)MongoDB 驱动程序,它在遵循标准 Go 习惯用法的非常简单的 API 下实现了丰富且经过良好测试的功能选择。
    • mongo-go-driver -Go 语言的官方 MongoDB 驱动程序。
    • neo4j -Golang的 Neo4j Rest API 绑定.
    • Neo4j-GO -golang 中的 Neo4j REST 客户端.
    • neoism -Golang的 Neo4j 客户端。
    • qmgo – Go 的 MongoDB 驱动程序。它基于官方的 MongoDB 驱动程序,但像 Mgo 一样更易于使用。
    • redeo – Redis 协议兼容的 TCP 服务器/服务。
    • redigo – Redigo 是 Redis 数据库的 Go 客户端。
    • redis – Golang 的 Redis 客户端。
    • rueidis – 具有自动流水线和服务器辅助客户端缓存的快速 Redis RESP3 客户端。
    • xredis – 类型安全、可定制、干净且易于使用的 Redis 客户端。
  • 搜索和分析数据库。
    • bleve – 用于 Go 的现代文本索引库。
    • elastic – Go 的 Elasticsearch 客户端。
    • elasticsql – 在 Go 中将 sql 转换为 elasticsearch dsl.
    • elastigo – Elasticsearch 客户端库。
    • go-elasticsearch -Go 的官方 Elasticsearch 客户端。
    • go – 与 Elasticsearch 交互的库。
    • riot – 开源、分布式、简单高效的搜索引擎。
    • skizze – 概率数据结构服务和存储。
  • 多个后端。
    • cachego – 用于多个驱动程序的 Golang 缓存组件。
    • cayley – 支持多个后端的图形数据库。
    • dsc – SQL、NoSQL、结构化文件的数据存储连接。
    • gokv – Go 的简单键值存储抽象和实现(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等等)。

错误处理

日期和时间

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

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

形式

分布式系统

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

  • arpc – 更有效的网络通信,支持双向呼叫、通知、广播。
  • celeriac – 添加对交互和监控 Celery 工作人员、Go 中的任务和事件的支持的库。
  • 一致的 – 有界负载的一致散列。
  • 一致哈希 – 具有可配置副本的一致哈希。
  • dht -BitTorrent Kademlia DHT 实现。
  • digota – grpc 电子商务微服务。
  • dot – 使用操作转换/OT 的分布式同步。
  • doublejump – 改进的 Google 跳转一致哈希。
  • Dragonboat -Go中功能完整且高性能的多组 Raft 库。
  • drmaa – 基于 DRMAA 标准的集群调度程序的作业提交库。
  • dynamolock – DynamoDB 支持的分布式锁定实现。
  • dynatomic – 使用 DynamoDB 作为原子计数器的库。
  • emitter-io – 使用 MQTT、Websockets 和 love 构建的高性能、分布式、安全和低延迟的发布-订阅平台。
  • failured – 分布式系统的自适应应计故障检测器。
  • 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 – 谷歌“跳转”一致性哈希函数的端口。
  • 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 客户端实现。
  • Kratos – Go 中模块化设计且易于使用的微服务框架。
  • liftbridge – 用于 NATS 的轻量级、容错消息流。
  • lura – 带有中间件的超高性能 API 网关框架。
  • micro – 云及其他分布式系统运行时。
  • NATS – 用于微服务、物联网和云原生系统的轻量级、高性能消息传递系统。
  • outboxer – Outboxer 是一个实现发件箱模式的 go 库。
  • pglock – PostgreSQL 支持的分布式锁定实现。
  • pjrpc – 带有 Protobuf 规范的 Golang JSON-RPC 服务器客户端。
  • raft – Raft 共识协议的 Golang 实现,由 HashiCorp.
  • raft – 由 CoreOS 实现 Raft 共识协议。
  • rain -BitTorrent 客户端和库。
  • redis-lock – 使用 Redis 的简化分布式锁定实现。
  • resgate – 用于构建 REST、实时和 RPC API 的实时 API 网关,所有客户端都在其中无缝同步。
  • ringpop-go -Go 应用程序的可扩展、容错应用层分片。
  • rpcx – 类似于阿里巴巴 Dubbo 的分布式可插拔 RPC 服务框架。
  • Semaphore – 一个简单的(微)服务编排器。
  • sleuth – 用于无主 p2p 自动发现和 HTTP 服务之间的 RPC 的库(使用ZeroMQ)。
  • torrent -BitTorrent 客户端软件包。

回到顶部

动态 DNS

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

  • DDNS – 以 Digital Ocean Networking DNS 作为后端的个人 DDNS 客户端。
  • dyndns – 后台 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-validator – 用于语法、一次性、smtp 等检查的模块化电子邮件验证器。
  • go-imap – 用于客户端和服务器的 IMAP 库。
  • go-message – Internet 消息格式和邮件消息的流媒体库。
  • go-premailer -Go中 HTML 邮件的内联样式。
  • go-simple-mail – 使用 SMTP Keep Alive 和两个超时发送电子邮件的非常简单的包:连接和发送。
  • Hectane – 提供 HTTP API 的轻量级 SMTP 客户端。
  • hermes – 生成干净、响应式 HTML 电子邮件的 Golang 包。
  • mailchain – 将加密的电子邮件发送到用 Go 编写的区块链地址。
  • mailgun-go – 使用 Mailgun API 发送邮件的 Go 库。
  • MailHog – 使用 Web 和 API 接口进行电子邮件和 SMTP 测试。
  • mailx -Mailx 是一个库,可以更轻松地通过 SMTP 发送电子邮件。它是对 golang 标准库的增强net/smtp。
  • SendGrid – SendGrid 用于发送电子邮件的 Go 库。
  • smtp – SMTP 服务器协议状态机。
  • smtpmock – 轻量级的可配置多线程假 SMTP 服务器。为您的测试环境模拟任何 SMTP 行为。
  • truemail-go – 可配置的 Golang 电子邮件验证器/验证器。通过 Regex、DNS、SMTP 等验证电子邮件。

回到顶部

可嵌入的脚本语言

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

  • anko – 用 Go 编写的脚本解释器。
  • binder – 转到基于gopher-lua的 Lua 绑定库。
  • cel-go – 快速、便携、非图灵完整的表达式评估,带有渐进式输入。
  • ecal – 一种简单的可嵌入脚本语言,支持并发事件处理。
  • expr – Go 的表达式评估引擎:快速、非图灵完备、动态类型、静态类型。
  • gentee – 可嵌入的脚本编程语言。
  • gisp -Go中的简单 LISP。
  • go-duktape – Go 的 Duktape JavaScript 引擎绑定。
  • go-lua – Lua 5.2 VM 到纯 Go 的端口。
  • go-php -Go 的 PHP 绑定。
  • go-python – 天真的 go 绑定到 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 等的跨平台 Polyglot 运行时。
  • ngaro – 可嵌入的 Ngaro VM 实现在 Retro 中启用脚本。
  • prolog – 可嵌入的 Prolog。
  • purl – 嵌入在 Go 中的 Perl 5.18.2.
  • tengo – Go 的字节码编译脚本语言。

回到顶部

错误处理

用于处理错误的库。

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

回到顶部

文件处理

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

  • afero -Go的文件系统抽象系统。
  • afs – Go 的抽象文件存储(mem、scp、zip、tar、云:s3、gs)。
  • baraka – 一个轻松处理 http 文件上传的库。
  • bigfile – 文件传输系统,支持使用 http api、rpc 调用和 ftp 客户端管理文件。
  • 校验和- 计算大文件的消息摘要,如 MD5、SHA256、SHA1、CRC 或 BLAKE2s。
  • 复制- 递归复制目录。
  • flop – 文件操作库,旨在与GNU cp镜像功能奇偶校验。
  • gdu – 带有控制台界面的磁盘使用分析器。
  • go-csv-tag – 使用标签加载 csv 文件。
  • go-decent-copy – 为人类复制文件。
  • go-exiftool – ExifTool 的 Go 绑定,ExifTool 是著名的库,用于从文件(图片、PDF、办公室等)中提取尽可能多的元数据(EXIF、IPTC 等).
  • go-gtfs – 在 go 中加载 gtfs 文件。
  • gofs – 开箱即用的文件同步工具。
  • gut/yos – 简单可靠的文件操作包,例如文件、目录和符号链接上的复制/移动/差异/列表。
  • higgs – 一个小型跨平台 Go 库,用于隐藏/取消隐藏文件和目录。
  • notify – 具有简单 API 的文件系统事件通知库,类似于 os/signal.
  • opc – 为 Go 加载开放打包约定 (OPC) 文件。
  • parquet – 读取和写入parquet文件。
  • pathtype – 将路径视为自己的类型,而不是使用字符串。
  • pdfcpu – PDF 处理器。
  • skywalker – 允许一个人轻松地同时通过文件系统的软件包。
  • stl – 用于读取和写入 STL(立体光刻)文件的模块。用于读取的并发算法。
  • tarfs – tar 文件FileSystem接口的实现。
  • todotxt – Gina Trapani 的 todo.txt 文件的 Go 库,支持解析和操作 todo.txt 格式的任务列表。
  • vfs – 一组可插入、可扩展和自以为是的文件系统功能,用于 Go 跨多种文件系统类型,如 os、S3 和 GCS。

回到顶部

金融的

会计和财务软件包。

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

回到顶部

形式

用于处理表单的库。

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

回到顶部

功能性

支持 Go 函数式编程的包。

  • fpGo – Monad,Golang 的函数式编程特性。
  • fuego -Go 中的功能实验。
  • go-underscore – 有用的 Go 集合实用程序的有用集合。
  • gofp – 一个类似于 lodash 的强大的 Golang 实用程序库。
  • underscore -Go 1.18 及更高版本的函数式编程助手。

回到顶部

游戏开发

很棒的游戏开发库。

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

回到顶部

发电机

生成 Go 代码的工具。

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

回到顶部

地理

地理工具和服务器

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

回到顶部

编译器

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

  • c4go – 将 C 代码转换为 Go 代码。
  • esp32 – 转译进入 Arduino 代码。
  • f4go – 将 FORTRAN 77 代码转换为 Go 代码。
  • gopherjs – 从 Go 到 JavaScript 的编译器。
  • tardisgo – Golang 到 Haxe 到 CPP/CSharp/Java/JavaScript 转译器。

回到顶部

协程

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

  • ants – Go 中高性能和低成本的 goroutine 池。
  • artifex – Golang 的简单内存中作业队列,使用基于工作者的调度。
  • async – Go 的替代同步库(Future,Promise,Locks)。
  • async – 一种异步执行函数的安全方法,在出现恐慌时恢复它们。
  • 断路器- 使执行流程可中断的灵活机制。
  • channelify – 将您的函数转换为返回通道,以实现简单而强大的并行处理。
  • concurrency-limiter – 并发限制器,支持超时、动态优先级和 goroutine 的上下文取消。
  • conexec – 一个并发工具包,可帮助以高效和安全的方式同时执行函数。它支持指定整体超时以避免阻塞,并使用 goroutine 池来提高效率。
  • cyclicbarrier -golang的 CyclicBarrier.
  • execpool – 围绕 exec.Cmd 构建的池,可提前启动给定数量的进程,并在需要时将 stdin 和 stdout 附加到它们。与 FastCGI 或 Apache Prefork MPM 非常相似,但适用于任何命令。
  • go-floc – 轻松编排 goroutine。
  • go-flow – 控制 goroutine 的执行顺序。
  • go-tools/multithreading – 使用这个轻量级库和一个简单的 API 来管理一个 goroutine 池。
  • go-trylock – 对 Golang 读写锁的 TryLock 支持。
  • go-waitgroup -sync.WaitGroup与错误处理和并发控制类似。
  • 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 的池。
  • 托儿所- Go 中的结构化并发。
  • 监督- 监督是 Erlang 监督树的完整实现。
  • parallel-fn – 并行运行函数。
  • 池塘- 用 Go 编写的简约和高性能 goroutine 工作池。
  • pool – 有限的消费者 goroutine 或无限的 goroutine 池,以便于 goroutine 处理和取消。
  • queue – 为您提供sync.WaitGroup类似队列组的可访问性。帮助您限制和限制 goroutine,等待所有 goroutine 结束等等。
  • 例程- 带上下文的例程控制,支持:Main、Go、Pool 和一些有用的 Executors。
  • semaphore – 基于通道和上下文的锁定/解锁操作超时的信号量模式实现。
  • semaphore – 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。
  • stl – 基于软件事务内存 (STM) 并发控制机制的软件事务锁。
  • threadpool -Golang 线程池实现。
  • tunny -golang 的 Goroutine 池。
  • worker-pool -goworker 是一个 Go 简单的异步工作池。
  • workerpool – 限制任务执行并发的 Goroutine 池,而不是排队的任务数量。

相互作用

图形用户界面

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

工具包

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

相互作用

  • go-appindicator – libappindicator3 C 库的 Go 绑定。
  • gosx-notifier -Go 的OSX 桌面通知库。
  • mac-activity-tracker – OSX 库,用于通知您机器上的任何(可插入)活动。
  • mac-sleep-notifier -golang 中的 OSX 睡眠/唤醒通知.
  • robotsgo – Go Native 跨平台 GUI 系统自动化。控制鼠标、键盘等。
  • systray – 跨平台 Go 库,用于在通知区域放置图标和菜单。
  • Trayhost – 跨平台 Go 库,用于在主机操作系统的任务栏中放置图标。
  • zenity – 跨平台 Go 库和 CLI,用于创建与用户进行图形交互的简单对话框。

回到顶部

硬件

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

  • arduino-cli – 官方 Arduino CLI 和库。可以独立运行,也可以合并到更大的 Go 项目中。
  • emgo – 用于编程嵌入式系统(例如 STM32 MCU)的类似 Go 的语言。
  • ghw – Golang 硬件发现/检查库。
  • go-osc -Go 的开放声音控制(OSC)绑定。
  • go-rpio -Go 的GPIO,不需要 cgo。
  • goroslib -Go 的机器人操作系统(ROS)库。
  • 操纵杆- 一个轮询 API,用于读取附加操纵杆的状态。
  • sysinfo – 一个纯 Go 库,提供 Linux 操作系统/内核/硬件系统信息。

回到顶部

图片

用于处理图像的库。

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

回到顶部

物联网(物联网)

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

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

回到顶部

作业调度程序

用于调度作业的库。

  • cdule – 具有数据库支持的作业调度程序库
  • 脸颊- 一个类似 crontab 的简单调度程序,旨在为作业调度提供 KISS 方法。
  • clockwerk – 使用简单流畅的语法安排定期作业的 Go 包。
  • cronticker – 一个支持 cron 计划的代码实现。
  • go-cron – 用于 go 的简单 Cron 库,可以在特定日期和时间以不同的时间间隔执行闭包或函数,从每秒一次到每年一次。主要用于 Web 应用程序和长时间运行的守护进程。
  • go-quartz -Go 的简单、零依赖调度库。
  • gocron – 简单流畅的 Go 作业调度。这是jasonlvhit/gocron的一个积极维护的分支。
  • goflow – 用于 ETL/ML/AI 管道快速原型设计的工作流编排器和调度器。
  • gron – 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们。
  • gronx – Cron 表达式解析器,任务运行程序和使用 crontab 的守护程序,如任务列表。
  • JobRunner – 智能且功能强大的 cron 作业调度程序,内置作业队列和实时监控。
  • jobs – 持久且灵活的后台作业库。
  • leprechaun – 支持 webhook、crons 和经典调度的作业调度程序。
  • sched – 具有快进时间能力的作业调度程序。
  • scheduler – Cronjobs 调度变得容易。
  • tasks – 一个易于使用的进程内调度程序,用于 Go 中的重复任务。

回到顶部

JSON

用于处理 JSON 的库。

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

回到顶部

日志记录

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

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

回到顶部

机器学习

机器学习库。

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

回到顶部

消息传递

实现消息系统的库。

  • ami – 将客户端转到基于 Redis Cluster Streams 的可靠队列。
  • amqp – 转到 RabbitMQ 客户端库。
  • APNs2 – 适用于 Go 的 HTTP/2 Apple 推送通知提供程序 – 向 iOS、tvOS、Safari 和 OSX 应用程序发送推送通知。
  • Asynq – 一个简单、可靠、高效的 Go 分布式任务队列,构建在 Redis 之上。
  • Beaver – 一个实时消息服务器,用于构建可扩展的应用内通知、多人游戏、网络和移动应用中的聊天应用。
  • Benthos – 一系列协议之间的消息流桥。
  • Bus – 用于内部通信的极简主义消息总线实现。
  • Centrifugo -Go 中的实时消息传递(Websockets 或 SockJS)服务器。
  • Chanify – 推送通知服务器向您的 iOS 设备发送消息。
  • Commander – 高级事件驱动的消费者/生产者,支持各种“方言”,例如 Apache Kafka。
  • Confluent Kafka Golang 客户端- confluent-kafka-go 是 Confluent 的 Golang 客户端,用于 Apache Kafka 和 Confluent 平台。
  • dbus – D-Bus 的本机 Go 绑定。
  • drone-line -使用二进制、docker 或 Drone CI发送Line通知。
  • 发射器- 使用 Go 方式发出事件,具有通配符、谓词、取消可能性和许多其他好的胜利。
  • event – 模式观察者的实现。
  • EventBus – 具有异步兼容性的轻量级事件总线。
  • gaurun-client – 用 Go 编写的 Gaurun 客户端。
  • Glue – 强大的 Go 和 Javascript 套接字库(Socket.io 的替代品)。
  • 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 pub-sub 变得简单。
  • gopush-cluster -gopush-cluster 是一个 go push 服务器集群。
  • gorush – 使用APNs2和 google GCM推送通知服务器。
  • gosd – 用于调度何时向频道发送消息的库。
  • guble – 使用推送通知(Google Firebase 云消息传递、Apple 推送通知服务、SMS)以及 websockets(一种 REST API)的消息传递服务器,具有分布式操作和消息持久性。
  • hare – 一个用户友好的库,用于发送消息和侦听 TCP 套接字。
  • hub – Go 应用程序的消息/事件中心,使用发布/订阅模式,支持 rabbitMQ 交换等别名。
  • jazz – 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费。
  • machine – 基于分布式消息传递的异步任务队列/作业队列。
  • mangos – 具有传输互操作性的 Nanomsg(“可扩展性协议”)的纯 go 实现。
  • melody – 处理 websocket 会话的极简框架,包括广播和自动 ping/pong 处理。
  • Mercure – 使用 Mercure 协议(构建在服务器发送事件之上)调度服务器发送更新的服务器和库。
  • messagebus – messagebus 是一个 Go 简单的异步消息总线,非常适合在进行事件溯源、CQRS、DDD 时用作事件总线。
  • NATS Go Client – 轻量级和高性能的发布-订阅和分布式队列消息系统 – 这是 Go 库。
  • nsq-event-bus – 一个围绕 NSQ 主题和频道的小型包装器。
  • oplog – 用于 REST API 的通用 oplog/复制系统。
  • pubsub – 简单的 pubsub 包。
  • rabbus – amqp 交换和队列的小型包装器。
  • rabtap -RabbitMQ瑞士军刀 cli 应用程序。
  • RapidMQ – RapidMQ 是一个轻量级且可靠的库,用于管理本地消息队列。
  • redisqueue – redisqueue 提供了使用 Redis 流的队列的生产者和消费者。
  • rmqconn – RabbitMQ 重新连接。amqp.Connection 和 amqp.Dial 的包装器。允许在连接断开时重新连接,然后强制关闭对 Close() 方法的调用。
  • sarama – Apache Kafka 的 Go 库。
  • Uniqush-Push – Redis 支持的统一推送服务,用于向移动设备发送服务器端通知。
  • zmq4 – 转到 ZeroMQ 版本 4 的接口。也可用于版本 3和版本 2。

回到顶部

微软办公软件

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

微软Excel

用于使用 Microsoft Excel 的库。

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

回到顶部

各种各样的

依赖注入

用于依赖注入的库。

  • alice – Golang 的附加依赖注入容器。
  • container – 一个强大的 IoC 容器,具有流畅且易于使用的界面。
  • di – Go 编程语言的依赖注入容器。
  • dig – 一个基于反射的 Go 依赖注入工具包。
  • dingo – 基于 Guice 的 Go 依赖注入工具包。
  • fx – 一个基于依赖注入的 Go 应用程序框架(建立在 dig 之上)。
  • gocontainer – 简单的依赖注入容器。
  • goioc/di – 受 Spring 启发的依赖注入容器。
  • google/wire -Go 中的自动初始化。
  • HnH/di – 专注于清洁 API 和灵活性的 DI 容器库。
  • kinit – 具有全局模式、级联初始化和恐慌安全终结的可定制依赖注入容器。
  • 链接器- 基于反射的依赖注入和具有组件生命周期支持的控制库反转。
  • nject – 用于库、测试和 http 端点以及服务启动的类型安全、反射框架。
  • wire -Golang 的严格运行时依赖注入。

回到顶部

项目布局

用于构建项目的非官方 模式集。

  • ardanlabs/service -用于构建生产级可扩展 Web 服务应用程序的入门工具包。
  • cookiecutter-golang – 一个 Go 应用程序样板模板,用于按照生产最佳实践快速启动项目。
  • go-sample – 带有真实代码的 Go 应用程序项目的示例布局。
  • go-starter – 一个自以为是的生产就绪 RESTful JSON 后端模板,与 VSCode DevContainers 高度集成。
  • go-todo-backend – 使用产品微服务的模块化项目布局的 Go Todo 后端示例.
  • gobase – 一个简单的 golang 应用程序框架,具有真正的 golang 应用程序的基本设置。
  • golang-standards/project-layout -Go 生态系统中一组常见的历史和新兴项目布局模式。注意:尽管 org-name 不代表官方 golang 标准,请参阅此问题以获取更多信息。尽管如此,有些人可能会发现布局很有用。
  • golang-templates/seed – Go 应用程序 GitHub 存储库模板。
  • insidieux/inizio – 带有插件的 Golang 项目布局生成器。
  • modern-go-application -Go 应用程序样板和应用现代实践的示例。
  • pagoda -Go 中内置的快速、简单的全栈 Web 开发入门套件。
  • 脚手架- 脚手架生成一个入门 Go 项目布局。让您专注于实现的业务逻辑。
  • wangyoucao577/go-project-layout – 关于如何构建 Go 项目布局的一组实践和讨论。

回到顶部

字符串

用于处理字符串的库。

  • bexp – 大括号扩展机制的 Go 实现以生成任意字符串。
  • go-formatter – 实现由大括号格式字符串包围的 替换字段。 {}
  • gobeam/Stringy – 字符串操作库,用于将字符串转换为驼峰式、蛇式、烤肉串式 / slugify 等。
  • strutil – 字符串实用程序。
  • sttr – 跨平台的 cli 应用程序,用于对字符串执行各种操作。
  • xstrings – 从其他语言移植的有用字符串函数的集合。

文章来源:智云一二三科技

文章标题:盘点那些年让我们相爱恨晚的Go语言库

文章地址:https://www.zhihuclub.com/86633.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图