ITADN
avelino/awesome-go
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

精选 Go

awesome-go

Build Status Awesome Slack Widget Netlify Status Track Awesome List Last Commit

我们使用 Golang Bridge 社区 Slack 进行即时沟通,请按照 此处的表单加入

awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt

赞助:

特别感谢

Awesome Go 没有月费,但我们有一群努力工作的员工来维持其运行。通过筹集资金,我们可以回报每一位参与者的付出!您可以查看我们如何计算账单和分配,因为这一切对整个社区都是公开的。想成为该项目的支持者,请点击这里

一个精选的 Go 框架、库和软件列表。灵感来自 awesome-python

贡献:

请先快速浏览一下贡献指南。感谢所有贡献者;你们太棒了!

如果您发现这里有一个不再维护或不太合适的包或项目,请提交一个拉取请求来改进此文件。谢谢!

目录

展开目录

⬆ 返回顶部

Actor Model

用于构建基于 Actor 的程序的库。

  • asyncmachine-go/pkg/machine - 图控制流库(AOP、actor、状态机)。
  • Ergo - 一个具有网络透明性的基于 Actor 的框架,用于在 Golang 中创建事件驱动架构。受 Erlang 启发。
  • Goakt - 一个快速且分布式的 Actor 框架,在 Golang 中使用 protocol buffers 作为消息。
  • Hollywood - 一个用 Golang 编写的极速且轻量级的 Actor 引擎。
  • ProtoActor - 用于 Go、C# 和 Java/Kotlin 的分布式 Actor。

⬆ 返回顶部

Artificial Intelligence

用于构建利用 AI 的程序的库。

  • AegisFlow - 用于跨 10+ 提供商路由、保护和监控 LLM 流量的 AI 网关。OpenAI 兼容 API,WASM 策略插件,金丝雀发布,实时仪表板。

  • Aetheris - 具备事件溯源、检查点恢复和 At-Most-Once 执行保证的 AI Agent 执行运行时。使用 Go 编写。

  • agent-sdk-go - 用于在 Temporal 上构建持久 AI agents 的 Go SDK,支持工具、MCP、人工审批和子 agent 委托。

  • ai - 用于跨多个提供商构建 AI agents 和应用程序的 Go 工具包,提供统一的 LLM、嵌入、工具调用和 MCP 集成。

  • chromem-go - 具有 Chroma 类似接口且零第三方依赖的可嵌入 Go 向量数据库。内存存储,支持可选持久化。

  • dakera-go - Dakera 自托管 agent 内存服务器的官方 Go 客户端 SDK,提供内存存储/召回、会话管理、命名空间操作和衰减配置的强类型接口。

  • fun - 在 Go 中使用大型语言模型 (LLMs) 最简单但强大的方式。

  • goai - 用于构建 AI 应用程序的 Go SDK。一个 SDK,20+ 提供商。受 Vercel AI SDK 启发。

  • GoModel - 跨 OpenAI、Anthropic、Gemini、Groq、xAI、Ollama 及其他提供商暴露统一 OpenAI 兼容 API 的 AI 网关,具备路由、用量跟踪、速率限制和护栏功能。

  • hotplex - 面向 Claude Code、OpenCode、pi-mono 及其他 CLI AI 工具的 AI Agent 运行时引擎,支持长生命周期会话。提供全双工流式传输、多平台集成和安全沙箱。

  • jargo - 基于 WebRTC 构建实时语音 AI Agent 的框架,将语音转文本、LLM 和文本转语音整合到流式管道中。

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

  • langgraphgo - 一个用于构建基于 LLM 的有状态、多参与者应用的 Go 库,基于 LangGraph 概念构建,内置多种 Agent 架构。

  • llm-box - 基于终端的 AI 工作流引擎,支持 YAML 驱动的管道、20+ LLM 提供商(DeepSeek、Qwen、GLM、Mistral 等),并提供用于工作流管理的 TUI。

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

  • localaik - LocalStack 风格的 OpenAI 和 Gemini API 本地模拟;单个 Docker 容器,llama.cpp + Gemma 3 后端。

  • mcp-go - Model Context Protocol 的 Go 实现,用于在 Go 中构建 MCP 服务器和客户端。

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

  • OllamaFarm - 管理、负载均衡和故障转移 Ollama 集群。

  • otellix - 原生 OpenTelemetry 的 LLM 可观测性和预算护栏,适用于成本受限的生产环境。

  • routex - 面向 Go 的 YAML 驱动多 Agent AI 运行时,支持 Erlang 风格的监督、MCP 工具服务器支持和 CLI。

  • semantic-search - 基于语义的搜索,支持 PDF、Markdown、DOCX、源代码及其他文件类型,使用生成式 AI 嵌入模型将文件向量化并存储到向量数据库中。

  • skillreaper - 一个 CLI 工具,用于扫描 AI 代理会话记录,识别并安全隔离未使用的技能、MCP 服务器和代理,适用于 Claude Code、Codex CLI、Hermes、OpenCode、Cursor 和 OpenClaw。

  • Smeldr - AI 原生内容后端,具备类型化生命周期管理,为每种内容类型提供原生 MCP 工具,且零运行时依赖。

  • trpc-agent-go - 用于构建基于 LLM 的多代理系统的框架。

  • web-researcher-mcp - 为 AI 助手提供网络搜索、内容提取和多源研究能力的 MCP 服务器。单一二进制文件,5 个搜索提供商支持熔断器故障转移,4 层抓取管道。

  • zenflow - 多代理编排与工作流引擎。声明式 YAML 工作流,基于 LLM 的协调器采用中心辐射式邮箱机制,具备竞态安全的投递能力。一个 YAML 文件,一个 Go 二进制文件。支持任何 goai 兼容的提供商。

