2023年go语言在国内快凉了吗?

6个月前 (11-16) 0 点赞 0 收藏 0 评论 6 已阅读

翻译自(部分):

更全的翻译在(知乎字数多太卡)第66节 go 语言工具包 | 你好

音频和音乐

用于处理音频的库。

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、YAMLonion -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 包。

位集

bitmap -Go 中密集的、零分配的、支持 SIMD 的位图/位集。bitset -Go 包实现 bitsets。

布隆和布谷鸟过滤器

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 的功能。

迭代器

goterator - 提供 map 和 reduce 功能的迭代器实现。iter - C++ STL 迭代器和算法的 Go 实现。

地图

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

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 - 切片的纯通用函数。

可空类型

nan - 一个库中的零分配可空结构,具有方便的转换函数、编组器和解组器。null - 可以为 JSON 编组/解组的可空 Go 类型。typ - 空类型、安全原始类型转换和从复杂结构中获取值。

队列

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.gocosmosdatabase/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 库,支持解析和操作"https://github.com/todotxt/todo.txt">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 的执行和返回策略。HunchAll - Hunch 提供了、First、等功能,使异步流控制更加直观RetryWaterfallkyoo - 提供无限的作业队列和并发工作池。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 - 简单且最小的图像服务器,能够存储、调整大小、转换和缓存图像。

⬆回到顶部

2023年go语言在国内快凉了吗?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册