第66节 go 语言工具包
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[TOC]
音频和音乐
用于处理音频的库。
- flac - 支持 FLAC 流的 Native Go FLAC 编码器/解码器.
- gaad - 本机 Go AAC 比特流解析器。
- GoAudio - 本机 Go 音频处理库。
- gosamplerate -go 的 libsamplerate 绑定。
- id3v2 - Go 的 ID3 解码和编码库。
- malgo - 迷你音频库。
- minimp3 - 轻量级 MP3 解码器库。
- Oto - 一个在多个平台上播放声音的低级库。
- PortAudio - PortAudio 音频 I/O 库的绑定。
身份验证和 OAuth
用于实现身份验证方案的库。
- authboss - 用于网络的模块化身份验证系统。它尝试尽可能多地删除样板和“困难的东西”,以便每次您在 Go 中启动一个新的 Web 项目时,您都可以插入它、配置它并开始构建您的应用程序,而不必每次都构建一个身份验证系统.
- branca - Golang 1.15+ 的branca 令牌规范实现。
- casbin - 支持访问控制模型(如 ACL、RBAC 和 ABAC)的授权库。
- cookiestxt - 提供 cookies.txt 文件格式的解析器。
- go-guardian -Go-Guardian 是一个 golang 库,它提供了一种简单、干净和惯用的方式来创建强大的现代 API 和 Web 身份验证,支持 LDAP、Basic、Bearer 令牌和基于证书的身份验证。
- go-jose - 相当完整地实现了 JOSE 工作组的 JSON Web 令牌、JSON Web 签名和 JSON Web 加密规范。
- gologin - 用于使用 OAuth1 和 OAuth2 身份验证提供程序登录的可链接处理程序。
- gorbac - 在 Golang 中提供轻量级的基于角色的访问控制 (RBAC) 实现。
- gosession - 这是 GoLang 中 net/http 的快速会话。这个包可能是会话机制的最佳实现,或者至少它试图成为一个。
- goth - 提供了一种简单、干净、惯用的方式来使用 OAuth 和 OAuth2。开箱即用地处理多个提供商。
- jeff - 具有可插入后端的简单、灵活、安全和惯用的 Web 会话管理。
- jwt - 轻量级 JSON Web 令牌(JWT)库。
- jwt - 用于 Go 的安全、简单和快速的 JSON Web 令牌。
- jwt-auth - 用于具有许多配置选项的 Golang http 服务器的 JWT 中间件。
- jwt-go - JSON Web Tokens (JWT) 的全功能实现。该库支持 JWT 的解析和验证以及生成和签名。
- keto - “Zanzibar:Google 一致的全球授权系统”的开源(Go)实现。提供 gRPC、REST API、newSQL 和一种简单而精细的权限语言。支持ACL、RBAC等访问模型。
- loginsrv - 具有可插入后端的 JWT 登录微服务,例如 OAuth2 (Github)、htpasswd、osiam.
- oauth2 - goauth2 的继任者。带有 JWT、Google API、Compute Engine 和 App Engine 支持的通用 OAuth 2.0 包。
- osin -Golang OAuth2 服务器库。
- otpgen - 生成 TOTP/HOTP 代码的库。
- otpgo -Go 的基于时间的一次性密码(TOTP)和基于 HMAC 的一次性密码(HOTP)库。
- paseto - 与平台无关的安全令牌 (PASETO) 的 Golang 实现。
- permissions2 - 用于跟踪用户、登录状态和权限的库。使用安全 cookie 和 bcrypt。
- scope - 在 Go 中轻松管理 OAuth2 范围。
- scs - HTTP 服务器的会话管理器。
- securecookie - 高效的安全 cookie 编码/解码。
- session - 用于 Web 服务器的 Go 会话管理(包括对 Google App Engine - GAE 的支持)。
- sessions - 用于 go http 服务器的非常简单、高性能、高度可定制的会话服务。
- sessionup - 简单但有效的 HTTP 会话管理和识别包。
- sjwt - 简单的 jwt 生成器和解析器。
区块链
构建区块链的工具。
- cosmos-sdk - 在 Cosmos 生态系统中构建公共区块链的框架。
- go-ethereum - 以太坊协议的官方 Go 实现。
- gossamer - Polkadot 主机的 Go 实现。
- solana-go - 与 Solana JSON RPC 和 WebSocket 接口交互的 Go 库。
- tendermint - 高性能中间件,用于使用 Tendermint 共识和区块链协议将以任何编程语言编写的状态机转换为拜占庭容错复制状态机。
机器人建筑
用于构建和使用机器人的库。
- bot - 具有附加 UI 组件的零依赖性 Telegram Bot 库
- echotron -Go 中用于电报机器人的优雅且并发的库。
- ephemeral-roles - 一个 Discord 机器人,用于根据语音通道成员的存在来管理临时角色。
- go-chat-bot - 用 Go 编写的 IRC、Slack 和 Telegram 机器人。
- go-joe - 受 Hubot 启发但用 Go 编写的通用机器人库。
- go-sarah - 为所需的聊天服务构建机器人的框架,包括 LINE、Slack、Gitter 等。
- go-tgbot - 纯 Golang Telegram Bot API 包装器,由 swagger 文件、基于会话的路由器和中间件生成。
- go-twitch-irc - 为 twitch.tv 聊天编写机器人的库
- Golang CryptoTrading Bot - 基于控制台的加密货币交易交易机器人的 golang 实现。
- govkbot - 简单的 Go VK机器人库。
- hanu - 编写 Slack 机器人的框架。
- Kelp - Stellar DEX的官方交易和做市机器人。开箱即用,用 Golang 编写,与中心化交易所和自定义交易策略兼容。
- 拉里- 拉里🐦是一个非常简单的 Twitter 机器人生成器,它可以从 Github 中用 Go 构建的随机存储库中发送推文。
- margelet - 用于构建 Telegram 机器人的框架。
- micha - 用于 Telegram bot api 的 Go 库。
- olivia - 使用人工神经网络构建的聊天机器人。
- slack-bot - 准备好为懒惰的开发人员使用 Slack Bot:自定义命令,Jenkins,Jira,Bitbucket,Github ...
- slacker - 易于使用的框架来创建 Slack 机器人。
- slackscot - 用于构建 Slack 机器人的另一个框架。
- tbot - 具有类似于 net/http 的 API 的电报机器人服务器。
- telebot - Telegram 机器人框架是用 Go 编写的。
- telego - 用于 Golang 的 Telegram Bot API 库,具有完整的一对一 API 实现。
- telegram-bot-api - 简单干净的 Telegram 机器人客户端。
- teleterm - 电报 Bot Exec 终端命令。
- Tenyks - 使用 Redis 和 JSON 进行消息传递的面向服务的 IRC 机器人。
- wayback - 用于 Telegram、Mastodon、Slack 和其他消息传递平台的机器人存档网页。
构建自动化
库和工具有助于构建自动化。
- 1build - 用于顺畅管理项目特定命令的命令行工具。
- anko - 多种编程语言的简单应用程序观察器。
- gaper - 在 Go 项目崩溃或某些监视的文件更改时构建并重新启动它。
- gilbert - 为 Go 项目构建系统和任务运行器。
- goyek - 在 Go 中创建构建管道。
- mage -Mage 是一种使用 Go 的类似 make/rake 的构建工具。
- mmake - 现代品牌。
- 实现- 去构建一个带有文件观察器的系统并重新加载。使用自定义路径运行、构建和观察文件更改。
- 任务- 简单的“制作”替代方案。
- taskctl - 并发任务运行器。
- xc - 带有 README.md 定义任务的任务运行器,可执行降价。
命令行
高级控制台用户界面
用于构建控制台应用程序和控制台用户界面的库。
- asciigraph -Go 包可在命令行应用程序中制作轻量级 ASCII 线图 ╭┈╯,无需其他依赖项。
- aurora - 支持 fmt.Printf/Sprintf 的 ANSI 终端颜色。
- box-cli-maker - 为您的 CLI 制作高度定制的盒子。
- bubbles - bubbletea 的 TUI 组件.
- bubbletea - 基于 Elm 架构构建终端应用程序的 Go 框架。
- cfmt - 受引导颜色类启发的上下文 fmt.
- cfmt - 简单方便的格式化程式化输出,与 fmt 库完全兼容。
- chalk - 用于美化终端/控制台输出的直观包。
- colourize - 用于终端中 ANSI 颜色文本的 Go 库。
- crab-config-files-templating - 用于 kubernetes 清单或通用配置文件的动态配置文件模板工具。
- ctc - 非侵入式跨平台终端颜色库,无需修改 Print 方法。
- go-ataman - 用于在终端中呈现 ANSI 彩色文本模板的 Go 库。
- go-colorable - 适用于 windows 的着色器。
- go-colortext - 用于在终端中输出颜色的 Go 库。
- go-isatty -golang 的 isatty。
- go-palette -Go 库,使用 ANSI 颜色提供优雅方便的样式定义。完全兼容并包装fmt 库以获得漂亮的终端布局。
- go-prompt - 受python-prompt-toolkit启发,用于构建强大的交互式提示的库。
- gocui - 旨在创建控制台用户界面的极简主义 Go 库。
- gommon/color - 样式终端文本。
- gookit/color - 终端显色工具库,支持16色、256色、RGB显色输出,兼容Windows。
- lipgloss - 在终端中以声明方式定义颜色、格式和布局的样式。
- marker - 为彩色终端输出匹配和标记字符串的最简单方法。
- mpb - 终端应用程序的多进度条。
- progressbar - 适用于每个操作系统的基本线程安全进度条。
- pterm - 一个库,用于在具有许多可组合组件的每个平台上美化控制台输出。
- simpletable - 使用 Go 的终端中的简单表格。
- spinner -Go 包可以轻松地为终端微调器提供选项。
- tabby - 一个用于超级简单 Golang 表的小型库。
- table - 基于终端颜色的表格的小型库。
- tabular - 从命令行实用程序打印 ASCII 表,无需将大量数据传递给 API。
- termbox-go - Termbox 是一个用于创建基于文本的跨平台界面的库。
- termdash - 基于termbox-go并受termui启发的 Go 终端仪表板。
- termenv - 为您的终端应用程序提供高级 ANSI 样式和颜色支持。
- termui - 基于termbox-go并受blessed-contrib启发的 Go 终端仪表板。
- uilive - 用于实时更新终端输出的库。
- uiprogress - 灵活的库,用于在终端应用程序中呈现进度条。
- uitable - 使用表格数据提高终端应用程序可读性的库。
- yacspin - 另一个 CLi Spinner 包,用于与终端微调器一起工作。
标准命令行界面
用于构建标准或基本命令行应用程序的库。
- acmd -Go 中简单、有用且自以为是的 CLI 包。
- argparse - 受 Python 的 argparse 模块启发的命令行参数解析器。
- argv - Go 库使用 bash 语法将命令行字符串拆分为参数数组。
- carapace - spf13/cobra 的命令参数完成生成器。
- carapace-bin - 多 shell 多命令参数完成器。
- carapace-spec - 使用 spec 文件定义简单的完成。
- cli - 基于 golang struct 标签的功能丰富且易于使用的命令行包。
- cli - 用于在 Go 中构建命令行界面的简单而完整的 API。
- climax - 本着 Go 命令的精神,具有“人脸”的替代 CLI。
- clîr - 一个简单明了的 CLI 库。无依赖性。
- cmd - 以惯用的方式扩展标准
flag
包以支持子命令等。 - cmdr - POSIX/GNU 风格,类似于 getopt 的命令行 UI Go 库。
- cobra - 现代 Go CLI 交互的指挥官。
- command-chain - 用于配置和运行命令链的 go 库 - 例如 unix shell 中的流水线操作。
- commandeer - 开发友好的 CLI 应用程序:根据结构字段和标签设置标志、默认值和用法。
- complete - 在 Go + Go 命令 bash 完成中编写 bash 完成。
- Dnote - 具有多设备同步功能的简单命令行笔记本。
- elvish - 一种富有表现力的编程语言和多功能的交互式 shell。
- env - 结构的基于标签的环境配置。
- flag - 用于 Go 支持子命令的简单但功能强大的命令行选项解析库。
- flaggy - 一个强大且惯用的标志包,具有出色的子命令支持。
- flagvar - Go 标准包的标志参数类型的集合
flag
。 - go-andotp - 用于加密/解密和 OTP文件的 CLI 程序。也可以用作图书馆。
- go-arg -Go 中基于结构的参数解析。
- go-commander - 用于简化 CLI 工作流程的 Go 库。
- go-flags - go 命令行选项解析器。
- go-getoptions - 受 Perl 的 GetOpt::Long 的灵活性启发的 Go 选项解析器。
- gocmd - 用于构建命令行应用程序的 Go 库。
- hiboot cli - 具有自动配置和依赖注入的 cli 应用程序框架。
- job - JOB,让你的短期命令成为长期工作。
- kingpin - 支持子命令的命令行和标志解析器(被取代
kong
;见下文)。 - liner - 用于命令行界面的类似于 readline 的库。
- mcli - 用于 Go 的最小但非常强大的 cli 库。
- mitchellh/cli - 用于实现命令行界面的 Go 库。
- mow.cli - 用于构建具有复杂标志和参数解析和验证的 CLI 应用程序的 Go 库。
- ops - Unikernel Builder/Orchestrator.
- pflag - Go 标志包的直接替换,实现了 POSIX/GNU 风格 --flags。
- sand - 用于创建解释器等的简单 API。
- sflags - 用于 flag、urfave/cli、pflag、cobra、kingpin 和其他库的基于结构的标志生成器。
- strumt - 创建提示链的库。
- subcmd - 另一种解析和运行子命令的方法。与标准
flag
包一起工作。 - survey - 构建交互式和可访问的提示,完全支持 Windows 和 posix 终端。
- ts - 时间戳转换和比较工具。
- ukautz/clif - 小型命令行界面框架。
- urfave/cli - 用于在 Go 中构建命令行应用程序的简单、快速且有趣的包(以前称为 codegangsta/cli)。
- version - 以多种格式收集和显示 CLI 版本信息以及升级通知。
- wlog - 支持跨平台颜色和并发的简单日志记录界面。
- wmenu - 提示用户做出选择的 cli 应用程序易于使用的菜单结构。
配置
用于配置解析的库。
- aconfig - 简单、有用且自以为是的配置加载器。
- cleanenv - 简约的配置阅读器(来自文件、ENV 以及任何你想要的地方)。
- config - 云原生应用程序配置。只需两行即可将 ENV 绑定到结构。
- 配置- 在两行代码中使用文件、环境变量或标志配置您的应用程序
- config - 具有环境变量和标志解析的 JSON 或 YAML 配置包装器。
- configuration - 用于从 env 变量、文件、标志和“默认”标签初始化配置结构的库。
- configure - 通过多个来源提供配置,包括 JSON、标志和环境变量。
- configuro - 来自 ENV 和 Files 的自以为是的配置加载和验证框架,专注于 12-Factor 兼容应用程序。
- confita - 将配置从多个后端级联加载到一个结构中。
- conflate - 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件的库/工具,针对 JSON 模式进行验证,以及模式中定义的默认值的应用。
- env - 将环境变量解析为 Go 结构(具有默认值)。
- env - 用于将环境变量加载到结构中的轻量级包。
- envcfg - 将环境变量取消编组到 Go 结构。
- envconf - 来自环境的配置。
- envconfig - 从环境变量中读取您的配置。
- envh - 管理环境变量的助手。
- fig - 用于从文件和环境变量(具有验证和默认值)读取配置的微型库。
- gcfg - 将 INI 风格的配置文件读入 Go 结构;支持用户定义的类型和子部分。
- genv - 使用 dotenv 支持轻松读取环境变量.
- go-aws-ssm - 从 AWS System Manager - Parameter Store 获取参数的 Go 包。
- go-conf - 基于注释结构的应用程序配置的简单库。它支持从环境变量、配置文件和命令行参数中读取配置。
- go-ini - 编组和解组 INI 文件的 Go 包。
- go-ssm-config - 用于从 AWS SSM(参数存储)加载配置参数的 Go 实用程序。
- go-up - 一个简单的配置库,具有递归占位符解析且没有魔法。
- goConfig - 将结构解析为输入,并使用来自命令行、环境变量和配置文件的参数填充该结构的字段。
- godotenv -Ruby 的 dotenv 库的 Go 端口(从加载环境变量
.env
)。 - gofigure -Go 应用程序配置变得简单。
- GoLobby/Config -GoLobby Config 是 Go 编程语言的轻量级但功能强大的配置管理器.
- gone/jconf - 模块化 JSON 配置。让您配置结构及其配置的代码,并将解析委托给子模块,而不会牺牲完整的配置序列化。
- gonfig - 基于标签的配置解析器,它将来自不同提供程序的值加载到类型安全结构中。
- gookit/config - 应用程序配置管理(加载、获取、设置)。支持 JSON、YAML、TOML、INI、HCL。多文件加载,数据覆盖合并。
- harvester - Harvester,一个易于使用的静态和动态配置包,支持播种、env vars 和 Consul 集成。
- hjson - 人类 JSON,人类的配置文件格式。宽松的语法,更少的错误,更多的评论。
- hocon - 用于使用 HOCON(一种人性化的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
- ingo - 标志保存在类似 ini 的配置文件中。
- ini - 用于读取和写入 INI 文件的 Go 包。
- ini - INI 解析器和写入库,解组到结构,编组到 Json,写入文件,监视文件。
- joshbetz/config -Go 的小型配置库,可解析环境变量、JSON 文件并在 SIGHUP 上自动重新加载。
- kelseyhightower/envconfig - 用于管理来自环境变量的配置数据的 Go 库。
- koanf - 轻量级、可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON、TOML、YAML、env、命令行的支持。
- konfig - 适用于分布式处理时代的 Go 的可组合、可观察和高性能配置处理。
- kong - 命令行解析器,支持任意复杂的命令行结构和其他配置源,例如 YAML、JSON、TOML 等(继任者
kingpin
)。 - mini - 用于解析 ini 样式配置文件的 Golang 包。
- nasermirzaei89/env - 用于读取环境变量的简单有用的包。
- nfigure - 来自命令行的基于每个库结构标签的配置(Posix 和 Go 风格);环境、JSON、YAML
- onion -Go 的基于层的配置,支持 JSON、TOML、YAML、属性、etcd、env 和使用 PGP 的加密。
- piper - 具有配置继承和密钥生成的 Viper 包装器.
- store -Go 的轻量级配置管理器。
- swap - 根据构建环境递归地实例化/配置结构。(YAML、TOML、JSON 和环境)。
- typenv - 简约、零依赖、类型化环境变量库。
- uConfig - 轻量级、零依赖和可扩展的配置管理。
- viper - 带有毒牙的 Go 配置。
- xdg -Go 实现XDG 基本目录规范和XDG 用户目录。
- xdg - 遵循XDG 标准的跨平台包。
持续集成
帮助持续集成的工具。
- CDS - 企业级 CI/CD 和 DevOps 自动化开源平台。
- drone -Drone 是一个建立在 Docker 上的持续集成平台,用 Go 编写。
- duci - 一个简单的 ci 服务器,不需要特定领域的语言。
- go-fuzz-action - 在 GitHub Actions 中使用 Go 1.18 的内置模糊测试。
- go-test-coverage - 当测试覆盖率低于设定阈值时报告问题的工具和 GitHub 操作。
- gomason - 从干净的工作区测试、构建、签名和发布您的 go 二进制文件。
- gotestfmt - 去测试人类的输出。
- goveralls - 集成 Coveralls.io 连续代码覆盖率跟踪系统。
- overalls - Multi-Package go project coverprofile 用于像 goveralls 这样的工具。
- roveralls - 递归覆盖测试工具。
- woodpecker -Woodpecker 是 Drone CI 系统的社区分支。
CSS 预处理器
用于预处理 CSS 文件的库。
- gcss - 纯 Go CSS 预处理器。
- go-libsass - 包装到 100% Sass 兼容的 libsass 项目。
数据结构和算法
位打包和压缩
- bingo - 将本机类型快速、零分配、保留词典顺序的包装打包为字节。
- binpacker - 二进制打包器和解包器帮助用户构建自定义二进制流。
- bit -Golang 设置数据结构,具有额外的位旋转功能。
- crunch -Go 包实现缓冲区以轻松处理各种数据类型。
- go-ef - Elias-Fano 编码的 Go 实现。
- roaring - 实现压缩位集的 Go 包。
位集
布隆和布谷鸟过滤器
- bloom - 实现 Bloom 过滤器的 Go 包。
- bloom - 在 Go 中实现的 Bloom 过滤器.
- bloom -Golang 布隆过滤器实现。
- bloomfilter -Go 中的另一个 Bloomfilter 实现,与 Java 的 Guava 库兼容。
- boomfilters - 用于处理连续、无界流的概率数据结构。
- cuckoo-filter - 布谷鸟过滤器:一个综合的布谷鸟过滤器,与其他工具相比,它是可配置的和空间优化的,并且提供了原始论文中提到的所有功能。
- cuckoofilter - 布谷鸟过滤器:在 Go 中实现的计数布隆过滤器的一个很好的替代品。
- ring - 执行高性能、线程安全的布隆过滤器。
数据结构和算法集合
- algorithms - 算法和数据结构。CLRS 研究。
- go-datastructures - 有用的、高性能的和线程安全的数据结构的集合。
- gods - 围棋数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet 等。
- gostl - go 的数据结构和算法库,旨在提供类似于 C++ STL 的功能。
迭代器
地图
另请参阅数据库了解更复杂的键值存储,以及树了解其他有序映射实现。
- cmap - 用于 go 的线程安全并发映射,支持用作
interface{}
键和自动扩展分片。 - dict -Go 的类似 Python 的字典(dict)。
- goradd/maps - 用于地图的 Go 1.18+ 通用地图界面;安全地图;有序地图;有序、安全的地图;ETC。
杂项数据结构和算法
- concurrent-writer - 高度并发的
bufio.Writer
. - conjungo - 一个小巧、强大且灵活的合并库。
- count-min-log - Go 实现 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用更少的内存)。
- fsm - 有限状态机包。
- genfuncs - 受 Kotlin 的 Sequence 和 Map 启发的 Go 1.18+ 泛型包.
- go-generics - 通用切片、映射、集合、迭代器和 goroutine 实用程序。
- go-geoindex - 内存中地理索引。
- go-rampart - 确定间隔如何相互关联。
- go-rquad - 具有高效点定位和邻居查找的区域四叉树。
- go-tuple -Go 1.18+ 的通用元组实现。
- go18ds - 使用 Go 1.18 泛型的 Go 数据结构。
- gofal -Go 的小数 api。
- gogu - 一个全面、可重用和高效的并发安全泛型实用函数和数据结构库。
- gota - 为 Go 实现数据帧、系列和数据整理方法。
- 隐藏- ID 类型与编组到/从散列以防止向客户端发送 ID。
- hilbert - 用于将值映射到空间填充曲线(例如 Hilbert 和 Peano 曲线)和从空间填充曲线映射值的 Go 包。
- hyperloglog - 具有稀疏、LogLog-Beta 偏差校正和 TailCut 空间减少的 HyperLogLog 实现。
- 四叉树- 通用、零分配、100% 测试覆盖的四叉树。
- 切片- 对切片进行操作的函数;喜欢
package strings
但适用于切片。 - slices - 切片的纯通用函数。
可空类型
队列
- deque - 高度优化的双端队列。
- deque - 快速环形缓冲区双端队列(双端队列)。
- goconcurrentqueue - 并发 FIFO 队列。
- memlog - 受 Apache Kafka 启发的易于使用、轻量级、线程安全且仅附加的内存数据结构。
- queue -Go 的多线程安全、通用队列实现。
套
- dsu -Go 中的不相交集数据结构实现。
- golang-set -Go 的线程安全和非线程安全高性能集。
- goset - 一个有用的 Go 集合集合实现。
- set - 使用 LinkedHashMap 在 Go 中实现简单的集合数据结构。
文本分析
- bleve - 用于 go 的现代文本索引库。
- go-adaptive-radix-tree - 自适应基数树的 Go 实现。
- go-edlib - 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
- levenshtein - Levenshtein 距离和相似性度量,具有可自定义的编辑成本和类似 Winkler 的公共前缀奖励.
- levenshtein - 在 Go 中计算 levenshtein 距离的实现。
- mspm - 用于信息检索的多字符串模式匹配算法。
- parsefields - 用于解析类似 JSON 的日志以收集唯一字段和事件的工具。
- ptrie - 前缀树的实现。
- trie -Go 中的 Trie 实现。
树木
- hashsplit - 将字节流拆分成块,并将块排列成树,边界由内容决定,而不是位置。
- merkle - Merkle 根哈希和包含证明的空间高效计算.
- skiplist - 非常快速的 Go Skiplist 实现。
- skiplist -Go 中的 Skiplist 实现。
- treap - 使用树堆的持久、快速有序的地图。
- treemap - 使用引擎盖下的红黑树的通用键排序映射。
管道
- ordered-concurrently - 并发处理工作并按输入顺序在通道中返回输出的 Go 模块。
- parapipe - FIFO 管道,它在每个阶段并行执行,同时保持消息和结果的顺序。
- pipeline - 具有扇入和扇出的管道的实现。
数据库
缓存
具有过期记录的数据存储、内存分布式数据存储或基于文件的数据库的内存子集。
- 2q - 2Q 内存缓存实现。
- bcache - 最终一致的分布式内存缓存 Go 库。
- BigCache - 千兆字节数据的高效键/值缓存。
- cache - 内存中的键:具有过期时间的值存储,0 依赖性,<100 LoC,100% 覆盖率。
- cache2go - 内存中的键:值缓存,支持基于超时的自动失效。
- cachego - 用于多个驱动程序的 Golang 缓存组件。
- clusteredBigCache - 具有集群支持和单个项目过期的 BigCache。
- couchcache - 由 Couchbase 服务器支持的 RESTful 缓存微服务。
- fastcache - 用于大量条目的快速线程安全内存缓存。最小化 GC 开销。
- GCache - 支持过期缓存、LFU、LRU 和 ARC 的缓存库。
- gdcache - 一个由 golang 实现的纯非侵入式缓存库,你可以用它来实现你自己的分布式缓存。
- go-cache - 一个灵活的多层 Go 缓存库,通过采用 Cache-Aside 模式处理内存和共享缓存。
- go-mcache - 快速内存中键:值存储/缓存库。指针缓存。
- gocache - 一个完整的 Go 缓存库,具有多个存储(内存、内存缓存、redis 等)、可链接、可加载、指标缓存等。
- groupcache - Groupcache 是一个缓存和缓存填充库,在许多情况下旨在替代 memcached。
- imcache - 一个通用的内存缓存 Go 库。它支持过期、滑动过期、最大条目限制、驱逐回调和分片。
- nscache - 一个支持多数据源驱动的 Go 缓存框架。
- remember-go - 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或内存中支持)。
- theine - 高性能,接近最佳的内存缓存,具有主动 TTL 到期和泛型。
- timedmap - 具有过期键值对的映射。
- ttlcache - 具有项目过期和泛型的内存缓存。
- ttlcache - 内存中的键值存储,每条记录都有 TTL。
Go 中实现的数据库
- badger -Go 中的快速键值存储。
- bbolt - Go 的嵌入式键/值数据库。
- Bitcask - Bitcask 是一种可嵌入、持久且快速的键值 (KV) 数据库,采用纯 Go 语言编写,具有可预测的读/写性能、低延迟和高吞吐量,这要归功于 bitcask 磁盘布局 (LSM+WAL)。
- buntdb - 用于 Go 的快速、可嵌入、内存中键/值数据库,具有自定义索引和空间支持。
- 三叶草- 用纯 Golang 编写的轻量级面向文档的 NoSQL 数据库。
- cockroach - 可扩展、地理复制、事务性数据存储。
- Coffer - 支持事务的简单 ACID 键值数据库。
- column - 具有位图索引和事务的高性能、柱状、可嵌入的内存存储。
- CovenantSQL - CovenantSQL 是区块链上的 SQL 数据库。
- Databunker - 为遵守 GDPR 和 CCPA 而构建的个人身份信息 (PII) 存储服务。
- dgraph - 可扩展、分布式、低延迟、高吞吐量图形数据库。
- diskv - 本地磁盘支持的键值存储。
- dolt - Dolt – 它是用于数据的 Git.
- dtf - 分布式事务管理器。支持 XA、TCC、SAGA、可靠消息。
- eliasdb - 具有 REST API、短语搜索和类似 SQL 查询语言的无依赖性事务图形数据库。
- godis - Golang 实现的高性能 Redis 服务器和集群。
- goleveldb - 在 Go 中实现LevelDB键/值数据库。
- hare - 一个简单的数据库管理系统,将每个表存储为以行分隔的 JSON 文本文件。
- immudb - immudb 是一个轻量级、高速的不可变数据库,适用于用 Go 编写的系统和应用程序。
- influxdb - 用于指标、事件和实时分析的可扩展数据存储。
- ledisdb -Ledisdb 是一种高性能 NoSQL,类似于基于 LevelDB 的 Redis。
- levigo -Levigo 是 LevelDB 的 Go 包装器.
- libradb - LibraDB 是一个简单的数据库,只有不到 1000 行代码供学习。
- lotusdb - 与 lsm 和 b+tree 兼容的快速 k/v 数据库。
- Milvus - Milvus 是一个用于嵌入管理、分析和搜索的矢量数据库.
- moss -Moss 是一个简单的 LSM 键值存储引擎,用 100% Go 编写。
- nutsdb -Nutsdb 是一个简单、快速、可嵌入、持久的键/值存储,用纯 Go 编写。它支持完全可序列化的事务和许多数据结构,如列表、集合、有序集合。
- objectbox-go - 带有 Go API 的高性能嵌入式对象数据库 (NoSQL)。
- piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎。
- pogreb - 用于读取繁重工作负载的嵌入式键值存储。
- prometheus - 监控系统和时间序列数据库。
- pudge - 使用 Go 的标准库编写的快速简单的键/值存储。
- rosedb - 基于 LSM+WAL 的嵌入式 kv 数据库,支持 string、list、hash、set、zset。
- rqlite - 基于 SQLite 构建的轻量级分布式关系数据库。
- tempdb - 临时项目的键值存储。
- tidb - TiDB 是一个分布式 SQL 数据库。灵感来自 Google F1 的设计。
- tiedot - 由 Golang 提供支持的 NoSQL 数据库。
- unitdb - 用于物联网、实时消息传递应用程序的快速时间序列数据库。使用 github.com/unit-io/unitd 应用程序通过 tcp 或 websocket 通过 pubsub 访问 unitdb。
- Vasto - 分布式高性能键值存储。在磁盘上。最终一致。哈。能够在不中断服务的情况下增长或收缩。
- VictoriaMetrics - 快速、资源高效且可扩展的开源时间序列数据库。可用作 Prometheus 的长期远程存储。支持 PromQL。
数据库架构迁移
- atlas - 数据库工具包。旨在帮助公司更好地处理数据的 CLI。
- avro - 发现 SQL 模式并将它们转换为 AVRO 模式。将 SQL 记录查询为 AVRO 字节。
- bytebase - 用于 DevOps 团队的安全数据库模式更改和版本控制。
- darwin -Go 的数据库模式演化库。
- dbmate - 轻量级、框架不可知的数据库迁移工具。
- go-fixtures - 用于 Golang 出色的内置数据库/sql 库的 Django 风格固定装置。
- go-pg-migrate - 用于 go-pg 迁移管理的 CLI 友好包。
- go-pg-migrations - 一个 Go 包,用于帮助使用 go-pg/pg 编写迁移。
- goavro - 一个对 Avro 数据进行编码和解码的 Go 包。
- godfish - 数据库迁移管理器,使用本机查询语言。支持 cassandra、mysql、postgres、sqlite3。
- goose - 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。
- gorm-seeder -Gorm ORM 的简单数据库播种机。
- gormigrate -Gorm ORM 的数据库模式迁移助手。
- libschema - 在每个库中分别定义您的迁移。开源库的迁移。MySQL 和 PostgreSQL。
- 迁移- 数据库迁移。CLI 和 Golang 库。
- migrator - 非常简单的 Go 数据库迁移库。
- migrator - MySQL 数据库迁移器,旨在运行迁移到您的功能并使用直观的 go 代码管理数据库模式更新。
- schema - 用于在 Go 二进制文件中嵌入数据库/sql 兼容数据库的模式迁移的库。
- skeema - 用于 MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。
- soda - 用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。
- sql-migrate - 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。
- sqlize - 数据库迁移生成器。允许通过区分模型和现有 sql 来生成 sql 迁移。
数据库工具
- chproxy - ClickHouse 数据库的 HTTP 代理。
- clickhouse-bulk - 收集小插入并将大请求发送到 ClickHouse 服务器。
- datagen - 一种快速数据生成器,支持多表并支持多行 DML。
- dbbench - 支持多个数据库和脚本的数据库基准测试工具。
- dynago - 简化使用 AWS DynamoDB 的工作。
- go-mysql - 用于处理 MySQL 协议和复制的 Go 工具集。
- go-mysql-elasticsearch - 自动将您的 MySQL 数据同步到 Elasticsearch。
- hasql - 用于访问多主机 SQL 数据库安装的库。
- kingshard -kingshard 是由 Golang 提供支持的 MySQL 的高性能代理。
- octillery - 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL)。
- onedump - 使用一个命令和配置将数据库从不同的驱动程序备份到不同的目的地。
- orchestrator -MySQL 复制拓扑管理器和可视化器。
- pg_timetable - PostgreSQL 的高级调度。
- pgweb - 基于 Web 的 PostgreSQL 数据库浏览器。
- prep - 在不更改代码的情况下使用准备好的 SQL 语句。
- perst - 简化和加速开发,⚡在任何现有或新的 Postgres 应用程序上即时、实时、高性能。
- rdb - 用于二次开发和内存分析的 Redis RDB 文件解析器。
- rwdb - rwdb 为多个数据库服务器设置提供只读副本功能。
- vitess - vitess 提供服务器和工具,有助于为大规模 Web 服务扩展 MySQL 数据库。
SQL 查询生成器
用于构建和使用 SQL 的库。
- bqb - 轻量级且易于学习的查询构建器。
- buildsqlx - 用于 PostgreSQL 的 Go 数据库查询构建器库。
- builq - 在 Go 中轻松构建 SQL 查询。
- dbq - Go 的零样板数据库操作。
- Dotsql - 帮助您将 sql 文件保存在一个地方并轻松使用它们的 Go 库。
- gendry - 非侵入式 SQL 构建器和强大的数据绑定器。
- godbal - 用于 go 的数据库抽象层 (dbal)。支持 SQL 生成器并轻松获得结果。
- goqu - 惯用的 SQL 构建器和查询库。
- gosql - 具有更好的空值支持的 SQL 查询构建器。
- igor - PostgreSQL 的抽象层,支持高级功能并使用类似 gorm 的语法。
- jet - 在 Go 中编写类型安全的 SQL 查询的框架,能够轻松地将数据库查询结果转换为所需的任意对象结构。
- ormlite - 轻量级包,包含一些类似 ORM 的功能和 sqlite 数据库的帮助程序。
- ozzo-dbx - 强大的数据检索方法以及与数据库无关的查询构建功能。
- qry - 使用原始 SQL 查询从文件生成常量的工具。
- sg - 用于生成用 Go 编写的标准 SQL(支持:CRUD)的 SQL Gen。
- sq -Go 的类型安全 SQL 构建器和结构映射器。
- sqlc - 从 SQL 生成类型安全的代码。
- sqlf - 快速 SQL 查询生成器。
- sqlingo - 用于在 Go 中构建 SQL 的轻量级 DSL。
- sqrl - SQL 查询生成器,具有改进性能的 Squirrel 的分支。
- Squalus - Go SQL 包上的薄层,可以更轻松地执行查询。
- Squirrel - 帮助您构建 SQL 查询的 Go 库。
- xo - 根据现有模式定义或支持 PostgreSQL、MySQL、SQLite、Oracle 和 Microsoft SQL Server 的自定义查询为数据库生成惯用的 Go 代码。
数据库驱动程序
多个后端的接口
- cayley - 支持多个后端的图形数据库。
- dsc - SQL、NoSQL、结构化文件的数据存储连接。
- go-transaction-manager - 具有多个适配器(sql、sqlx、gorm、mongo 等)的事务管理器控制事务边界。
- gokv - Go 的简单键值存储抽象和实现(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等等)。
关系数据库驱动程序
- avatica - 用于数据库/sql 的 Apache Avatica/Phoenix SQL 驱动程序。
- bgc - 用于 BigQuery 的数据存储区连接。
- firebirdsql - 用于 Go 的 Firebird RDBMS SQL 驱动程序。
- go-adodb - 用于使用数据库/sql 的 go 的 Microsoft ActiveX 对象数据库驱动程序。
- go-mssqldb - 用于 Go 的 Microsoft MSSQL 驱动程序。
- go-oci8 - 使用数据库/sql 的 go Oracle 驱动程序。
- go-sql-driver/mysql - Go 的 MySQL 驱动程序。
- go-sqlite3 - 使用数据库/sql 的 SQLite3 驱动程序。
- godror -Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。
- gofreetds - 微软 MSSQL 驱动程序。对FreeTDS进行包装。
- KSQL - 一个简单而强大的 Golang SQL 库
- pgx - PostgreSQL 驱动程序支持的功能超出了数据库/sql 公开的功能。
- pig - 简单的pgx包装器,可以轻松执行和扫描查询结果。
- pq - 用于数据库/sql 的纯 Go Postgres 驱动程序。
- Sqinn-Go - 带有纯 Go 的 SQLite.
- sqlhooks - 将挂钩附加到任何数据库/sql 驱动程序。
- ydb-go-sdk - 本机和数据库/sql 驱动程序 YDB(Yandex 数据库)
NoSQL 数据库驱动程序
- aerospike-client-go -Go 语言的 Aerospike 客户端。
- arangolite - 用于 ArangoDB 的轻量级 golang 驱动程序。
- asc - 用于 Aerospike for go 的数据存储连接.
- forestdb - ForestDB 的 Go 绑定。
- go-couchbase -Go 中的 Couchbase 客户端。
- go-pilosa - Pilosa 的 Go 客户端库。
- go-rejson - 使用 Redigo golang 客户端的 redislabs ReJSON 模块的 Golang 客户端。在 Redis 中将结构作为 JSON 对象轻松存储和操作。
- gocb - 官方 Couchbase Go SDK.
- gocosmos
database/sql
- Azure Cosmos DB 的REST 客户端和标准驱动程序。 - gocql -Apache Cassandra 的 Go 语言驱动程序。
- godis - 受绝地武士启发,由 golang 实现的 redis 客户端。
- godscache - Google Cloud Platform Go Datastore 包的包装器,使用 memcached 添加缓存。
- gomemcache - Go 编程语言的内存缓存客户端库。
- gorethink -RethinkDB 的 Go 语言驱动程序。
- goriak -Riak KV 的 Go 语言驱动程序。
- Kivik -Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库。
- mgm - 用于 Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序)。
- mgo -(未维护)用于 Go 语言的 MongoDB 驱动程序,它在遵循标准 Go 习语的非常简单的 API 下实现了丰富且经过良好测试的功能选择。
- mongo-go-driver -Go 语言的官方 MongoDB 驱动程序。
- neo4j - Golang 的 Neo4j Rest API 绑定.
- Neo4j-GO -golang 中的 Neo4j REST 客户端.
- neoism -Golang 的 Neo4j 客户端.
- qmgo - 用于 Go 的 MongoDB 驱动程序。它基于官方 MongoDB 驱动程序,但更易于使用,如 Mgo。
- redeo -Redis 协议兼容的 TCP 服务器/服务。
- redigo - Redigo 是 Redis 数据库的 Go 客户端。
- redis -Golang 的 Redis 客户端。
- rueidis - 具有自动流水线和服务器辅助客户端缓存的快速 Redis RESP3 客户端。
- xredis - 类型安全、可定制、干净且易于使用的 Redis 客户端。
搜索和分析数据库
- elastic -Go 的 Elasticsearch 客户端。
- elasticsql - 在 Go 中将 sql 转换为 elasticsearch dsl.
- elastigo - Elasticsearch 客户端库。
- go-elasticsearch -Go 的官方 Elasticsearch 客户端。
- goes - 与 Elasticsearch 交互的库。
- skizze - 概率数据结构服务和存储。
日期和时间
用于处理日期和时间的库。
- carbon - 用于日期时间的简单、语义化且对开发人员友好的 golang 包。
- carbon - 带有很多实用方法的简单时间扩展,从 PHP Carbon 库移植而来。
- cronrange - 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。
- date - 用于处理日期、日期范围、时间跨度、期间和一天中的时间的 Augments Time。
- dateparse - 在事先不知道格式的情况下解析日期。
- durafmt -Go 的持续时间格式化库。
- feiertage - 一组用于计算德国公共假期的函数,包括。专门研究德国各州 (Bundesländer)。像复活节、五旬节、感恩节...
- go-anytime - 在事先不知道格式的情况下解析日期/时间,如“下一个 12 月 22 日下午 3 点”,范围如“从今天到下星期四”。
- go-persian-calendar - Go (golang) 中波斯语(Solar Hijri)日历的实现。
- go-str2duration - 将字符串转换为持续时间。支持 time.Duration 返回字符串等。
- go-sunrise - 计算给定位置的日出和日落时间。
- go-week - 使用 ISO8601 周日期的高效软件包。
- gostradamus - 用于处理日期的 Go 包。
- iso8601 - 无需正则表达式即可有效解析 ISO8601 日期时间.
- kair - 日期和时间 - Golang 格式化库。
- now -Now 是 golang 的时间工具包。
- NullTime - 可为空
time.Time
。 - strftime - C99 兼容的 strftime 格式化程序。
- timespan - 用于与时间间隔交互,定义为开始时间和持续时间。
- timeutil - golang 时间包的有用扩展(Timedelta、Strftime 等)。
- tuesday -Ruby 兼容的 Strftime 函数.
分布式系统
帮助构建分布式系统的包。
- arpc - 更有效的网络通信,支持双向调用、通知、广播。
- celeriac - 用于添加对在 Go 中交互和监控 Celery 工作人员、任务和事件的支持的库。
- consistent - 具有有限负载的一致散列。
- consistenthash - 具有可配置副本的一致哈希。
- dht - BitTorrent Kademlia DHT 实现.
- digota -grpc 电子商务微服务。
- dot - 使用操作转换/OT 的分布式同步。
- doublejump - 改进后的 Google 跳跃一致性哈希。
- dragonboat - Go 中功能完整且高性能的多组 Raft 库。
- Dragonfly - 基于p2p技术提供高效、稳定、安全的文件分发和图片加速,成为云原生架构的最佳实践和标准方案。
- drmaa - 基于 DRMAA 标准的集群调度程序的作业提交库。
- dynamolock - DynamoDB 支持的分布式锁定实现。
- dynatomic - 将 DynamoDB 用作原子计数器的库。
- emitter-io - 使用 MQTT、Websockets 和 love 构建的高性能、分布式、安全和低延迟的发布-订阅平台。
- failed - 分布式系统的自适应应计故障检测器。
- flowgraph - 基于流的编程包。
- gleam - 用纯 Go 和 Luajit 编写的快速且可扩展的分布式 map/reduce 系统,结合了 Go 的高并发性和 Luajit 的高性能,独立运行或分布式运行。
- glow - 易于使用的可扩展分布式大数据处理、Map-Reduce、DAG 执行,全部采用纯 Go 语言。
- gmsec - Go 分布式系统开发框架。
- go-doudou - 基于八卦协议和 OpenAPI 3.0 规范的去中心化微服务框架。专注于低代码和快速开发的内置 go-doudou cli 可以提高您的工作效率。
- go-health - 用于在您的服务中启用异步依赖项健康检查的库。
- go-jump - Google 的“Jump”一致性哈希函数的端口。
- go-kit - 支持服务发现、负载均衡、可插拔传输、请求跟踪等的微服务工具包。
- go-micro - 分布式系统开发框架。
- go-mysql-lock - 基于 MySQL 的分布式锁。
- go-pdu - 一个分散的基于身份的社交网络。
- go-sundheit - 一个为 golang 服务定义异步服务健康检查提供支持的库。
- go-zero - 一个 web 和 rpc 框架。它的诞生是为了以弹性设计确保繁忙站点的稳定性。内置 goctl 大大提高了开发效率。
- gorpc - 用于高负载的简单、快速和可扩展的 RPC 库。
- grpc-go - gRPC 的 Go 语言实现。基于 HTTP/2 的 RPC。
- hprose - 非常新的 RPC 库,现在支持 25 种以上的语言。
- jsonrpc - jsonrpc 包有助于实现 JSON-RPC 2.0.
- jsonrpc -JSON-RPC 2.0 HTTP 客户端实现。
- Kitex - 一个高性能和强扩展性的 Golang RPC 框架,帮助开发者构建微服务。如果您在开发微服务时主要关注性能和可扩展性,那么 Kitex 是一个不错的选择。
- Kratos - Go 中模块化设计且易于使用的微服务框架。
- liftbridge - 用于 NATS 的轻量级、容错消息流。
- lura - 带有中间件的超高性能 API 网关框架。
- micro - 用于云及其他领域的分布式系统运行时。
- NATS - 用于微服务、物联网和云原生系统的轻量级、高性能消息传递系统。
- outboxer - Outboxer 是一个实现发件箱模式的 go 库。
- pglock - PostgreSQL 支持的分布式锁定实现。
- pjrpc - 具有 Protobuf 规范的 Golang JSON-RPC 服务器客户端。
- raft - Raft 共识协议的 Golang 实现,由 HashiCorp 提供。
- raft - 由 CoreOS 执行 Raft 共识协议。
- rain - BitTorrent 客户端和库。
- redis-lock - 使用 Redis 的简化分布式锁定实现。
- resgate - 用于构建 REST、实时和 RPC API 的实时 API 网关,所有客户端都在其中无缝同步。
- ringpop-go - 用于 Go 应用程序的可扩展、容错的应用程序层分片。
- rpcx - 类似阿里巴巴 Dubbo 的分布式可插拔 RPC 服务框架。
- 信号量- 一个简单的(微)服务编排器。
- sleuth - 用于 HTTP 服务之间的无主 p2p 自动发现和 RPC 的库(使用ZeroMQ)。
- torrent - BitTorrent 客户端包。
动态域名系统
更新动态 DNS 记录的工具。
- DDNS - 以数字海洋网络 DNS 作为后端的个人 DDNS 客户端。
- dyndns - 后台程序定期自动检查您的 IP 地址,并在您的地址发生变化时更新(一个或多个)Google 域的动态 DNS 记录。
- GoDNS - 动态 DNS 客户端工具,支持 DNSPod 和 HE.net,用 Go 编写。
电子邮件
实现电子邮件创建和发送的库和工具。
- chasquid - 用 Go 编写的 SMTP 服务器。
- douceur - 用于 HTML 电子邮件的 CSS 内联器。
- email - 一个强大而灵活的 Go 电子邮件库。
- email-verifier - 用于电子邮件验证的 Go 库,无需发送任何电子邮件。
- go-dkim - DKIM 库,用于签署和验证电子邮件。
- go-email-normalizer - 用于提供电子邮件地址规范表示的 Golang 库。
- go-email-validator - 用于语法、一次性、smtp 等...检查的模块化电子邮件验证器。
- go-imap - 用于客户端和服务器的 IMAP 库。
- go-mail - 一个简单的 Go 库,用于在 Go 中发送邮件。
- go-message - 用于 Internet 消息格式和邮件消息的流媒体库。
- go-premailer -Go 中 HTML 邮件的内联样式。
- go-simple-mail - 非常简单的包,用于发送带有 SMTP Keep Alive 和两个超时的电子邮件:连接和发送。
- Hectane - 提供 HTTP API 的轻量级 SMTP 客户端.
- hermes - 生成干净、响应迅速的 HTML 电子邮件的 Golang 包。
- mailchain - 将加密的电子邮件发送到用 Go 编写的区块链地址。
- mailgun-go - 用于使用 Mailgun API 发送邮件的 Go 库。
- MailHog - 使用 Web 和 API 接口进行电子邮件和 SMTP 测试。
- Mailpit - 面向开发人员的电子邮件和 SMTP 测试工具。
- mailx - Mailx 是一个库,可以更轻松地通过 SMTP 发送电子邮件. 它是 golang 标准库的增强版
net/smtp
。 - SendGrid -SendGrid 用于发送电子邮件的 Go 库。
- smtp - SMTP 服务器协议状态机。
- smtpmock - 轻量级可配置多线程假 SMTP 服务器。为您的测试环境模仿任何 SMTP 行为。
- truemail-go - 可配置的 Golang 电子邮件验证器/验证器。通过 Regex、DNS、SMTP 等验证电子邮件。
嵌入式脚本语言
在你的代码中嵌入其他语言。
- anko - 用 Go 编写的脚本解释器。
- binder - 转到基于gopher-lua的 Lua 绑定库。
- cel-go - 快速、便携、非图灵完整的表达式评估,逐步打字。
- ecal - 一种支持并发事件处理的简单可嵌入脚本语言。
- expr -Go 的表达式评估引擎:快速、非图灵完备、动态类型、静态类型。
- gentee - 可嵌入的脚本编程语言。
- gisp -Go 中的简单 LISP.
- go-duktape -Go 的 Duktape JavaScript 引擎绑定.
- go-lua - 将 Lua 5.2 VM 移植到纯 Go。
- go-php -Go 的 PHP 绑定。
- go-python - 天真的去绑定到 CPython C-API。
- goja -Go 中的 ECMAScript 5.1(+) 实现.
- golua - Lua C API 的 Go 绑定。
- gopher-lua - 用 Go 编写的 Lua 5.1 VM 和编译器。
- gval - 用 Go 编写的高度可定制的表达式语言。
- metacall - 支持 NodeJS、JavaScript、TypeScript、Python、Ruby、C#、WebAssembly、Java、Cobol 等的跨平台多语言运行时。
- ngaro - 可嵌入的 Ngaro VM 实现在 Retro 中启用脚本。
- prolog - 可嵌入的 Prolog。
- purl -Go 中嵌入的 Perl 5.18.2.
- starlark-go - Starlark 的 Go 实现:具有确定性评估和密封执行的类 Python 语言。
- tengo - 用于 Go 的字节码编译脚本语言。
错误处理
用于处理错误的库。
- emperror - Go 库和应用程序的错误处理工具和最佳实践。
- eris - 在 Go 中处理、跟踪和记录错误的更好方法。与标准错误库和 github.com/pkg/errors 兼容。
- errlog - 可破解的包,用于确定错误的源代码(以及其他一些快速调试功能)。可就地插入任何记录器。
- errors - 标准库错误包和 github.com/pkg/errors 的直接替换。提供各种错误处理原语。
- errors - 提供简单错误处理原语的包。
- errors - 使用分类原语进行简单的 golang 错误处理。
- errors - 最简单的错误包装器,具有出色的性能和最小的内存开销。
- errors - 内置 Go 错误的直接替换。这是一个最小的错误处理包,具有自定义错误类型、用户友好消息、Unwrap & Is。具有非常易于使用和直接的辅助功能。
- errors - 通过网络进行错误移植的 Go 错误库。
- errorx - 一个功能丰富的错误包,包含堆栈跟踪、错误组合等。
- exception - 一个简单的实用程序包,用于在 Golang 中使用 try-catch 进行异常处理。
- Falcon - 一个简单但功能强大的错误处理包。
- Fault - 一种用于包装错误的符合人体工程学的机制,以促进错误值的结构化元数据和上下文。
- go-multierror - Go (golang) 包,用于将错误列表表示为单个错误。
- tracerr - 堆栈跟踪和源代码片段的 Golang 错误。
文件处理
用于处理文件和文件系统的库。
- afero -Go 的文件系统抽象系统。
- afs -Go 的抽象文件存储(mem、scp、zip、tar、cloud:s3、gs)。
- baraka - 一个轻松处理 http 文件上传的库。
- bigfile - 文件传输系统,支持使用 http api、rpc 调用和 ftp 客户端管理文件。
- 校验和- 为大文件计算消息摘要,如 MD5、SHA256、SHA1、CRC 或 BLAKE2s。
- copy - 递归复制目录。
- flop - 旨在与GNU cp镜像功能奇偶校验的文件操作库。
- gdu - 带有控制台界面的磁盘使用分析器。
- go-csv-tag - 使用标签加载 csv 文件。
- go-decent-copy - 为人类复制文件。
- go-exiftool - ExifTool 的 Go 绑定,这是一个著名的库,用于从文件(图片、PDF、office 等)中提取尽可能多的元数据(EXIF、IPTC 等)。
- go-gtfs - 在 go 中加载 gtfs 文件。
- gofs - 开箱即用的文件同步工具。
- gut/yos - 简单可靠的文件操作包,如文件、目录和符号链接上的复制/移动/差异/列表。
- higgs - 一个小型的跨平台 Go 库,用于隐藏/取消隐藏文件和目录。
- notify - 具有简单 API 的文件系统事件通知库,类似于 os/signal。
- opc - 为 Go 加载开放打包约定 (OPC) 文件。
- parquet - 读写parquet文件。
- pathtype - 将路径视为它们自己的类型而不是使用字符串。
- pdfcpu -PDF 处理器。
- skywalker - 允许一个人轻松地同时通过文件系统的软件包。
- stl - 用于读取和写入 STL(立体光刻)文件的模块。读取并发算法。
- tarfs - tar 文件
FileSystem
接口的实现。 - todotxt - Gina Trapani 的todo.txt文件的 Go 库,支持解析和操作todo.txt格式的任务列表。
- vfs - 适用于 Go 的一组可插入、可扩展和固定的文件系统功能,适用于多种文件系统类型,例如 os、S3 和 GCS。
金融的
会计和财务软件包。
- accounting - golang 的货币和货币格式。
- ach - 自动清算所 (ACH) 文件的读取器、写入器和验证器。
- bbgo - 用 Go 编写的加密货币交易机器人框架。包括常见的加密货币交易所 API、标准指标、回溯测试和许多内置策略。
- currency - 处理货币金额,提供货币信息和格式。
- currency - 高性能和准确的货币计算包。
- decimal - 任意精度定点十进制数。
- fpdecimal - 小定点小数的快速和精确的序列化和算术
- fpmoney - 快速简单的 ISO4217 定点十进制货币。
- go-finance - 货币时间价值(年金)、现金流、利率转换、债券和折旧计算的金融函数库。
- go-finance - 用于获取汇率、通过 VIES 检查增值税号和检查 IBAN 银行帐号的模块。
- go-finnhub - 来自 finnhub.io 的股票市场、外汇和加密数据的客户端。从 60 多家证券交易所、10 家外汇经纪商和 15 多家加密货币交易所访问实时金融市场数据。
- go-money - 福勒货币模式的实施。
- ofxgo - 查询 OFX 服务器和/或解析响应(使用示例命令行客户端)。
- orderbook -Golang 中的限价订单簿匹配引擎。
- payme - 用于 SEPA 付款的 QR 码生成器(ASCII 和 PNG)。
- sleet - 多个支付服务提供商 (PsP) 处理在线支付的统一界面。
- techan - 具有高级市场分析和交易策略的技术分析库。
- ticker - 终端股票观察者和股票头寸跟踪器。
- transaction - 嵌入式账户交易数据库,以多线程模式运行。
- 增值税- 增值税号验证和欧盟增值税税率。
形式
用于处理表单的库。
- bind - 将表单数据绑定到任何 Go 值。
- 绑定- 将来自 net/http 请求的表单和 JSON 数据绑定到结构。
- conform - 检查用户输入。根据结构标签修剪、清理和清理数据。
- form - 将 url.Values 解码为 Go 值并将 Go 值编码为 url.Values。双阵列和全地图支持。
- formam - 将表单的值解码为结构。
- forms - 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON 数据。
- gbind - 将数据绑定到任何 Go 值。可以使用内置和自定义表达式绑定功能;支持数据校验
- gorilla/csrf -Go web 应用程序和服务的 CSRF 保护。
- httpin - 将 HTTP 请求解码为自定义结构,包括查询字符串、表单、HTTP 标头等。
- nosurf -Go 的 CSRF 保护中间件。
- qs - 用于将结构编码为 URL 查询参数的 Go 模块。
- queryparam - 解码
url.Values
为标准或自定义类型的可用结构值。
功能性
支持 Go 中函数式编程的包。
- fp-go - 由 Golang 1.18+ 泛型提供支持的函数式编程助手集合。
- fpGo - Monad,Golang 的函数式编程功能。
- fuego -Go 中的功能实验。
- go-underscore - 有用的 Go 集合实用程序的有用集合。
- gofp - 类似 lodash 的强大 Golang 实用程序库。
- mo - Monads 和流行的 FP 抽象,基于 Go 1.18+ Generics(Option,Result,Either ...)。
- underscore -Go 1.18 及更高版本的函数式编程助手。
- valor - 可选地包含值的通用选项和结果类型。
游戏开发
很棒的游戏开发库。
- Azul3D - 用 Go 编写的 3D 游戏引擎。
- Ebitengine - Go 中非常简单的 2D 游戏引擎。
- engo - Engo 是一个用 Go 编写的开源 2D 游戏引擎。它遵循实体-组件-系统范式。
- fantasyname - 幻想名称生成器。
- g3n - Go 3D 游戏引擎。
- go-astar -A * 路径查找算法的 Go 实现。
- go-sdl2 -简单 DirectMedia 层的 Go 绑定。
- go3d - 用于 Go 的面向性能的 2D/3D 数学包。
- gonet - 使用 golang 实现的游戏服务器框架。
- goworld - 可扩展的游戏服务器引擎,具有空间实体框架和热插拔。
- Harfang3D - Go 语言的 3D 引擎,适用于 Windows 和 Linux(Go.dev 上的 Harfang)。
- Leaf - 轻量级游戏服务器框架。
- nano - 轻量级、设施化、高性能的基于 golang 的游戏服务器框架。
- Oak - 纯围棋游戏引擎。
- Pitaya - 可扩展的游戏服务器框架,通过 C SDK 为 iOS、Android、Unity 等提供集群支持和客户端库。
- Pixel -Go 中手工制作的 2D 游戏库.
- prototype - 跨平台(Windows/Linux/Mac)库,用于使用最少的 API 创建桌面游戏。
- raylib-go - raylib的 Go 绑定,这是一个简单易用的库,用于学习视频游戏编程。
- termloop - 基于终端的围棋游戏引擎,建立在 Termbox 之上。
- tile - 面向数据且缓存友好的 2D 网格库 (TileMap),包括寻路、观察者和导入/导出。
发电机
生成 Go 代码的工具。
- convergen - 功能丰富的类型到类型的复制代码生成器。
- copygen - 无需反射即可生成类型到类型和基于类型的代码。
- generis - 提供泛型、自由格式宏、条件编译和 HTML 模板的代码生成工具。
- go-enum - 从代码注释中为枚举生成代码。
- go-linq - 用于 Go 的类似于 .NET LINQ 的查询方法。
- goderive - 从输入类型派生函数。
- gotype - Golang 源代码解析,用法类似于 reflect 包。
- goverter - 通过定义接口生成转换器。
- GoWrap - 使用简单模板为 Go 接口生成装饰器。
- interfaces - 用于生成接口定义的命令行工具。
- jennifer - 生成没有模板的任意 Go 代码。
- typeregistry - 动态创建类型的库。
地理的
地理工具和服务器
- geoserver -geoserver 是一个用于通过 GeoServer REST API 操作 GeoServer 实例的 Go 包。
- gismanager - 将您的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver。
- godal -GDAL 的包装器。
- H3 - 用于 H3 的 Go 绑定,H3 是一个分层的六边形地理空间索引系统。
- H3 GeoJSON - H3 索引和 GeoJSON 之间的转换实用程序。
- H3GeoDist - 按虚拟节点分布 Uber H3geo 单元。
- mbtileserver - 一个简单的基于 Go 的服务器,用于以 mbtiles 格式存储的地图图块。
- osm - 用于读取、写入和使用 OpenStreetMap 数据和 API 的库。
- pbf -OpenStreetMap PBF golang 编码器/解码器。
- S2 geojson - 将 geojson 转换为 s2 单元格并在地图上演示一些 S2 几何特征。
- S2 geometry -Go 中的 S2 几何库.
- simplefeatures - simplesfeatures 是一个 2D 几何库,它提供了对几何建模的 Go 类型,以及对它们进行操作的算法。
- Tile38 - 具有空间索引和实时地理围栏的地理定位数据库。
- Web-Mercator-Projection一个使用 Web Mercator Projection 在地图中轻松使用和转换 LonLat、Point 和 Tile 以显示信息、标记等的项目。
- WGS84 - 坐标转换和转换库(ETRS89、OSGB36、NAD83、RGF93、Web Mercator、UTM)。
编译器
将 Go 编译为其他语言的工具。
- c2go - 将 C 代码转换为 Go 代码。
- c4go - 将 C 代码转换为 Go 代码。
- esp32 - Transpile 进入 Arduino 代码。
- f4go - 将 FORTRAN 77 代码转换为 Go 代码。
- gopherjs - 从 Go 到 JavaScript 的编译器。
- tardisgo -Golang 到 Haxe 到 CPP/CSharp/Java/JavaScript 转译器。
协程
用于管理和使用 Goroutines 的工具。
- ants - Go 中的高性能和低成本 goroutine 池。
- artifex - 使用基于工作人员的调度的 Golang 简单内存作业队列。
- async -Go 的替代同步库(Future、Promise、Locks)。
- async - 一种安全的异步执行函数的方法,在出现 panic 时恢复它们。
- async-job -AsyncJob 是一个异步队列作业管理器,代码轻,清晰,速度快。
- breaker - 使执行流程可中断的灵活机制。
- channelify - 将您的函数转换为返回通道以实现简单而强大的并行处理。
- conc -
conc
是您在 go 中进行结构化并发的工具带,使常见任务更容易、更安全。 - concurrency-limiter - 并发限制器,支持 goroutine 的超时、动态优先级和上下文取消。
- conexec - 一个并发工具包,可帮助以高效和安全的方式并发执行函数。支持指定整体超时时间避免阻塞,使用goroutine pool提高效率。
- cyclicbarrier -golang 的 CyclicBarrier.
- execpool - 一个围绕 exec.Cmd 构建的池,它预先启动给定数量的进程,并在需要时将 stdin 和 stdout 附加到它们。与 FastCGI 或 Apache Prefork MPM 非常相似,但适用于任何命令。
- go-actor - 一个使用 actor 模型编写并发程序的小型库。
- go-floc - 轻松编排 goroutines。
- go-flow - 控制 goroutines 执行顺序。
- go-tools/multithreading - 使用这个带有简单 API 的轻量级库来管理 goroutines 池。
- go-trylock - 对 Golang 的读写锁的 TryLock 支持。
- go-waitgroup - 类似于
sync.WaitGroup
错误处理和并发控制。 - go-workerpool - 受 Java 线程池的启发,Go WorkerPool 旨在控制繁重的 Go Routines。
- go-workers - 轻松安全地为大型数据处理管道运行工作人员。
- goccm - Go 并发管理器包限制允许并发运行的 goroutines 的数量。
- gohive - 用于 Go 的高性能且易于使用的 Goroutine 池。
- gollback - 异步简单函数实用程序,用于管理闭包和回调的执行。
- gowl - Gowl 是一个流程管理和流程监控工具。无限工作池使您能够控制池和进程并监视它们的状态。
- goworker -goworker 是一个基于 Go 的后台工作者。
- gowp - gowp 是并发限制 goroutine 池。
- gpool - 管理一个可调整大小的上下文感知 goroutines 池以绑定并发性。
- grpool - 轻量级 Goroutine 池。
- hands - 一个进程控制器,用于控制多个 goroutine 的执行和返回策略。
- Hunch
All
- Hunch 提供了、First
、等功能,使异步流控制更加直观Retry
。Waterfall
- kyoo - 提供无限的作业队列和并发工作池。
- neilotoole/errgroup - 的替代品
sync/errgroup
,仅限于 N 个 worker goroutines 池。 - nursery -Go 中的结构化并发。
- 监督- 监督是 Erlang 监督树的完整实现。
- parallel-fn - 并行运行函数。
- pond - 用 Go 编写的简约和高性能 goroutine 工作池。
- pool - 有限的消费者 goroutine 或无限的 goroutine 池,以便于 goroutine 处理和取消。
- 队列- 为您提供
sync.WaitGroup
类似队列组的可访问性。帮助您节制和限制 goroutines,等待所有 goroutines 结束等等。 - routine -
routine
是一个ThreadLocal
用于 go 的库。它封装并提供了一些易用、无竞争、高性能的goroutine
上下文访问接口,可以帮助你更优雅地访问协程上下文信息。 - 例程- 使用上下文进行例程控制,支持:Main、Go、Pool 和一些有用的执行器。
- semaphore - 基于通道和上下文的锁定/解锁操作超时的信号量模式实现。
- semaphore - 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。
- stl - 基于软件事务内存 (STM) 并发控制机制的软件事务锁。
- threadpool -Golang 线程池实现。
- tunny -golang 的 Goroutine 池。
- worker-pool -goworker 是一个简单的 Go 异步工作池。
- workerpool - Goroutine 池,它限制任务执行的并发性,而不是排队的任务数。
图形用户界面
用于构建 GUI 应用程序的库。
工具包
- app - 使用 GO、HTML 和 CSS 创建应用程序的包。支持:MacOS,正在进行中的 Windows。
- fyne - 基于 Material Design 为 Go 设计的跨平台原生 GUI。支持:Linux、macOS、Windows、BSD、iOS 和 Android。
- gio -Gio 是一个用于在 Go 中编写跨平台即时模式 GUI-s 的库。Gio 支持所有主要平台:Linux、macOS、Windows、Android、iOS、FreeBSD、OpenBSD 和 WebAssembly。
- go-astilectron - 使用 GO 和 HTML/JS/CSS(由 Electron 提供支持)构建跨平台 GUI 应用程序。
- go-gtk - GTK 的 Go 绑定。
- go-sciter -Sciter的 Go 绑定:用于现代桌面 UI 开发的可嵌入 HTML/CSS/脚本引擎。跨平台。
- goradd/html5tag - 用于输出 HTML5 标签的库。
- gotk3 - GTK3 的 Go 绑定。
- gowd - 使用 GO、HTML、CSS 和 NW.js 进行快速简单的桌面 UI 开发。跨平台。
- qt -Go 的 Qt 绑定(支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)。
- ui -Go 的平台原生 GUI 库。跨平台。
- Wails - Mac、Windows、Linux 桌面应用程序,带有使用内置操作系统 HTML 渲染器的 HTML UI。
- walk -Go 的 Windows 应用程序库工具包。
- webview - 具有简单的双向 JavaScript 绑定(Windows / macOS / Linux)的跨平台 webview 窗口。
相互作用
- AppIndicator Go - libappindicator3 C 库的 Go 绑定。
- gosx-notifier -Go 的 OSX 桌面通知库。
- mac-activity-tracker - OSX 库,用于通知您机器上的任何(可插入)活动。
- mac-sleep-notifier -golang 中的 OSX 睡眠/唤醒通知.
- robotgo - Go Native 跨平台 GUI 系统自动化。控制鼠标、键盘等。
- systray - 跨平台 Go 库,用于在通知区域放置图标和菜单。
- trayhost - 跨平台 Go 库,用于在主机操作系统的任务栏中放置一个图标。
- zenity - 跨平台 Go 库和 CLI,用于创建与用户进行图形交互的简单对话框。
硬件
用于与硬件交互的库、工具和教程。
- arduino-cli - 官方 Arduino CLI 和库。可以独立运行,也可以合并到更大的 Go 项目中。
- emgo - 用于编程嵌入式系统(例如 STM32 MCU)的类 Go 语言。
- ghw -Golang 硬件发现/检查库。
- go-osc -Go的开放声音控制(OSC)绑定。
- go-rpio -Go 的 GPIO,不需要 cgo。
- goroslib -Go 的机器人操作系统 (ROS) 库。
- joystick - 一个轮询 API,用于读取连接的操纵杆的状态。
- sysinfo - 提供 Linux 操作系统/内核/硬件系统信息的纯 Go 库。
图片
用于处理图像的库。
- bild - 纯 Go 中的图像处理算法集合。
- bimg - 使用 libvips 进行快速高效图像处理的小包。
- cameron -Go 的头像生成器。
- canvas - 矢量图形到 PDF、SVG 或光栅化图像。
- color-extractor - 没有外部依赖性的主要颜色提取器。
- darkroom - 具有可变存储后端和图像处理引擎的图像代理,专注于速度和弹性。
- draft - 使用简单的 YAML 语法为 GraphViz 生成高级微服务架构图。
- geopattern - 从字符串创建漂亮的生成图像模式。
- gg - 纯 Go 中的 2D 渲染。
- gift - 图像处理过滤器包。
- gltf - 高效且强大的 glTF 2.0 阅读器、编写器和验证器。
- go-cairo - 去绑定 cairo 图形库。
- go-gd - 绑定 GD 库。
- go-nude - 使用 Go 进行裸体检测。
- go-webcolors - 从 Python 到 Go 的 webcolors 库的端口。
- go-webp - 使用 libwebp 编码和解码 webp 图片的库。
- gocv - 使用 OpenCV 3.3+ 的计算机视觉 Go 包。
- goimagehash - Go 感知图像哈希包。
- goimghdr - imghdr 模块确定 Go 文件中包含的图像类型。
- govatar - 用于生成有趣头像的库和 CMD 工具。
- govips - Go 的闪电般快速图像处理和大小调整库。
- gowitness - 在命令行上使用 go 和 headless chrome 截取网页。
- gridder - 基于网格的 2D 图形库。
- image2ascii - 将图像转换为 ASCII。
- imagick - 绑定到 ImageMagick 的 MagickWand C API。
- imaginary - 用于图像大小调整的快速简单的 HTTP 微服务。
- imaging - 简单的 Go 图像处理包。
- img - 图像处理工具的选择。
- ln -Go 中的 3D 线条艺术渲染.
- mergi - 用于图像处理(合并、裁剪、调整大小、水印、动画)的 Tool & Go 库。
- mort - 用 Go 编写的存储和图像处理服务器。
- mpo - MPO 3D 照片的解码器和转换工具。
- picfit - 用 Go 编写的图像大小调整服务器。
- pt - 用 Go 编写的路径跟踪引擎。
- resize - 使用常见的插值方法调整 Go 的图像大小。
- rez - 在纯 Go 和 SIMD 中调整图像大小。
- scout -Scout 是用于 DIY 视频安全的独立开源软件解决方案。
- smartcrop - 为任意图像和裁剪尺寸找到好的裁剪。
- 隐写术- 用于 LSB 隐写术的 Pure Go 库。
- stegify - 用于 LSB 隐写术的 Go 工具,能够隐藏图像中的任何文件。
- svgo - 用于生成 SVG 的 Go 语言库。
- tga - 包 tga 是 TARGA 图像格式解码器/编码器.
- webp-server - 简单且最小的图像服务器,能够存储、调整大小、转换和缓存图像。
IoT(物联网)
物联网编程设备库。
- connectordb - 用于量化自我和物联网的开源平台。
- devices - 用于 IoT 设备的库套件,x/exp/io 的实验性。
- ekuiper - 用于物联网边缘的轻量级数据流处理引擎。
- eywa - Project Eywa 本质上是一个连接管理器,用于跟踪连接的设备。
- flogo - Project Flogo 是一个用于 IoT Edge 应用程序和集成的开源框架。
- gatt -Gatt 是用于构建低功耗蓝牙外围设备的 Go 包。
- gobot - Gobot 是机器人、物理计算和物联网的框架。
- huego - 适用于 Go 的广泛的 Philips Hue 客户端库。
- iot - IoT 是一个用于实现 Google IoT Core 设备的简单框架。
- mainflux - 工业物联网消息和设备管理服务器。
- periph - 外设 I/O 与低级板设施接口。
- sensorbee - 用于物联网的轻量级流处理引擎。
作业调度程序
用于调度作业的库。
- cdule - 具有数据库支持的作业调度程序库
- cheek - 一个简单的 crontab 类调度程序,旨在提供一种 KISS 方法来进行作业调度。
- clockwerk - Go 包使用简单、流畅的语法安排定期作业。
- cronticker - 支持 cron 计划的自动收报机实现。
- Dagu - 无代码工作流执行器。它执行以简单的 YAML 格式定义的 DAG。
- go-cron - 用于 go 的简单 Cron 库,可以在特定日期和时间以不同的时间间隔执行闭包或函数,从每秒一次到每年一次。主要用于 Web 应用程序和长时间运行的守护进程。
- go-quartz - 用于 Go 的简单、零依赖的调度库。
- gocron - 简单流畅的 Go 作业调度。这是jasonlvhit/gocron的一个积极维护的分支。
- goflow - 用于快速制作 ETL/ML/AI 管道原型的工作流编排器和调度器。
- gron - 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们。
- gronx - Cron 表达式解析器、任务运行器和守护进程使用 crontab,如任务列表。
- JobRunner - 智能且功能强大的 cron 作业调度程序,内置作业排队和实时监控。
- jobs - 持久且灵活的后台作业库。
- leprechaun - 支持 webhooks、crons 和经典调度的作业调度程序。
- sched - 具有快进时间能力的作业调度程序。
- scheduler -Cronjobs 调度变得简单。
- tasks - 一个易于使用的进程内调度程序,用于 Go 中的重复任务。
JSON
用于处理 JSON 的库。
- ajson - 支持 JSONPath 的 golang 抽象 JSON。
- ask - 轻松访问地图和切片中的嵌套值。与 encoding/json 和其他将任意数据“解组”为 Go 数据类型的包结合使用。
- dynjson - 用于动态 API 的客户端可定制的 JSON 格式。
- ej - 简洁地编写和读取来自不同来源的 JSON。
- epoch - 包含用于将 Unix 时间戳/纪元编组/解组到/从内置时间的原语。JSON 中的时间类型。
- fastjson -Go 的快速 JSON 解析器和验证器。没有自定义结构,没有代码生成,没有反射。
- gjo - 创建 JSON 对象的小型实用程序。
- GJSON - 使用一行代码获取 JSON 值。
- go-jsonerror - Go-JsonError 旨在让我们轻松创建遵循 JsonApi 规范的 json 响应错误。
- go-respond - 用于处理常见 HTTP JSON 响应的 Go 包。
- gojmapr - 通过 json 路径从复杂的 json 中获取简单结构。
- gojq -Golang 中的 JSON 查询。
- gojson - 从示例 JSON 自动生成 Go (golang) 结构定义。
- htmljson - 在 Go 中将 JSON 丰富呈现为 HTML。
- JayDiff - 用 Go 编写的 JSON diff 实用程序。
- jettison - 用于 Go 的快速灵活的 JSON 编码器。
- jscan - 高性能零分配 JSON 迭代器。
- JSON-to-Go - 将 JSON 转换为 Go 结构。
- JSON-to-Proto - 在线将 JSON 转换为 Protobuf.
- json2go - 高级 JSON 到 Go 结构转换。提供可以解析多个 JSON 文档并创建适合它们的结构的包。
- jsonapi-errors - 基于 JSON API 错误参考的 Go 绑定。
- jsoncolor - 直接替换
encoding/json
输出彩色 JSON。 - jsondiff - 基于 RFC6902(JSON 补丁)的 Go 的 JSON 差异库。
- jsonf - 用于突出显示格式和结构查询获取 JSON 的控制台工具。
- jsongo - 流畅的 API,可以更轻松地创建 Json 对象。
- jsonhal - 简单的 Go 包,使自定义结构编组为 HAL 兼容的 JSON 响应。
- jsonhandlers - 公开简单处理程序的 JSON 库,使您可以轻松地从各种来源读取和写入 json。
- jsonic - 无需以类型安全的方式定义结构即可处理和查询 JSON 的实用程序。
- jzon - 具有标准兼容 API / 行为的 JSON 库。
- kazaam - 用于任意转换 JSON 文档的 API。
- mapslice-json -Go MapSlice 用于 JSON 中地图的有序编组/解组。
- marshmallow - 用于灵活用例的高性能 JSON 解组。
- mp - 简单的 cli 电子邮件解析器。它目前接受标准输入并输出 JSON。
- OjG - 为 Go 优化的 JSON 是一个高性能的解析器,带有各种附加的 JSON 工具,包括 JSONPath。
- omg.jsonparser - 简单的 JSON 解析器,通过 golang 结构字段标签按条件进行验证。
- ujson - 适用于非结构化 JSON 的快速且最小的 JSON 解析器和转换器。
- vjson - 通过使用流畅的 API 声明 JSON 模式来验证 JSON 对象的 Go 包。
记录
用于生成和使用日志文件的库。
- distillog - 蒸馏级别的日志记录(将其视为 stdlib + 日志级别)。
- glg -glg 是用于 Go 的简单快速的分级日志记录库。
- glo - PHP Monolog 启发了具有相同严重级别的日志记录工具。
- glog -Go 的分级执行日志。
- go-cronowriter - 简单的编写器,可根据当前日期和时间自动轮换日志文件,如 cronolog。
- go-log - 具有堆栈跟踪、对象转储和可选时间戳的日志记录库。
- go-log -Go 中的简单且可配置的日志记录,具有级别、格式化程序和编写器。
- go-log - 日志库支持级别和多处理程序。
- go-log -Go 中的 Log4j 实现。
- go-logger - Go 程序的简单记录器,带有级别处理程序。
- gologger - 简单易用的 go 日志库,在彩色控制台、简单控制台、文件或 Elasticsearch 中记录。
- gomol - 用于 Go 的多输出、结构化日志记录,具有可扩展的日志记录输出。
- gone/log - 快速、可扩展、功能齐全、std-lib 源兼容的日志库。
- httpretty - 在您的终端上漂亮地打印您的常规 HTTP 请求以进行调试(类似于 http.DumpRequest)。
- journald - 执行 systemd Journal 用于日志记录的本机 API。
- kemba - 受debug启发的微型调试日志记录工具,非常适合 CLI 工具和应用程序。
- log - 一种 O(1) 日志系统,允许您将一个日志连接到多个写入器(例如 stdout、一个文件和一个 TCP 连接)。
- log -Go 的结构化日志记录包。
- log - 用于 Go 的简单、可配置和可扩展的结构化日志记录。
- log -Go 的结构化日志接口将日志外观与其实现完全分开。
- log - 围绕标准日志包的简单分级日志包装器。
- log - 开箱即用的简单日志记录框架。
- log-voyage - 用 golang 编写的全功能日志记录 saas。
- log15 - 简单、强大的 Go 日志记录。
- logdump - 用于多级日志记录的包。
- logex -Golang 日志库,支持跟踪和级别,由标准日志库包装。
- logger -Go 的简约日志库。
- logmatic - 具有动态日志级别配置的 Golang 彩色记录器。
- logo -Golang 记录器到不同的可配置编写器。
- logrus -Go 的结构化记录器。
- logrusiowriter -使用logrus
io.Writer
记录器实现。 - logrusly -用于将错误发送到Loggly 的logrus插件。
- logur - 一个自以为是的记录器界面和记录最佳实践的集合,带有适配器和知名库(logrus,go-kit log,zap,zerolog等)的集成。
- logutils - 用于在 Go (Golang) 中更好地记录日志的实用程序,扩展了标准记录器。
- logxi - 12 因素应用程序记录器,速度快,让你开心。
- lumberjack - 简单的滚动记录器,实现 io.WriteCloser。
- mlog - 用于 go 的简单日志记录模块,具有 5 个级别,可选的旋转日志文件功能和 stdout/stderr 输出。
- noodlog - 参数化 JSON 日志库,可让您混淆敏感数据并编组任何类型的内容。不再打印指针而不是值,也不再为 JSON 字符串转义字符。
- onelog - Onelog 是一个极其简单但非常高效的 JSON 记录器。它是所有场景中最快的 JSON 记录器。此外,它是分配最低的记录器之一。
- ozzo-log - 支持日志严重性、分类和过滤的高性能日志记录。可以将过滤后的日志消息发送到各种目标(例如控制台、网络、邮件)。
- phuslu/log - 高性能结构化日志记录。
- pp -Go 语言的彩色漂亮打印机。
- rollingwriter -RollingWriter 是一种自动轮换
io.Writer
实现,具有多种策略以提供日志文件轮换。 - seelog - 具有灵活调度、过滤和格式化的日志记录功能。
- slf4g - Golang 的简单日志记录门面:简单的结构化日志记录;但功能强大、可扩展和可定制,从过去几十年的日志框架中汲取了大量经验。
- slog - 用于 Go 的轻量级、可配置、可扩展的记录器。
- slog-formatter - 用于 slog 和 helpers 的通用格式化程序来构建你自己的。
- slog-multi - slog.Handler 链(管道、扇出...)。
- spew - 为 Go 数据结构实现一个深度漂亮的打印机以帮助调试。
- sqldb-logger - Go SQL 数据库驱动程序的记录器,无需修改现有的 *sql.DB stdlib 用法。
- stdlog - Stdlog 是一个面向对象的库,提供分级日志记录。它对 cron 作业非常有用。
- structy/log - 一个简单易用的日志系统,极简主义但具有调试和区分消息的功能。
- tail - 努力模拟 BSD tail 程序功能的 Go 包。
- tint - 写入有色日志的 slog.Handler。
- xlog -Go 的插件架构和灵活的日志系统,具有级别 ctrl、多个日志目标和自定义日志格式。
- xlog - 用于
net/context
具有灵活调度的感知 HTTP 处理程序的结构化记录器。 - xylog - 分级和结构化日志记录、动态字段、高性能、区域管理、简单配置和可读语法。
- yell - 另一个简约的日志库。
- zap - Go 中快速、结构化、分级的日志记录。
- zerolog - 零分配 JSON 记录器。
- zkits-logger - 一个强大的零依赖 JSON 记录器。
机器学习
机器学习库。
- bayesian -Golang 的朴素贝叶斯分类.
- CloudForest - 用于纯 Go 机器学习的快速、灵活、多线程的决策树集合。
- ddt - 动态决策树,创建定义可定制规则的树。
- eaopt - 一个进化优化库。
- evoli - 遗传算法和粒子群优化库。
- fonet - 用 Go 编写的深度神经网络库。
- go-cluster - k-modes 和 k-prototypes 聚类算法的 Go 实现。
- go-deep -Go 中功能丰富的神经网络库。
- go-fann - 快速人工神经网络(FANN)库的 Go 绑定。
- go-featureprocessing - 快速方便的特征处理,用于 Go 中的低延迟机器学习。
- go-galib - 用 Go / golang 编写的遗传算法库。
- go-pr -Go lang 中的模式识别包。
- gobrain - 用 go 编写的神经网络。
- godist - 各种概率分布和相关方法。
- goga -Go 的遗传算法库。
- GoLearn -Go 的通用机器学习库。
- golinear -Go 的 liblinear 绑定。
- GoMind - Go 中一个简单的神经网络库。
- goml -Go 中的在线机器学习。
- gonet -Go 的神经网络。
- Goptuna - 用 Go 编写的黑盒函数的贝叶斯优化框架。一切都会被优化。
- goRecommend - 用 Go 编写的推荐算法库。
- gorgonia - 基于图形的计算库,例如用于 Go 的 Theano,它提供用于构建各种机器学习和神经网络算法的原语。
- gorse - 基于用 Go 编写的协同过滤的离线推荐系统后端。
- goscore - 用于 PMML 的 Go 评分 API。
- gosseract - 用于 OCR(光学字符识别)的 Go 包,使用 Tesseract C++ 库。
- libsvm - 基于 LIBSVM 3.14 的 libsvm golang 版本派生工作。
- m2cgen - 一个 CLI 工具,用于将训练有素的经典 ML 模型转换为零依赖的本机 Go 代码,用 Python 编写并支持 Go 语言。
- neat - 用于增强拓扑 NeuroEvolution(NEAT)的即插即用并行 Go 框架。
- neural-go - 在 Go 中实现的多层感知器网络,通过反向传播进行训练。
- ocrserver - 一个简单的 OCR API 服务器,非常容易由 Docker 和 Heroku 部署。
- onnx-go - 打开神经网络交换(ONNX)的 Go 接口。
- probab - 概率分布函数。贝叶斯推理。用纯 Go 编写。
- randomforest - 易于使用的 Go 随机森林库。
- regommend - 推荐和协同过滤引擎。
- shield - 贝叶斯文本分类器,具有灵活的标记器和 Go 的存储后端。
- tfgo - 易于使用的 Tensorflow 绑定:简化了官方 Tensorflow Go 绑定的使用。在 Go 中定义计算图,加载和执行在 Python 中训练的模型。
- Varis -Golang 神经网络。
讯息
实现消息系统的库。
- ami - 将客户端转到基于 Redis Cluster Streams 的可靠队列。
- amqp -Go RabbitMQ 客户端库。
- APNs2 - 用于 Go 的 HTTP/2 Apple 推送通知提供程序——向 iOS、tvOS、Safari 和 OSX 应用程序发送推送通知。
- Asynq - 一个简单、可靠、高效的 Go 分布式任务队列,构建在 Redis 之上。
- Beaver - 一个实时消息服务器,用于构建可扩展的应用内通知、多人游戏、Web 和移动应用中的聊天应用。
- Benthos - 一系列协议之间的消息流桥。
- Bus - 用于内部通信的极简消息总线实现。
- Centrifugo -Go 中的实时消息传递(Websockets 或 SockJS)服务器。
- Chanify - 推送通知服务器向您的 iOS 设备发送消息。
- Commander - 高级事件驱动的消费者/生产者,支持各种“方言”,例如 Apache Kafka。
- Confluent Kafka Golang Client -confluent-kafka-go 是 Confluent 的 Apache Kafka 和 Confluent 平台的 Golang 客户端。
- dbus -D-Bus 的原生 Go 绑定。
- drone-line -使用二进制、docker 或 Drone CI发送线路通知。
- emitter - 使用 Go 方式发出事件,带有通配符、谓词、取消可能性和许多其他好的胜利。
- 事件- 模式观察者的实现。
- EventBus - 具有异步兼容性的轻量级事件总线。
- gaurun-client - 用 Go 编写的 Gaurun 客户端.
- Glue - 强大的 Go 和 Javascript 套接字库(替代 Socket.io)。
- go-mq - 具有声明性配置的 RabbitMQ 客户端。
- go-notify - freedesktop 通知规范的本机实现。
- go-nsq - NSQ 的官方 Go 包。
- go-res - 用于构建 REST/实时服务的包,其中客户端使用 NATS 和 Resgate 无缝同步。
- go-socket.io - 用于 golang 的 socket.io 库,一个实时应用程序框架。
- go-vitotrol - Viessmann Vitotrol Web 服务的客户端库。
- Gollum - 一个 n:m 多路复用器,它从不同的来源收集消息并将它们广播到一组目的地。
- golongpoll - 使 Web 发布-订阅变得简单的 HTTP longpoll 服务器库。
- gopush-cluster -gopush-cluster 是一个推送服务器集群。
- gorush - 使用APNs2和谷歌GCM 的推送通知服务器。
- gosd - 用于安排何时将消息发送到频道的库。
- guble - 使用推送通知(Google Firebase 云消息传递、Apple 推送通知服务、SMS)以及 websockets 的消息传递服务器,这是一个 REST API,具有分布式操作和消息持久性的特点。
- hare - 一个用户友好的库,用于发送消息和监听 TCP 套接字。
- hub - 用于 Go 应用程序的消息/事件中心,使用发布/订阅模式并支持别名,如 rabbitMQ 交换。
- jazz - 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费。
- machinery - 基于分布式消息传递的异步任务队列/作业队列。
- mangos - 具有传输互操作性的 Nanomsg(“可扩展性协议”)的纯 go 实现。
- melody - 用于处理 websocket 会话的极简主义框架,包括广播和自动 ping/pong 处理。
- Mercure - 服务器和库使用 Mercure 协议(建立在服务器发送事件之上)来调度服务器发送的更新。
- messagebus -messagebus 是一个简单的 Go 异步消息总线,非常适合在进行事件源、CQRS、DDD 时用作事件总线。
- mob -mob 是一个基于通用的简单调解器/事件聚合器库。它支持进程内请求/事件处理。
- NATS Go Client - 轻量级和高性能的发布-订阅和分布式队列消息系统 - 这是 Go 库。
- nsq-event-bus - 一个围绕 NSQ 主题和通道的微型包装器。
- oplog - 用于 REST API 的通用 oplog/复制系统。
- pubsub - 用于 go 的简单 pubsub 包。
- Quamina - 用于过滤消息和事件的快速模式匹配。
- rabbus - amqp 交换和队列的一个小包装器。
- rabtap -RabbitMQ 瑞士军刀 cli 应用程序。
- RapidMQ -RapidMQ 是一个轻量级且可靠的库,用于管理本地消息队列。
- Ratus -Ratus 是一个 RESTful 异步任务队列服务器。
- redisqueue -redisqueue 提供使用 Redis 流的队列的生产者和消费者。
- rmqconn - RabbitMQ 重新连接。amqp.Connection 和 amqp.Dial 的包装器。允许在连接断开时重新连接,然后强制关闭对 Close () 方法的调用。
- sarama -Apache Kafka 的 Go 库。
- Uniqush-Push - Redis 支持统一推送服务,用于向移动设备发送服务器端通知。
- Watermill - 有效地处理消息流。构建事件驱动的应用程序,启用事件源,基于消息的 RPC,传奇。可以使用传统的发布/订阅实现,如 Kafka 或 RabbitMQ,也可以使用 HTTP 或 MySQL binlog。
- zmq4 - 转到 ZeroMQ 版本 4 的接口。也可用于版本 3和版本 2。
微软办公软件
- unioffice - 用于创建和处理 Office Word (.docx)、Excel (.xlsx) 和 Powerpoint (.pptx) 文档的纯 Go 库。
微软Excel
用于处理 Microsoft Excel 的库。
- excelize - 用于读写 Microsoft Excel™(XLSX)文件的 Golang 库。
- exl - Excel 绑定到用 Go 编写的结构。(仅支持 Go1.18+)
- go-excel - 一个简单轻便的阅读器,可以将类似 related-db 的 excel 作为表格阅读。
- goxlsxwriter - 用于编写 XLSX(Microsoft Excel)文件的 libxlsxwriter 的 Golang 绑定。
- xlsx - 用于简化读取最新版本的 Microsoft Excel 在 Go 程序中使用的 XML 格式的库。
- xlsx - 在 Go 程序中读取/更新现有 Microsoft Excel 文件的快速安全方法。
各种各样的
依赖注入
用于依赖注入的库。
- alice - Golang 的附加依赖注入容器。
- di - 用于 go 编程语言的依赖注入容器。
- dig - 用于 Go 的基于反射的依赖注入工具包。
- dingo - 基于 Guice 的 Go 依赖注入工具包。
- do - 基于泛型的依赖注入框架。
- fx - 一个基于依赖注入的 Go 应用程序框架(建立在 dig 之上)。
- gocontainer - 简单的依赖注入容器。
- goioc/di - 受 Spring 启发的依赖注入容器。
- GoLobby/Container -GoLobby Container 是用于 Go 编程语言的轻量级但功能强大的 IoC 依赖注入容器.
- google/wire -Go 中的自动初始化。
- HnH/di - 专注于干净的 API 和灵活性的 DI 容器库。
- kinit - 可定制的依赖注入容器,具有全局模式、级联初始化和恐慌安全终结。
- linker - 基于反射的依赖注入和控制库的反转,具有组件生命周期支持。
- nject - 用于库、测试、http 端点和服务启动的类型安全、反射框架。
- wire -Golang 的严格运行时依赖注入。
项目布局
用于构建项目的非官方模式集。
- ardanlabs/service -用于构建生产级可扩展 Web 服务应用程序的入门工具包。
- cookiecutter-golang - Go 应用程序样板模板,用于遵循生产最佳实践快速启动项目。
- go-module - 用 Go 编写的典型模块的模板。
- go-sample - 带有真实代码的 Go 应用程序项目的示例布局。
- go-starter - 一个自以为是的生产就绪 RESTful JSON 后端模板,与 VSCode DevContainers 高度集成。
- go-todo-backend -Go Todo 后端示例使用产品微服务的模块化项目布局。
- gobase - golang 应用程序的简单框架,具有真正 golang 应用程序的基本设置。
- golang-standards/project-layout - Go 生态系统中常见的历史和新兴项目布局模式集。注意:尽管有组织名称,但它们并不代表官方的 golang 标准,请参阅此问题以获取更多信息。尽管如此,有些人可能会发现布局很有用。
- golang-templates/seed - Go 应用程序 GitHub 存储库模板。
- insidieux/inizio - 带有插件的 Golang 项目布局生成器。
- modern-go-application - Go 应用程序样板和应用现代实践的示例。
- 宝塔- Go 中内置的快速、简单的全栈 Web 开发入门工具包。
- scaffold - 脚手架生成一个入门 Go 项目布局。让您专注于实施的业务逻辑。
- wangyoucao577/go-project-layout - 关于如何构建 Go 项目布局的一组实践和讨论。
字符串
用于处理字符串的库。
- bexp - 用于生成任意字符串的大括号扩展机制的 Go 实现。
- caps - 大小写转换库。
- go-formatter - 实现用花括号格式字符串包围的替换字段
{}
。 - gobeam/Stringy - 字符串操作库,用于将字符串转换为骆驼大小写、蛇形大小写、烤肉串大小写 / slugify 等。
- strutil - 字符串实用程序。
- sttr - 跨平台的 cli 应用程序,用于对字符串执行各种操作。
- xstrings - 从其他语言移植的有用字符串函数的集合。
未分类
这些图书馆被放在这里是因为其他类别似乎都不合适。
- anagent - 具有依赖注入的简约、可插入 Golang evloop/timer 处理程序。
- antch - 一个快速、强大且可扩展的网络爬行和抓取框架。
- archiver - 用于制作和提取 .zip 和 .tar.gz 档案的库和命令。
- autoflags - Go 包自动从结构字段定义命令行标志。
- avgRating - 根据 Wilson 分数方程计算平均分数和评分。
- banner - 将漂亮的横幅添加到您的 Go 应用程序中。
- base64Captcha -Base64captch 支持数字、数字、字母、算术、音频和数字字母验证码。
- basexx - 在各种数字基数的数字字符串之间相互转换。
- battery - 跨平台、规范化的电池信息库。
- bitio - 高度优化的 Go 位级读写器。
- browscap_go - 用于浏览器功能项目的 GoLang 库。
- captcha - 包 captcha 为验证码生成提供了一个易于使用、不受约束的 API。
- common - 服务器框架库。
- conv - 包 conv 提供跨 Go 类型的快速和直观的转换。
- datacounter - 读者/作者/http.ResponseWriter 的 Go 计数器。
- faker - 假数据生成器。
- faker -Go 的随机假数据和结构生成器。
- ffmt - 美化人类数据显示。
- gatus - 自动化服务健康仪表板。
- go-commandbus - 用于 Go 的小型可插拔命令总线。
- go-commons-pool - Golang 的通用对象池。
- go-openapi - 用于解析和利用 open-api 模式的包集合。
- go-resiliency -golang 的弹性模式。
- go-unarr - RAR、TAR、ZIP 和 7z 档案的解压缩库。
- gofakeit - 用 go 编写的随机数据生成器。
- gommit - 分析 git 提交消息以确保它们遵循定义的模式。
- gopsutil - 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台库。
- gosh - 提供 Go 统计处理程序、结构、测量方法。
- gosms - 您自己的 Go 本地 SMS 网关,可用于发送 SMS。
- gotoprom - 用于官方 Prometheus 客户端的类型安全指标构建器包装器库。
- gountries - 公开国家和细分数据的包。
- gtree - 为从 Markdown 或以编程方式创建树输出和目录提供 CLI、包和 Web。
- health - 一个简单灵活的 Go 健康检查库。
- health - 易于使用、可扩展的健康检查库。
- healthcheck - 用于 RESTful 服务的自以为是的并发健康检查 HTTP 处理程序。
- hostutils - 用于打包和解包 FQDN 列表的 golang 库。
- indigo - 使用 Sonyflake 并由 Base58 编码的分布式唯一 ID 生成器。
- lk - 一个简单的 golang 许可库。
- llvm - 用于在纯 Go 中与 LLVM IR 交互的库。
- metrics - 用于指标检测和 Prometheus 说明的库。
- morse - 与莫尔斯码相互转换的库。
- numa -NUMA 是一个实用程序库,它是用 go 编写的。它帮助我们编写一些 NUMA-AWARED 代码。
- openapi - OpenAPI 3.x 解析器。
- pdfgen - 从 Json 请求生成 PDF 的 HTTP 服务。
- 波斯语- 波斯语的一些实用程序。
- sandid - 地球上的每一粒沙子都有自己的 ID。
- shellwords - 一个 Golang 库,用于根据 UNIX Bourne shell 的单词解析规则处理字符串。
- shortid - 分布式生成超短、唯一、非顺序、URL 友好的 ID。
- shoutrrr - 通知库提供对各种消息服务的轻松访问,如 slack、mattermost、gotify 和 smtp 等。
- 站点地图格式- 一个简单的站点地图生成器,带有一点语法糖。
- stateless - 用于创建状态机的流畅库。
- stats - 监控 Go MemStats + 系统统计信息,例如内存、交换和 CPU,并通过 UDP 发送到您想要记录的任何地方等...
- turtle -Go 的表情符号。
- url-shortener - 具有 mysql 支持的现代、强大且健壮的 URL 缩短器微服务。
- VarHandler - 生成样板 http 输入和输出处理。
- varint - 一种比标准库中提供的更快的变长整数编码器/解码器。
- xdg - 在 Go 中实现的 FreeDesktop.org(xdg)规范。
- xkg -X 键盘抓取器。
- xz - 用于读取和写入 xz 压缩文件的纯 golang 包。
自然语言处理
用于处理人类语言的库。
语言检测
- detectlanguage - 语言检测 API Go 客户端。支持批量请求、短语或单词语言检测。
- getlang - 快速自然语言检测包。
- guesslanguage - 确定 unicode 文本的自然语言的函数。
- whatlanggo -Go 的自然语言检测包。支持 84 种语言和 24 种文字(书写系统,例如拉丁文、西里尔文等)。
形态分析仪
- go-stem - 波特词干算法的实现。
- go2vec - word2vec 嵌入的阅读器和实用函数。
- golibstemmer - snowball libstemmer 库的 Go 绑定,包括 porter 2.
- gosentiwordnet - 在 Go 中使用 sentiwordnet 词典的情感分析器。
- govader - 执行VADER 情绪分析。
- govader-backend -GoVader的微服务实现。
- kagome - 用纯 Go 编写的 JP 形态分析器。
- libtextcat - libtextcat C 库的 Cgo 绑定。保证与 2.2 版的兼容性。
- nlp - 从字符串中提取值并用 nlp 填充您的结构.
- nlp - 支持 LSA(潜在语义分析)的 Go 自然语言处理库。
- paicehusk -Paice/Husk 词干算法的 Golang 实现。
- porter - 这是 Martin Porter 的 Porter 词干算法的 C 实现的一个相当简单的端口。
- porter2 - 非常快的 Porter 2 词干分析器。
- RAKE.go - 快速自动关键字提取算法 (RAKE) 的 Go 端口。
- snowball -Go 的 Snowball 词干提取器端口(cgo 包装器). 提供词干提取功能Snowball native。
- spaGO - Go 中独立的机器学习和自然语言处理库。
- 拼写校正器- 西班牙语的拼写校正器或创建您自己的拼写校正器。
猛击者
- go-slugify - 通过多种语言支持制作漂亮的 slug.
- slug