⬆ 返回顶部

音频与音乐

用于操作音频和音乐的库。

  • beep - 一个简单的播放和音频操作库。
  • flac - 原生 Go FLAC 编码器/解码器,支持 FLAC 流。
  • gaad - 原生 Go AAC 比特流解析器。
  • go-mpris - mpris dbus 接口的客户端。
  • go-resample - 纯 Go(无 cgo)音频采样率转换器,包含 sinc、线性及零阶保持转换器。
  • GoAudio - 原生 Go 音频处理库。
  • gosamplerate - Go 的 libsamplerate 绑定。
  • id3v2 - Go 的 ID3 解码和编码库。
  • malgo - 迷你音频库。
  • minimp3 - 轻量级 MP3 解码库。
  • music-theory - Go 中的乐理模型。
  • Oto - 一个用于在多个平台上播放声音的低层库。
  • PortAudio - PortAudio 音频 I/O 库的 Go 绑定。 -voxrai-ai - 具有 JSON 配置的 AI 语音代理,通过 WebSocket 和 WebRTC 实现 STT → LLM → TTS 流水线

⬆ 返回顶部

认证与授权

用于实现认证和授权的库。

  • authboss - 面向 Web 的模块化认证系统。它力求尽可能移除样板代码和“困难部分”,以便每次在 Go 中启动新的 Web 项目时,都可以直接集成、配置并开始构建应用,而无需每次都构建一个认证系统。

  • authgate - 一个轻量级的 OAuth 2.0 授权服务器,支持设备授权授予(RFC 8628)、带 PKCE 的授权码流程(RFC 6749 + RFC 7636)以及用于机器对机器认证的客户凭据授予。

  • branca - Golang 1.15+ 的 branca token 规范实现

  • casbin - 支持 ACL、RBAC 和 ABAC 等访问控制模型的授权库。

  • cookiestxt - 提供 cookies.txt 文件格式的解析器。

  • go-githubauth - GitHub 认证工具:生成和使用 GitHub 应用及安装令牌。

  • go-guardian - Go-Guardian 是一个 golang 库,提供了一种简单、清晰且符合惯用方式的方法,用于创建支持 LDAP、Basic、Bearer token 和基于证书的认证的强大现代 API 和 Web 认证。

  • go-iam - 开发者优先的身份和访问管理系统,具有简单的 UI。

  • go-jose - 对 JOSE 工作组 JSON Web Token、JSON Web Signatures 和 JSON Web Encryption 规范的相当完整的实现。

  • go-jwt - 一个用于 Go 的 JWT (JSON Web Token) 库。

  • go-jwt - JWT 认证包,提供带有指纹识别、Redis 存储和自动刷新功能的访问令牌和刷新令牌。

  • goiabada - 一个支持 OAuth2 和 OpenID Connect 的开源认证和授权服务器。

  • gologin - 用于使用 OAuth1 和 OAuth2 认证提供商进行登录的可链式处理器。

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

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

  • goth - 提供了一种简单、清晰且符合惯用法的 OAuth 和 OAuth2 使用方式。开箱即用支持多个提供商。

  • jeff - 简单、灵活、安全且符合惯用法的 Web 会话管理,支持可插拔后端。

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

  • jwt - Go 语言中安全、简单且快速的 JSON Web Tokens。

  • jwt-auth - 具有多种配置选项的 Golang http 服务器 JWT 中间件。

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

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

  • keto - "Zanzibar: Google's Consistent, Global Authorization System" 的开源 (Go) 实现。提供 gRPC、REST API、newSQL 以及一种简单且细粒度的权限语言。支持 ACL、RBAC 及其他访问模型。

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

  • oauth2 - goauth2 的继任者。通用的 OAuth 2.0 包,支持 JWT、Google APIs、Compute Engine 和 App Engine。

  • oidc - 专为 Go 编写并经过 OpenID Foundation 认证的易用的 OpenID Connect 客户端和服务器库。

  • openfga - 基于 "Zanzibar: Google's Consistent, Global Authorization System" 论文实现的细粒度授权。由 CNCF 支持。

  • osin - Golang OAuth2 服务器库。

  • otpgen - 用于生成 TOTP/HOTP 代码的库。

  • otpgo - Go 的基于时间的一次性密码 (TOTP) 和基于 HMAC 的一次性密码 (HOTP) 库。

  • paseto - Platform-Agnostic Security Tokens (PASETO) 的 Golang 实现。

  • permissions - 用于跟踪用户、登录状态和权限的库。使用安全 cookie 和 bcrypt。

  • scope - 在 Go 中轻松管理 OAuth2 作用域。

  • scs - HTTP 服务器的会话管理器。

  • securecookie - 高效的安全 cookie 编码/解码。

  • session - Web 服务器的 Go 会话管理(包括对 Google App Engine - GAE 的支持)。

  • sessions - 简单、高性能、高度可定制的 Go HTTP 服务器会话服务。

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

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

  • spicedb - 受 Zanzibar 启用的细粒度授权数据库。

  • x509proxy - 处理 X509 代理证书的库。

⬆ 返回顶部

Blockchain

用于构建区块链的工具。

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

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

  • gno - 一个使用 Golang 和 Gnolang 构建的综合智能合约套件,Gnolang 是一种为区块链设计的确定性 Go 变体。

  • go-ethereum - Ethereum 协议的官方 Go 实现。

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

  • gossamer - Polkadot Host 的 Go 实现。

  • kubo - 一个 Go 编写的 IPFS 实现。它提供内容可寻址存储,可用于 DApps 中的去中心化存储。它基于 IPFS 协议。

  • lnd - 一个完整的 Lightning Network 节点实现。

  • nview - Cardano Node 的本地监控工具。它是一个 TUI(终端用户界面),旨在适配大多数屏幕。

  • pactus - Pactus 区块链的 Go 全节点实现。

  • solana-go - 用于与 Solana JSON RPC 和 WebSocket 接口交互的 Go 库。

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

  • tronlib - 一个全面的、生产就绪的 Go SDK,用于与 TRON 区块链交互,支持 TRC20 代币。

⬆ 返回顶部

Bot Building

用于构建和操作 bot 的库。

  • arikawa - 一个用于 Discord API 的库和框架。
  • bot - 零依赖的 Telegram Bot 库,附带额外的 UI 组件。
  • echotron - 一个用于 Go 语言 Telegram Bots 的优雅且并发的库。
  • go-joe - 一个受 Hubot 启发但用 Go 编写的通用 bot 库。
  • go-sarah - 用于构建针对 LINE、Slack、Gitter 等所需聊天服务的 bot 的框架。
  • go-tg - 根据官方文档生成的用于访问 Telegram Bot API 的 Go 客户端库,包含用于构建复杂 bot 的内置功能。
  • go-twitch-irc - 用于编写 twitch.tv 聊天 bot 的库
  • micha - 用于 Telegram bot api 的 Go 库。
  • slack-bot - 为懒惰开发者准备的即用型 Slack Bot:自定义命令、Jenkins、Jira、Bitbucket、Github...
  • slacker - 易于使用的创建 Slack bots 的框架。
  • telebot - Telegram bot 框架是用 Go 编写的。
  • telego - 用于 Golang 的 Telegram Bot API 库,具有完整的一对一 API 实现。
  • telegram-bot-api - 简单且干净的 Telegram bot 客户端。
  • TG - Go 语言的 Telegram Bot 框架。
  • wayback - 一个用于 Telegram、Mastodon、Slack 和其他消息平台的 bot,用于归档网页。
  • ymsdk - 用于 Yandex Messenger Bot API 的 Go SDK,具有类型安全模型、自动重试和速率限制处理。
    • Wisp - Go 语言的事件驱动交易框架。现货、永续期货、预测市场。多交易所(Bybit、Hyperliquid、Polymarket)。

⬆ 返回顶部

构建自动化

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

  • 1build - 用于无缝管理项目特定命令的命令行工具。
  • air - Air - Go 应用的实时重载。
  • anko - 支持多种编程语言的简单应用程序监视器。
  • gaper - 当 Go 项目崩溃或某些被监视的文件发生变化时,构建并重启该项目。
  • gilbert - Go 项目的构建系统和任务运行器。
  • gob - Gradle/Maven 风格的 Go 项目构建工具。
  • goyek - 在 Go 中创建构建流水线。
  • mage - Mage 是一个使用 Go 编写的类 make/rake 构建工具。
  • mmake - 现代版 Make。
  • realize - 带有文件监视器和实时重载的 Go 构建系统。使用自定义路径运行、构建并监视文件变化。
  • rex - 零配置通用项目运行器。检测您的技术栈(Go, Node, Python, Rust, PHP, Zig, Elixir)并运行正确的命令。
  • Task - 简单的 "Make" 替代方案。
  • taskctl - 并发任务运行器。
  • xc - 使用 README.md 定义任务的任务运行器,可执行的 Markdown。

⬆ 返回顶部

命令行

高级控制台 UI

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

  • asciigraph - 用于在命令行应用中生成轻量级 ASCII 折线图 ╭┈╯ 的 Go 包,无其他依赖。

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

  • box-cli-maker - 在终端中渲染高度可定制的方框。

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

  • bubbles - 用于 bubbletea 的 TUI 组件。

  • bubbletea - 基于 The Elm Architecture 构建终端应用的 Go 框架。

  • chroma16 - 从单个种子颜色或字符串生成和谐的 16 色终端调色板。

  • crab-config-files-templating - 用于 kubernetes 清单或通用配置文件的动态配置文件模板工具。

  • ctc - 非侵入式跨平台终端颜色库,无需修改 Print 方法。

  • fx - 终端 JSON 查看器与处理器。

  • go-ataman - 用于在终端中渲染 ANSI 彩色文本模板的 Go 库。

  • go-colorable - Windows 下的可着色写入器。

  • go-colortext - 用于终端彩色输出的 Go 库。

  • go-isatty - golang 的 isatty。

  • go-palette - 使用 ANSI 颜色提供优雅且便捷样式定义的 Go 库。完全兼容并封装 fmt library 以实现美观的终端布局。

  • go-prompt - 用于构建强大交互式提示符的库,灵感来自 python-prompt-toolkit

  • go-tui - 一个声明式终端 UI 框架,具有类模板的模板、flexbox 布局以及用于编辑器支持的语言服务器。

  • gocui - 旨在创建控制台用户界面的极简 Go 库。

  • gommon/color - 为终端文本设置样式。

  • gookit/color - 终端颜色渲染工具库,支持 16 色、256 色、RGB 颜色渲染输出,兼容 Windows。

  • goscaf - goscaf 通过交互式 CLI 生成具有主见性、生产质量的 Go 项目样板代码。停止在项目之间复制粘贴骨架代码。

  • lazyenv - 用于浏览、比较和编辑 .env 文件的 TUI。

  • lipgloss - 在终端中声明式地定义颜色、格式和布局的样式。

  • loom - 用于构建 TUI 的信号驱动响应式组件框架。

  • marker - 匹配和标记字符串以生成彩色终端输出的最简单方式。

  • mpb - 用于终端应用的多进度条。

  • phoenix - 高性能 TUI 框架,具有受 Elm 启发的架构、完美的 Unicode 渲染和零分配事件系统。

  • progressbar - 在所有操作系统中都能工作的基本线程安全进度条。

  • pterm - 一个用于美化所有平台控制台输出的库,具有许多可组合的组件。

  • simpletable - 使用 Go 在终端中创建简单的表格。

  • spinner - 一个易于提供带选项的终端旋转器的 Go 包。

  • tabby - 一个用于超简单 Golang 表格的小型库。

  • table - 用于终端彩色表格的小型库。

  • termbox-go - Termbox 是一个用于创建跨平台文本界面的库。

  • termdash - 基于 termbox-go 并受 termui 启发的 Go 终端仪表盘。

  • termenv - 为您的终端应用程序提供高级 ANSI 样式和颜色支持。

  • termui - 基于 termbox-go 并受 blessed-contrib 启发的 Go 终端仪表盘。

  • uilive - 用于实时更新终端输出的库。

  • uiprogress - 用于在终端应用程序中渲染进度条的灵活库。

  • uitable - 使用表格数据提高终端应用程序可读性的库。

  • vhs - 您的 CLI 家庭录像机 - 从代码生成终端 GIF 用于文档和教程。

  • yacspin - 又一个 CLI Spinner 包,用于处理终端旋转器。

⬆ 返回顶部

Standard CLI

用于构建标准或基础 Command Line 应用程序的库。

  • acmd - 简单、实用且带有主观观点的 Go CLI 包。

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

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

  • boa - 从结构体标签中声明标志、环境变量、验证和配置文件。基于 cobra 构建。

  • carapace - 用于 spf13/cobra 的命令参数补全生成器。

  • carapace-bin - 多 shell 多命令参数补全器。

  • carapace-spec - 使用规范文件定义简单的补全。

  • climax - 具有“人性化”界面的替代 CLI,秉承 Go 命令的精神。

  • clîr - 一个简单明了的 CLI 库。无依赖。

  • cmd - 以惯用方式扩展标准 flag 包以支持子命令等更多功能。

  • cmdr - 一个 POSIX/GNU 风格、类似 getopt 的命令行 UI Go 库。

  • cobra - 现代 Go CLI 交互的指挥官。

  • command-chain - 用于配置和运行命令链的 Go 库 - 例如 unix shell 中的管道处理。

  • commandeer - 对开发者友好的 CLI 应用:根据结构体字段和标签设置标志、默认值和用法。

  • complete - 用 Go 编写 bash 补全 + Go 命令 bash 补全。

  • console 用于 Cobra 命令的闭环应用库,包含 oh-my-posh 提示符等。

  • Dnote - 一个支持多设备同步的简单命令行笔记本。

  • elvish - 一种富有表现力的编程语言和多功能交互式 shell。

  • env - 基于标签的结构体环境配置。

  • flaggy - 一个健壮且符合惯用法的 flags 包,具有出色的子命令支持。

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

  • flash-flags - 超快、零依赖、符合 POSIX 标准的标志解析库,可作为带有安全加固的 stdlib 替代方案使用。

  • getopt - 一个精确的 Go getopt,已针对 GNU libc 实现进行验证。

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

  • go-flags - go 命令行选项解析器。

  • go-getoptions - 受 Perl 的 GetOpt::Long 灵活性启发的 Go 选项解析器。

  • go-readline-ny - 一个可定制的行编辑库,支持 Emacs 键位绑定、Unicode、补全和语法高亮。用于 NYAGOS shell。

  • gocmd - 用于构建命令行应用程序的 Go 库。

  • goopt - 一个声明式、基于结构体标签的 Go CLI 框架,具有广泛的功能集,如分层命令/标志、i18n、shell 补全和验证。

  • hashicorp/cli - 用于实现命令行界面的 Go 库。

  • hiboot cli - 具有自动配置和依赖注入的 cli 应用框架。

  • job - JOB,将您的短期命令作为长期任务。

  • kingpin - 支持子命令的命令行和标志解析器(已被 kong 取代;见下文)。

  • liner - 用于命令行界面的 Go readline 类库。

  • mcli - 一个极简但功能强大的 Go CLI 库。

  • memsh - Go 中的虚拟 bash shell:针对内存文件系统 (afero) 执行 shell 命令,支持 WASM 插件和可嵌入的 HTTP 服务器。

  • mkideal/cli - 基于 golang struct tags 的丰富且易用的命令行包。

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

  • neuron-cli - 一个本地优先、兼容 Obsidian 的终端知识管理器。

  • OpenCLI - CLI 的 OpenAPI 风格规范;在语言无关的文档中定义接口,以生成文档和框架样板代码。

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

  • orpheus - 具有安全加固、插件存储系统和生产环境可观测性功能的 CLI 框架。

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

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

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

  • structcli - 消除 Cobra 样板代码:从 Go structs 声明式地构建功能强大的丰富 CLI。

  • strumt - 用于创建提示链的库。

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

  • teris-io/cli - 用于在 Go 中构建命令行接口的简单且完整的 API。

  • urfave/cli - 用于在 Go 中构建命令行应用的简单、快速且有趣的包(原 codegangsta/cli)。

  • version - 以多种格式收集和显示 CLI 版本信息,并附带升级通知。

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

  • wmenu - 用于提示用户进行选择的 CLI 应用程序的易用的菜单结构。

⬆ 返回顶部

配置

用于配置解析的库。

  • aconfig - 简单、实用且带有主观倾向的配置加载器。

  • argus - 基于 MPSC 环形缓冲区的文件监视和配置管理,支持自适应批处理策略和通用格式解析(JSON、YAML、TOML、INI、HCL、Properties)。

  • azureappconfiguration - 用于从 Go 应用程序消费 Azure App Configuration 中数据的配置提供程序。

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

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

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

  • config - 使用文件、环境变量或标志,仅需两行代码即可配置您的应用。

  • config - 基于结构体的配置加载器,具有专用的配置文件解析器,支持环境变量、标志、默认值和验证。

  • configuration - 用于从环境变量、文件、标志和 'default' 标签初始化配置结构体的库。

  • configuro - 专注于 12-Factor 合规应用的、从 ENV 和文件加载和验证配置的主观框架。

  • confiq - Go 的结构化数据格式到配置结构体解码库 - 支持多种数据格式。

  • confita - 从多个后端级联加载配置到结构体。

  • conflate - 用于合并来自任意 URL 的多个 JSON/YAML/TOML 文件、针对 JSON schema 进行验证以及应用 schema 中定义的默认值的库/工具。

  • enflag - 面向容器、零依赖的配置库,统一了 Env 变量和 Flag 解析。使用泛型实现类型安全,无需反射或结构体标签。

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

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

  • env - 一个支持反序列化到结构体的环境工具包。

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

  • envh - 用于管理环境变量的辅助工具。

  • envyaml - 支持环境变量的 Yaml 读取器。它有助于将密钥作为环境变量,但将配置作为结构化 Yaml 加载。

  • fig - 一个用于从文件和环境变量读取配置的小型库(支持验证和默认值)。

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

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

  • go-aws-ssm - 一个从 AWS System Manager - Parameter Store 获取参数的 Go 包。

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

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

  • go-config - 用于处理应用程序配置的简单且便捷的库。

  • go-external-config - 受 Spring 启发的 Go 配置管理库。

  • go-external-config/aws - go-external-config 的 AWS 属性源支持。

  • go-external-config/consul - go-external-config 的 Consul 属性源支持。

  • go-external-config/vault - go-external-config 的 Vault 属性源支持。

  • go-ini - 一个用于序列化和反序列化 INI 文件的 Go 包。

  • go-ssm-config - 用于从 AWS SSM (Parameter Store) 加载配置参数的 Go 工具。

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

  • GoCfg - 基于结构体标签契约、自定义值提供器、解析器和文档生成的配置管理器。可定制且简单。

  • goconfig - 从标志、环境变量、config.json 和默认值中填充 Go 结构体,具有确定性的优先级。无额外依赖。

  • godotenv - Ruby dotenv 库的 Go 移植版(从 .env 加载环境变量)。

  • goenv - 读取 ENV 环境变量并报告进程是在生产环境还是开发环境中运行。

  • GoLobby/Config - GoLobby Config 是 Go 编程语言的一个轻量级但功能强大的配置管理器。

  • gone/jconf - 模块化 JSON 配置。将配置结构体与它们所配置的代码放在一起,并将解析委托给子模块,同时不牺牲完整的配置序列化。

  • gonfig - 基于标签的配置解析器,将值从不同的提供者加载到类型安全的结构体中。

  • gonfiguration - 通过反射将配置从环境变量加载到结构体中,支持结构体标签默认值和必填字段。

  • gookit/config - 应用配置管理(加载、获取、设置)。支持 JSON、YAML、TOML、INI、HCL。多文件加载,数据覆盖合并。

  • harvester - Harvester,一个易于使用的静态和动态配置包,支持种子数据、环境变量和 Consul 集成。

  • hedzr/store - 可扩展的高性能配置管理库,针对分层数据进行了优化。

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

  • hocon - 用于处理 HOCON(一种人类友好的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多文件等功能。

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

  • ini - INI 解析与写入库,反序列化为结构体,序列化为 JSON,写入文件,监视文件。

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

  • koanf - 轻量级、可扩展的 Go 应用配置读取库。内置支持 JSON、TOML、YAML、环境变量和命令行。

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

  • konfig - 面向分布式处理时代的可组合、可观测且高性能的 Go 配置处理。

  • kong - 支持任意复杂命令行结构以及 YAML、JSON、TOML 等额外配置来源的命令行解析器(kingpin 的继任者)。

  • nasermirzaei89/env - 用于读取环境变量的简单实用包。

  • nfigure - 基于库的 struct-tag 命令行配置(Posix 和 Go 风格);环境变量、JSON、YAML

  • onion - Go 的分层配置,支持 JSON、TOML、YAML、properties、etcd、环境变量以及使用 PGP 的加密。

  • piper - 带有配置继承和键生成的 Viper 封装。

  • sonic - 一个极速的 JSON 序列化与反序列化库。

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

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

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

  • viper - 带利齿的 Go 配置。

  • xdg - XDG Base Directory SpecificationXDG user directories 的 Go 实现。

  • yamagiconf - 用于 Go 配置的 YAML "安全子集"。

  • zerocfg - 零成本、简洁的配置管理,避免样板代码和重复代码,支持带优先级覆盖的多个来源。

⬆ 返回顶部

持续集成

用于辅助持续集成的工具。

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

  • Bencher - 一套旨在在 CI 中捕获性能回归的持续基准测试工具集。

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

  • dot - 一个极简的、本地优先的持续集成系统,使用 Docker 按阶段并发运行任务。

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

  • go-beautiful-html-coverage - 一个用于在拉取请求中跟踪代码覆盖率的 GitHub Action,提供美观的 HTML 预览,且免费。

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

  • go-semver-release - 自动化 Git 仓库的语义化版本管理。

  • go-test-coverage - 一个当测试覆盖率低于设定阈值时报告问题的 GitHub Action。

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

  • gotestfmt - 面向人类的 go test 输出。

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

  • muffet - 用 Go 编写的快速网站链接检查器,参见 alternatives

  • overalls - 用于 goveralls 等工具的多包 go 项目 coverprofile。

  • PikoCI - 受 Concourse 启发的自托管 CI/CD。单一二进制文件,任意数据库,任意队列。HCL 流水线,可插拔的资源类型和运行器。

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

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

⬆ 返回顶部

CSS 预处理器

用于预处理 CSS 文件的库。

  • go-css - 一个用 Go 编写的非常简单的 CSS 解析器。
  • go-libsass - 100% 兼容 Sass 的 libsass 项目的 Go 封装。

⬆ 返回顶部

数据集成框架

用于执行 ELT / ETL 的框架

  • Benthos - 一种在多种协议之间进行消息流传输的桥接工具。
  • CloudQuery - 一个具有可插拔架构的高性能 ELT 数据集成框架。
  • confluence2md - Confluence 到 Markdown 的爬虫和转换器。
  • omniparser - 一个通用的 ETL 库,以流式方式解析文本输入(CSV/txt/JSON/XML/EDI/X12/EDIFACT 等),并使用数据驱动的 schema 将数据转换为 JSON 输出。

⬆ 返回顶部

数据结构与算法

位打包与压缩

  • bingo - 快速、零分配、保持字典序的将原生类型打包为字节的工具。
  • binpacker - 二进制打包和解包工具,帮助用户构建自定义二进制流。
  • bit - 带有额外位操作函数的 Golang 集合数据结构。
  • crunch - 一个实现缓冲区以轻松处理各种数据类型的 Go 包。
  • go-ef - Elias-Fano 编码的 Go 实现。
  • roaring - 实现压缩位集的 Go 包。

位集

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

布隆过滤器和布谷鸟过滤器

  • bloom - 实现布隆过滤器的 Go 包。
  • bloom - 用 Go 实现的布隆过滤器。
  • bloom - Golang 布隆过滤器实现。
  • bloomfilter - 另一个用 Go 实现的布隆过滤器,兼容 Java 的 Guava 库。
  • boomfilters - 用于处理连续、无界流数据的概率数据结构。
  • cuckoo-filter - 布谷鸟过滤器:一种全面的布谷鸟过滤器,与其他实现相比可配置且空间优化,并且原论文中提到的所有功能均可用。
  • cuckoofilter - 布谷鸟过滤器:一种用 Go 实现的计数布隆过滤器的良好替代方案。
  • ribbonGo - Ribbon 过滤器的首个纯 Go 实现(实际上比布隆过滤器和 Xor 过滤器更小),用于空间高效的近似集合成员资格查询。
  • ring - 高性能、线程安全的布隆过滤器的 Go 实现。

数据结构和算法集合

  • algorithms - 算法和数据结构。CLRS 学习。
  • go-datastructures - 有用、高性能且线程安全的数据结构集合。
  • gods - Go 数据结构。容器、集合、列表、栈、映射、双向映射、树、HashSet 等。
  • gostl - 为 Go 设计的数据结构和算法库,旨在提供类似于 C++ STL 的功能。

迭代器

  • gloop - 利用 Go 的 range-over-func 特性实现便捷的循环。
  • goterator - 提供 map 和 reduce 功能的迭代器实现。
  • iter - C++ STL 迭代器和算法的 Go 实现。

Maps

另请参阅 Database 以了解更复杂的键值存储,以及 Trees 以了解 额外的有序 map 实现。

  • cmap - 一个线程安全的 Go 并发 map,支持使用 interface{} 作为键并自动扩展分片。
  • concurrent-swiss-map - 基于 Swiss Map 的高性能、线程安全的泛型并发哈希 map 实现。
  • dict - Go 中类似 Python 的字典 (dict)。
  • genericsyncmap - sync.Map 的类型安全泛型封装,具备完整的方法兼容性且零依赖。
  • go-shelve - Go 编程语言中一种持久的、类似 map 的对象。支持多种嵌入式键值存储。
  • goradd/maps - 面向 map 的 Go 1.18+ 泛型 map 接口;安全 map;有序 map;有序、安全 map 等。
  • hmap - HMap 是一种并发且安全的泛型支持 Map 实现,旨在提供易于使用的 API。

Miscellaneous Data Structures and Algorithms

  • combo - 组合操作,包括排列、组合和可重复组合。
  • concurrent-writer - bufio.Writer 的高并发即插即用替代方案。
  • count-min-log - Count-Min-Log 草图的 Go 实现:使用近似计数器进行近似计数(类似 Count-Min 草图,但使用更少的内存)。
  • FSM - Go 的 FSM。
  • 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 的数据框、序列和数据整理方法的实现。
  • hide - 一种 ID 类型,通过哈希进行序列化/反序列化,以防止将 ID 发送给客户端。
  • hyperloglog - 具有 Sparse、LogLog-Beta 偏差校正和 TailCut 空间缩减的 HyperLogLog 实现。
  • quadtree - 通用的、零分配的、100% 测试覆盖的四叉树。
  • slices - 纯泛型切片函数。

可空类型

  • nan - 零分配的可空结构体,集成于单一库中,提供便捷的转换函数、序列化器与反序列化器。
  • null - 可序列化/反序列化为 JSON 的可空 Go 类型。
  • typ - 空类型、安全的原始类型转换以及从复杂结构中获取值。

队列

  • deheap - 双端堆(最小-最大堆),对最小元素和最大元素的访问复杂度均为 O(log n)。
  • deque - 高度优化的双端队列。
  • deque - 快速环形缓冲区双端队列。
  • dqueue - 简单、内存中、零依赖且经过实战检验的线程安全延迟队列。
  • goconcurrentqueue - 并发 FIFO 队列。
  • hatchet - 分布式、容错任务队列。
  • list - 一个通用的、线程安全的双向链表,支持完整的迭代器,并包含用于嵌入式用途的侵入式单向链表;是 container/list 的功能丰富替代品。
  • memlog - 一个易于使用、轻量级、线程安全且仅追加的内存数据结构,灵感源自 Apache Kafka。
  • queue - 针对 Go 的多种线程安全、通用队列实现。

集合

  • dsu - Go 语言中的不相交集合数据结构实现。
  • golang-set - 面向 Go 的线程安全与非线程安全高性能集合。
  • goset - 一个实用的 Go 语言 Set 集合实现。
  • set - 使用 LinkedHashMap 在 Go 中实现的简单集合数据结构。

文本分析

  • bleve - 用于 Go 的现代文本索引库。
  • go-adaptive-radix-tree - 自适应基数树(Adaptive Radix Tree)的 Go 实现。
  • go-edlib - 兼容 Unicode 的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau-Levenshtein、Jaro-Winkler 等)。
  • levenshtein - 支持自定义编辑成本及针对公共前缀的 Winkler 式奖励的 Levenshtein 距离和相似度度量。
  • levenshtein - 在 Go 中计算 Levenshtein 距离的实现。
  • mspm - 用于信息检索的多字符串模式匹配算法。
  • parsefields - 用于解析类 JSON 日志以收集唯一字段和事件的工具。
  • ptrie - 前缀树(prefix tree)的一种实现。
  • radixtree - 自适应基数树(前缀树或紧凑 Trie)。
  • trie - Go 中的 Trie 实现。

Trees

  • graphlib - 拓扑排序库,用于 DAG 图的排序和剪枝。
  • hashsplit - 将字节流分割为块,并将块组织成树,边界由内容而非位置决定。
  • merkle - 高效计算 Merkle 根哈希和包含证明。
  • skiplist - 非常快速的 Go 跳表(Skiplist)实现。
  • skiplist - Go 中的跳表(Skiplist)实现。
  • treemap - 底层使用红黑树的通用键排序映射。

Pipes

  • ordered-concurrently - 一个 Go 模块,并发处理工作,并按输入顺序通过 channel 返回输出。
  • parapipe - 一种 FIFO 管道,在保持消息和结果顺序的同时,并行执行每个阶段。
  • pipeline - 一种支持扇入(fan-in)和扇出(fan-out)的管道实现。
  • pipelines - 用于并发处理的通用管道函数。

⬆ back to top

Database

Caches

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

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

  • BigCache - 适用于 GB 级数据的高效键值缓存。

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

  • cachego - 支持多种驱动程序的 Golang 缓存组件。

  • clusteredBigCache - 支持集群和单个条目过期的 BigCache。

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

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

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

  • fastcache - 适用于大量条目的快速线程安全内存缓存。最小化 GC 开销。

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

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

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

  • go-freelru 一个无 GC、快速且通用的 LRU 哈希映射库,支持可选的锁、分片、驱逐和过期。

  • go-gcache - GCache 的通用版本,支持可过期缓存、LFU、LRU 和 ARC 的缓存。

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

  • gocache - 一个完整的 Go 缓存库,支持多种存储(内存、memcache、redis 等),可链式调用、可加载、支持指标缓存等。

  • gocache - 一个无数据竞争的 Go 缓存库,具有高性能和自动清理功能

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

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

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

  • jetcache-go - 支持多级缓存的统一 Go 缓存库。

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

  • otter - 一个高性能的无锁 Go 缓存。比 Ristretto 及其同类产品快很多倍。

  • pocache - Pocache 是一个极简的缓存包,专注于抢占式乐观缓存策略。

  • ristretto - 一个高性能的内存受限 Go 缓存。

  • sturdyc - 一个具有高级并发特性的缓存库,旨在使 I/O 密集型应用健壮且高性能。

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

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

  • ttlcache - 一个具有条目过期和泛型支持的内存缓存。

  • ttlcache - 内存键值存储,每条记录具有 TTL。

用 Go 实现的数据库

  • badger - 用 Go 编写的快速键值存储。

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

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

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

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

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

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

  • column - 高性能、列式、可嵌入的内存存储,支持位图索引和事务。

  • CovenantSQL - CovenantSQL 是一个基于区块链的 SQL 数据库。

  • Databunker - 旨在符合 GDPR 和 CCPA 的个人身份信息(PII)存储服务。

  • dgraph - 可扩展的、分布式的、低延迟、高吞吐量图数据库。

  • DiceDB - 一个开源的、快速的、响应式的内存数据库,针对现代硬件进行了优化。更高的吞吐量和更低的平均延迟,使其成为现代工作负载的理想选择。

  • diskv - 自研的基于磁盘的键值存储。

  • dolt - Dolt – 它是数据的 Git。

  • eliasdb - 无依赖的、事务性图数据库,具有 REST API、短语搜索和类 SQL 查询语言。

  • gedb - 类 MongoDB 的嵌入式数据库,使用纯 Go 编写。支持索引和复杂查询。

  • go-sqlite – 一个纯 Golang 实现的 SQLite 驱动程序,无需 CGO。

  • godis - 一个使用 Golang 实现的高性能 Redis 服务器和集群。

  • goleveldb - LevelDB 键值数据库的 Go 实现。

  • hare - 一个简单的数据库管理系统,将每个表存储为行分隔 JSON 的文本文件。

  • immudb - immudb 是一个轻量级、高速的不可变数据库,用于使用 Go 编写的系统和应用。

  • influxdb - 用于指标、事件和实时分析的可扩展数据存储。

  • ledisdb - Ledisdb 是一个基于 LevelDB 的高性能类 Redis NoSQL 数据库。

  • levigo - Levigo 是 LevelDB 的 Go 封装。

  • libradb - LibraDB 是一个代码量少于 1000 行的简单数据库,用于学习。

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

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

  • lynxdb - 轻量级列式日志分析数据库,具有受 SPL 启发的管道式查询语言。

  • MemHop - 面向 AI 智能体的嵌入式认知记忆数据库。六层架构 (L0-L5),Dream 整合管道,三通道 RRF 检索 (BM25 + f16 向量 + 实体),单个 .meh 文件,纯 Go,零基础设施。

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

  • minisql - 嵌入式单文件 SQL 数据库。

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

  • nanotdb - 一个轻量级、零依赖、仅追加的时间序列数据库和仪表板,专为低功耗硬件优化。

  • NoKV - 面向分布式文件系统、对象存储和 AI 数据集工作负载的原生元数据服务。

  • NornicDB - 高性能图 + 向量数据库(兼容 Neo4j 和 qDrant),专注于 AI 系统的低延迟图-rag 检索。

  • nutsdb - Nutsdb 是一个用纯 Go 编写的简单、快速、可嵌入、持久化的键值存储。它支持完全可串行化的事务以及列表、集合、有序集合等多种数据结构。

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

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

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

  • pogreb - 面向读密集型工作负载的嵌入式键值存储。

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

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

  • redka - 使用 SQLite 重新实现的 Redis。

  • rosedb - 基于 LSM+WAL 的嵌入式 k-v 数据库,支持 string、list、hash、set、zset。

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

  • 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 语言的数据库模式演化库。

  • db-migrator.go - 支持 PostgreSQL、MySQL、ClickHouse、Tarantool 和 Apache Iceberg 的版本化数据库模式迁移 CLI。

  • dbmate - 轻量级、框架无关的数据库迁移工具。

  • go-fixtures - 适用于 Golang 优秀内置 database/sql 库的 Django 风格 fixtures。

  • go-pg-migrate - 用于 go-pg 迁移管理的 CLI 友好型包。

  • go-pg-migrations - 一个帮助使用 go-pg/pg 编写迁移的 Go 包。

  • goavro - 一个用于编码和解码 Avro 数据的 Go 包。

  • godfish - 数据库迁移管理器,支持原生查询语言。支持 cassandra、mysql、postgres、sqlite3。

  • goose - 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演化。

  • gorm-seeder - Gorm ORM 的简单数据库填充器。

  • gormigrate - Gorm ORM 的数据库模式迁移辅助工具。

  • libschema - 在每个库中单独定义您的迁移。开源库的迁移。MySQL 和 PostgreSQL。

  • migrate - 数据库迁移。CLI 和 Golang 库。

  • migrator - 极简的 Go 数据库迁移库。

  • migrator - 专为运行功能迁移和管理数据库模式更新而设计的 MySQL 数据库迁移工具,使用直观的 Go 代码。

  • schema - 用于在 Go 二进制文件中嵌入针对 database/sql 兼容数据库的模式迁移的库。

  • skeema - 针对 MySQL 的纯 SQL 模式管理系统,支持分片及外部在线模式变更工具。

  • soda - 适用于 MySQL、PostgreSQL 和 SQLite 的数据库迁移、创建、ORM 等。

  • sql-migrate - 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。

  • sqlize - 数据库迁移生成器。允许通过对模型和现有 SQL 进行差异比较来生成 SQL 迁移。

数据库工具

  • chproxy - ClickHouse 数据库的 HTTP 代理。
  • clickhouse-bulk - 收集小型插入操作并向 ClickHouse 服务器发送大型请求。
  • database-gateway - 在生产环境中运行 SQL,支持 ACL、日志和共享链接。
  • dbbench - 支持多种数据库和脚本的数据库基准测试工具。
  • dg - 一种快速的数据生成器,可从生成的关系数据中产生 CSV 文件。
  • gatewayd - 云原生数据库网关和构建数据驱动应用的框架。类似于 API 网关,但用于数据库。
  • go-mysql - 用于处理 MySQL 协议和复制的 Go 工具集