Go 资源列表

【导读】:awesome-go 就是 avelino 发起维护的 Go 资源列表,内容包括:音频和音乐库、命令行工具、服务端应用、流处理、持续集成、数据库、机器学习、NLP、物联网、中间件、文本处理、安全、机器人技术等。

音频和音乐库

  • flac: 原生 Go 语言编写的 FLAC 数据流编码与解码器。
  • gaad: 原生 Go 语言编写的 AAC 比特流解析器。
  • go-sox: libsox 库的 go 语言封装
  • GoAudio: 原生 Go 语言编写的音频处理库。
  • gosamplerate: libsamplerate 库的 Go 语言封装
  • id3v2: go 语言开发的 ID3 编码和解码库,具有快速和稳定的特性。
  • malgo: go 语言开发的迷你音频库。
  • minimp3: 轻量级 MP3 解码库。
  • mix: 针对音乐类应用程序的基于序列的 Go 原生音频混音器。
  • mp3: 原生 Go 语言的 mp3 解码器.
  • music-theory: 基于 go 语言音乐理论模型。
  • Oto: 可用于在多个平台上播放音频的底层库
  • PortAudio: 音频 I/OPortAudiogo 语言封装
  • portmidi: 音频 I/OPortMidigo 语言封装
  • vorbis: Go 语言版 Vorbis 解码器(使用到 CGO,但并不依赖与 cgo)
  • waveform: 基于音频流来生成音频波形图的 go 语言库

认证和 OAuth 授权

  • authboss: 针对 web 应用的模块化认证系统,尽量去除模版代码和硬编码来以灵活可配置的方式来嵌入到 web 应用程序中,从而避免重复编码和重复配置。
  • branca: Branca TokensGolang 实现。
  • casbin: 支持 ACLRBACABAC 等访问控制模型的授权与认证库。
  • cookiestxt: 支持 cookies.txt 文件格式的解析器。
  • go-email-normalizer: 用于支持电子邮件地址的规范表示的 Golang 库,。
  • go-guardian: Go-Guardian 支持以简洁又清晰的方式来进行 API 认证和 web 认证,认证模型支持 LDAPBasicBearer token 和基于证书的认证
  • go-jose: 相当完整地实现了 JOSE 工作组的 JSON Web TokenJSON Web SignaturesJSON Web Encryption 规范。
  • go-oauth2-server: 不需要其他依赖的、符合规范的、用 Golang 编写的 OAuth2 服务器。
  • gologin: 适用于 OAuth1 和 OAuth2 多身份登录认证的实现方案
  • gorbac: Golang 中一个轻量级的基于角色的访问控制 RBAC 实现。
  • goth: 以简单、干净、常用的方式来使用 OAuthOAuth2。支持多种身份认证。
  • httpauth: HTTP 认证中间件
  • jeff: 简单、灵活、安全、习惯性的 Web 会话管理,支持可插拔的后端。
  • jwt: 干净且易于使用的 JSON 网络令牌 JWT 的实现。
  • jwt: 轻量级 JSON 网络令牌(JWT)库。
  • jwt: 针对 go 语言的 安全、简单、快速的 JSON Web Tokens 。
  • jwt-auth: 用于 Golang http 服务器的 JWT 中间件,有许多配置选项。
  • jwt-go: JSON Web Tokens(JWT)的 Golang 实现。
  • loginsrv: JWT 登录微服务,具有可插拔的后端,如 OAuth2 (Github)htpasswdOSIAM
  • oauth2: 继承自 goauth2。实现了 JWT,Google APIs,GCE,GAE 的通用 OAuth 2.0 授权包。
  • osin: Go 语言 OAuth2 服务器库
  • otpgo: 基于时间的一次性密码 TOTP 和基于 HMAC 的一次性密码 HOTP 库。
  • paseto: 平台无关的安全令牌 PASETOGolang 实现。
  • permissions2: 用于跟踪用户、登录状态和权限的库,依赖安全 cookiesbcrypt
  • rbac: 用于 Go 应用程序的极简 RBAC 库。
  • scope: 在 Go 中轻松管理 OAuth2 作用域。
  • scs: HTTP 服务器的会话管理器。
  • securecookie: 高效的安全 cookie 编码 / 解码库。
  • session: Go 语言会话管理 (支持 Google App Engine - GAE)
  • sessiongate-go: 使用 SessionGate Redis 模块进行 Go 会话管理。
  • sessions: 为 Go 语言 HTTP 服务器开发的非常简单的、高性能的、高可定制的会话服务
  • sessionup: 简单而有效的 HTTP 会话管理和标识库。
  • sjwt: - 简单的 jwt 生成器和解析器。

机器人相关

构建和使用机器人的库

  • ephemeral-roles: 根据语音频道成员是否出现来管理临时角色的机器人。
  • go-chat-bot: 用 Go 编写的 IRCSlackTelegram 机器人。
  • go-joe: 受 Hubot 启发,用 Go 编写的通用型机器人库。
  • go-sarah: 为聊天服务如 LINESlackGitter 等构建机器人的框架。
  • go-tgbot: 由 swagger 文件、基于会话的路由器和中间件生成的纯 Golang 实现的 Telegram 机器人 API 封装。
  • go-twitch-irc: 用于编写 twitch.tv 聊天机器人的库。
  • Golang CryptoTrading Bot: golang 实现的基于控制台的加密货币交易所交易机器人库
  • govkbot: 简单的 Go VK 机器人库。
  • hanu: 用于编写 Slack 机器人的框架。
  • Kelp: Stellar DEX 的官方交易机器人。开箱即用,用 Golang 编写,兼容中心化交易所和自定义交易策略。
  • margelet: 用于构建 Telegram 机器人的框架。
  • micha: 封装 Telegram 机器人 api 的 Go 库。
  • olivia: 一个用人工神经网络构建的聊天机器人。
  • slacker: 用于创建 Slack 机器人的简单易用框架。
  • slackscot: 构建 Slack 机器人的框架。
  • tbot: Telegram 机器人服务器,其 API 类似于 net/http
  • telebot: 用 Go 编写的 Telegram 机器人框架。
  • telegram-bot-api: 简单干净的 Telegram 机器人客户端。
  • Tenyks: 使用 RedisJSON 进行消息传递的面向服务的 IRC 机器人。

命令行工具

标准 CLI

用于创建一个标准命令行应用程序的库

  • 1build: 管理项目专用命令的命令行工具。
  • argparse: 受 Pythonargparse 模块启发的命令行参数解析器。
  • argv: 用于分隔使用 bash 的语法的命令行字符串并将其作为参数的 Go 语言库,
  • cli: 功能强大,使用简单的命令行软件库,基于 Golang 结构体 tag 实现
  • cli: 一个功能丰富、易于使用的命令行工具包
  • climax: 可以显示 “人脸” 的命令替代库。
  • clîr: 一个简单而清晰的 CLI 库,不需要其他依赖。
  • cmd: 扩展了标准 flag 包,具有支持子命令的特性
  • cmdr: 一个 POSIX/GNU 风格,类似于 getopt 的命令行 UI 的 Go 库。
  • cobra: 一个现代化的命令行。
  • commandeer: 开发友好的 CLI 应用程序:基于结构字段和标签设置标志参数、默认值和用法。
  • complete: 使用 Go 语言编写的 bash 命令补全工具以及 Go 命令补全工具
  • Dnote: 支持多设备同步的命令行笔记工具。
  • env: 基于 tag 的结构体环境配置。
  • flag: 简单而强大的 Go 命令行选项解析库,支持子命令。
  • flaggy: 功能强大的 flag 包,具有出色的子命令支持。
  • flagvar: Go 标准标志包的标志参数类型集合。
  • go-arg: Go 中基于结构体的参数解析。
  • go-commander: 用于简化 CLI 工作流程的 Go 库。
  • go-flags: GO 命令行选项解析器。
  • go-getoptions: Go 选项解析器,灵感来自 Perl 中灵活性的 GetOpt::Long
  • gocmd: 用于构建命令行应用程序的 Go 库。
  • hiboot cli: 具有自动配置和依赖注入功能的 cli 应用程序框架。
  • job: 将你的短期命令转化为长期作业。
  • kingpin: 支持子命令的命令行和标志位解析器。
  • liner: 命令行文本解析器
  • mitchellh/cli: 用于实现命令行交互的 Go 语言库
  • mow.cli: 用于构建命令行程序的工具库,支持更加精准的标记及选项解析和验证
  • ops: Unikernel 编辑器和生成器
  • pflag: Go flag 软件包的替代品,实现了 POSIX/GNU 风格的 flags.
  • sand: 用于创建解释器等工具的简单 API 库。
  • sflags: 基于结构体的 flag 生成器,支持 flag, urfave/cli, pflag, cobra, kingpin 等其他库
  • strumt: 用于创建提示链的库。
  • ts: 时间戳转换和比较工具。
  • ukautz/clif: 一个小型命令行程序开发框架
  • urfave/cli: 简单、快速、有趣的、用于构建 Go 语言命令行程序的软件包。
  • wlog: 简单的日志接口,具有跨平台和并发支持等特性
  • wmenu: 为命令行程序提供简单的菜单结构选项来提供给用户来进行选择

高级控制台 UI

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

  • asciigraph: 没有其他依赖的可以在命令行应用中制作轻量级的 ASCII 行图 ┈┈╭╯ 的 go 语言工具包
  • aurora: ANSI 终端颜色,支持 fmt.Printf/Sprintf
  • cfmt: 受 bootstrap 颜色类启发的上下文 fmt
  • cfmt: 简单方便的格式化风格化输出,与 fmt 库完全兼容
  • chalk: 符合直觉的用于美化命令行输出的库
  • colourize: 支持终端输出带色彩的 ANSI 字符。
  • ctc: 非侵入式的跨平台终端颜色库,不需要修改打印方法
  • go-ataman: 用于在终端中渲染 ANSI 彩色文本模板的 Go 库。
  • go-colorable: Windows 上使用的可以输出彩色文本的库
  • go-colortext: 用于在终端进行多彩文字输出的库
  • go-isatty: go 语言版本的 isatty
  • go-prompt: 受 python-prompt-toolkit 的启发,用于构建强大的交互式提示符的 go 语言库
  • gocui: 极简的控制台用户界面创建库.
  • gommon/color :多样的命令行文本
  • gookit/color: 格式化终端文本。
  • mpb: 为命令行提供多个进度条的工具
  • progressbar: 适用于各种操作系统的,线程安全进度条管理库。
  • pterm: 在每个平台上美化控制台输出的库,有许多可组合的组件。
  • simpletable: 在终端中用 Go 实现简单的表格。
  • tabby: 超级简单的 Golang 表格的库。
  • table: 基于终端颜色的表格库。
  • tabular: 从命令行工具中打印 ASCII 表格,而不需要向 API 传递大量数据集。
  • termbox-go: Termbox 是一个用于创建跨平台文本界面的库。
  • termdash: 基于 termbox-goGo 终端仪表盘,灵感来自 termui
  • termui: 基于 termbox-goGo 终端仪表盘,灵感来源于 blessed-contrib
  • uilive: 用于实时更新终端输出的库
  • uiprogress :用于渲染进度条的库
  • uitable: 用于改善命令行中,表格数据可读性的库
  • yacspin: 用于终端的 CLi Spinner 工具包。

配置管理

配置解析库

  • aconfig: 简单、有用的配置加载器。
  • cleanenv: 简约的配置读取器 (从文件、ENV 以及任何你想要的地方读取)。
  • config: 一个轻量级但功能强大的 Go 项目配置包。
  • config: 云端本地应用配置。只需两行就可以将 ENV 绑定到结构上
  • config: 具有环境变量和标志解析功能的 JSONYAML 配置包装器。
  • configuration: 用于从环境变量、文件、标志和 “默认 “标签初始化配置结构的库。
  • configure: 可以通过多种途径进行配置,包括 JSON 标记位以及环境变量
  • configuro: 来自 ENVFiles 的意见性配置加载和验证框架,专注于 12-Factor 兼容应用程序。
  • confita: 从多个后端级联加载配置到一个结构中。
  • conflate: 从任意 URL 合并多个 JSON/YAML/TOML 文件的库 / 工具,对 JSON 模式进行验证,并应用模式中定义的默认值。
  • env: 解析环境变量为 Go 语言结构体
  • envcfg: 解析环境变量为 Go 语言结构体
  • envconf: 通过环境变量来配置
  • envconfig: 通过环境变量读取配置
  • envh: 管理环境变量的助手
  • fig: 用于从文件和环境变量中读取配置的小型库(带有验证和默认值)。
  • gcfg: 读取类似 INI 类型的配置文件为 Go 语言结构体,支持自定义类型。
  • genv: 通过 dotenv 支持轻松读取环境变量。
  • go-aws-ssm: 从 AWS System Manager - Parameter Store 获取参数的 Go 包。
  • go-ini: Go 包,可对 INI 文件进行整理和解整理。
  • go-ssm-config: 用于从 AWS SSM(参数存储)加载配置参数的 Go 工具。
  • go-up: 一个简单的配置库,具有递归占位符解析功能,没有各种怪招。
  • goConfig: 解析一个结构作为输入,并将命令行、环境变量和配置文件中的参数填充到该结构的字段中。
  • godotenv: 把 Rubydotenv 库移植到 Go(从.env 中加载环境变量)。
  • gofigure: 让 Go 语言应用程序配置变得简单
  • gone/jconf : 模块化 JSON 配置工具。允许你将配置参数结构体和使用它的代码放在一起,而不需要让主配置文件了解所有子模块的细节来进行序列
  • gookit/config: 应用程序配置管理 (load,get,set), 支持 JSON、YAML、TOML、INI、HCL
  • harvester: Harvester,一个易于使用的静态和动态配置包,支持 envarsConsul 集成。
  • hjson: 便于程序员使用和阅读的配置文件格式。具有更加轻松的语法,更少的错误和更多的注释
  • hocon: 用于使用 HOCON(一种人类友好的 JSON 超集) 格式的配置库,支持环境变量、引用其他值、注释和多文件等功能。
  • ingo: 将配置标记持久化到一个类似 ini 的文件中
  • ini: 用于读写 INI 文件的库
  • joshbetz/config: 消息配置库,可以解析环境变量、JSON 文件并根据 SIGHUP 自动重新载入
  • kelseyhightower/envconfig: 用于管理环境变量配置数据的 Go 库。
  • koanf: 轻量级、可扩展的库,用于读取 Go 应用程序中的配置。内置支持 JSON、TOML、YAML、env、命令行。
  • konfig: 为分布式处理时代的 Go 提供可组合、可观察和可执行的配置处理。
  • mini: 用于解析类 ini 文件的库
  • nasermirzaei89/env: 用于读取环境变量的简单实用包
  • onion: 基于分层结构的 Go 配置库,支持 JSON、TOML、YAML、properties、etcd、env 以及使用 PGP 加密。
  • store: Go 的轻量级配置管理器,支持 JSON、TOML、YAML、properties 等。
  • swap: 基于构建环境,递归地实例化 / 配置结构解析库。
  • typenv: 简约、零依赖、类型化的环境变量库。
  • viper: Go 语言配置工具
  • xdg: 遵守 XDG 标准 的配置工具 XDG 标准

持续集成

持续集成的辅助工具

  • CDS: 企业级 CI/CDDevOps 自动化开源平台。
  • drone: Drone 是一个基于 Docker 的持续集成平台,使用 Go 语言编写
  • duci: 简单的 ci 服务器,不需要特定领域的语言。
  • gomason: 从一个干净的工作空间测试、构建、签署和发布你的 go 二进制文件
  • goveralls: Coveralls.io 是一个持续代码覆盖率检测系统,这个库提供了 Go 语言的支持
  • overalls: 针对多 packageGo 语言项目,为 Goveralls 这样的工具生成覆盖率报告
  • roveralls: 回归覆盖测试工具

CSS 预处理

预处理css文件的库

  • gcss: 纯 Go 语言编写的 CSS 预处理器
  • go-libsass: 100% 兼容 Sass 的库 libsassGo 语言封装

数据结构

go语言实现的数据结构与算法

  • algorithms: 算法和数据结构学习资料
  • binpacker: 二进制数据封包拆包工具,帮你构建自定义的二进制数据流
  • bit: Go 语言集合数据结构。提供了额外的位操作功能
  • bitset: 实现了 bitsetGo 语言包.
  • bloom: Go 语言实现的布隆过滤器(bloom filter
  • bloom: Go 语言实现的布隆过滤器
  • boomfilters : 概率统计数据结构,用于处理大量连续的数据。
  • cmap: 一个用于 go 的线程安全的并发地图,支持使用 interface{} 作为键
  • concurrent-writer: bufio.Writer 的高并发 drop-in 替代品
  • conjungo: 一个小巧、强大、灵活的合并库。
  • count-min-log: Go 语言实现的 Count-Min-Log sketch 算法 (类似 Count-Min sketch 算法,但是使用的内存更少)
  • crunch: Go 包,实现缓冲区,方便处理各种数据类型。
  • cuckoofilter: Cuckoo 过滤器:一个用 go 语言实现的计数布隆过滤器的替代品
  • deque: 高度优化的双端队列。
  • deque: 快速的环形缓冲区 deque(双端队列)。
  • dict: Go 的类似 Python 的字典 (dict)
  • encoding: 整型压缩库
  • go-adaptive-radix-tree: Go 语言实现的自适应基数树
  • go-datastructures: 一组有用的、高性能的、线程安全的数据结构
  • go-edlib: 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
  • go-ef: Elias-Fano 编码的 Go 实现。
  • go-geoindex: 基于内存存储的地理索引
  • go-mcache: 快速的内存 key:value 存储 / 缓存库。
  • go-rquad: 区域四叉树,支持有效点位置和领域发现
  • gocache: 完整的 Go 缓存库,支持多个存储(内存、memcache、redis......)。
  • goconcurrentqueue: 并发 FIFO 队列。
  • gods: Go 语言数据结构、容器、集合、列表、栈、键值对、BidiMaps、树、HashSet
  • gofal: Go 的微分算法库。
  • golang-set: 线程安全和非线程安全的高性能集合
  • goset: Go 集合实现。
  • goskiplist: Go 语言实现的跳跃表
  • gostl: 数据结构和算法库,旨在提供类似于 C++ STL 的功能。
  • gota: 为 go 语言实现了数据帧,序列以及数据噪音的方法
  • goterator: 迭代器的实现,提供映射和减少功能。
  • hide: 具有 hash 函数功能,以防止向客户端发送敏感 ID`。
  • hilbert: 用于映射空间填充曲线(例如希尔伯特曲线和皮亚诺曲线)和数值的库。
  • hyperloglog: HyperLogLog 的 go 语言实现
  • iter: C++ STL 迭代器和算法的 Go 实现。
  • levenshtein: 编辑距离(levenshtein distance)和相似性度量计算库
  • levenshtein: 在 Go 中计算 levenshtein 距离的实现。
  • mafsa: Go 语言实现的 MA-FSA, 包含最小完美哈希实现
  • merkletree: 实现了梅克尔树,提供了一种高效、安全的数据结构内容验证方法
  • mspm: 用于信息检索的多字符串模式匹配算法。
  • nan: 在一个库中实现了零分配的 Nullable 结构,并提供了方便的转换函数。
  • null: 可为 nullGo 类型,它们可以被 `marshalled/unmarshalled 到 JSON。
  • parsefields: - 用于解析 JSON 类日志的工具,用于收集特殊字段和特定事件。
  • pipeline: 一个带有扇形输入和扇形输出的管道的实现。
  • ptrie: 前缀树的实现
  • remember-go: 用于缓存慢速数据库查询的通用接口(由 redis、memcached、ristretto 或内存支持)。
  • ring: 高性能、线程安全的 bloom 过滤器的 Go 实现。
  • roaring: 实现了压缩 bitsets 算法的 Go 语言库
  • set: 在 Go 中使用 LinkedHashMap 实现简单的集合数据结构。
  • skiplist: 非常快的 Go Skipipllist 实现。
  • skiplist: 在 Go 中实现的 Skiplist
  • slices: slice 操作函数
  • timedmap: 具有过期键值对的 map
  • treap: 使用树堆的持久化快速有序 map
  • trie: Go 语言实现的 Trie
  • ttlcache: 基于过期时间的内存字符串缓存接口。
  • typ: 空类型安全的基础类型转换器和从复杂结构中取值的开发库。
  • willf/bloom: 实现了布隆过滤器的库

数据库

go语言实现的数据库

  • badger: Go 中的快速键值存储库。
  • bbolt: Go 的嵌入式键值数据库。
  • bcache: 最终一致的分布式内存缓存 Go 库。
  • BigCache: 为 GB 量级数据设计的高效键 / 值缓存
  • Bitcask: Bitcask 是一个用纯 Go 编写的可嵌入的、持久的、快速的键值(KV)数据库,由于采用了 bitcask 盘上布局(LSM+WAL), 它具有可预测的读 / 写性能、低延迟和高吞吐量。
  • buntdb: 快速,可嵌入的,内存键值数据库,可定义索引及 spatial
  • cache: 内存中的 key:value 存储,有过期时间,0 依赖,<100 LoC,100% 覆盖。
  • cache2go: 基于内存存储的键值缓存,支持自动基于超时的自动失效
  • clusteredBigCache: BigCache 支持集群和单个项目过期。
  • cockroach: 可扩展的、一致的事务型数据库
  • Coffer: 简单的 ACID 键值数据库,支持事务。
  • couchcache: RESTful 缓存微服务,基于 Couchbase 数据库
  • CovenantSQL: CovenantSQL 是一个区块链上的 SQL 数据库。
  • Databunker: 为符合 GDPRCCPA 而构建的个人身份信息 PII 存储服务。
  • dgraph: 可扩展的、分布式的、低延时、高吞吐的图数据库
  • diskv: 具有 disk-backed 功能的持久化键值存储
  • eliasdb: 无依赖、事物型图数据库,支持 REST API、短语搜索以及类 SQL 的查询语言
  • fastcache: 针对大量条目的快速线程安全内存缓存。将 GC 开销降到最低。
  • GCache: 支持缓存过期、LFU、 LRUARC 的缓存库
  • go-cache: 基于内存存储的缓存,适用于分布式部署的应用
  • goleveldb: GoLevelDB 键 / 值数据库的实现
  • groupcache: Groupcache 是一个缓存及缓存填充库,在很多情况下用于替代 memcached.
  • immudb: immudb 是一个轻量级、高速的不可变数据库,适用于用 Go 编写的系统和应用程序。
  • influxdb: 用于度量、事件和实时分析的可扩展数据存储。
  • Kivik: KivikCouchDB、PouchDB 和类似的数据库提供了一个通用的 GoGopherJS 客户端库。
  • ledisdb: Ledisdb 是一个高性能 NoSQL 数据库,类似 Redis
  • levigo: LeviGoLevelDBGo 语言封装
  • moss: Moss 是一个简单的 LSM 键值存储引擎,100% Go 语言实现
  • nutsdb: Nutsdb 是一个用纯 Go 编写的简单、快速、可嵌入、持久化的键 / 值存储。它支持完全可序列化的事务和许多数据结构,如列表、集合、排序集合。
  • piladb: 轻量级 RESTful 数据库引擎,基于堆栈结构
  • pogreb: 嵌入式键值存储,适用于重读工作负载。
  • prometheus: 监控系统及时间序列数据库
  • pudge: 使用 Go 的标准库编写的快速、简单的键值存储。
  • rosedb: 一个基于 LSM+WAL 的内嵌 k-v 数据库,支持多种数据结构,如字符串、列表、哈希表、集合、有序集合
  • rqlite: 基于 SQLite 的轻量级的、分布式的关系型数据库
  • Scribble: 小巧的 JSON 文件存储
  • slowpoke: 具有持久性的键值存储。
  • tempdb: 临时数据的键值对存储
  • tidb: TiDB 是一个分布式的 SQL 数据库。受到了 Google F1 的启发
  • tiedot: 基于 Go 语言的 NoSQL 数据库
  • unitdb: 用于物联网、实时消息应用的快速时序数据库。
  • Vasto: 一个分布式高性能键值存储。在磁盘上。最终一致。HA。能够在不中断服务的情况下增长或收缩。
  • VictoriaMetrics: 快速、资源高效、可扩展的开源时间序列数据库。可作为 Prometheus 的长期远程存储。支持 PromQL

数据库迁移工具

  • avro: 发现 SQL 模式并将其转换为 AVRO 模式。查询 SQL 记录到 AVRO 字节。
  • darwin: 数据库模式增量库
  • go-fixtures: 类似 DjanGo fixtures, 用于 Golang 的內建 dababase/sql
  • go-pg-migrations: 帮助使用 go-pg/pg 编写迁移的 Go 包。
  • gondolier: 使用 struct 装饰器的数据库迁移库。
  • goose: 数据库迁移工具。你可以通过编写增量 SQLGo 语言脚本来管理你的数据库
  • gormigrate: 数据库模式迁移帮助工具,用于 Gorm ORM.
  • migrate: 数据库迁移。命令行及 Go 语言库
  • migrator: 简单的 Go 数据库迁移库。
  • pravasan: 简单的迁移工具,目前支持 MySQL 但是近期打算支持 Postgres, SQLite, MonGoDB 等等
  • schema: 在你的 Go 二进制文件中嵌入数据库 /sql 兼容数据库的模式迁移库。
  • skeema: MySQL 的纯 SQL 模式管理系统,支持 sharding 和外部在线模式变更工具
  • soda: 数据库迁移、创建、 ORM 等等,用于 MySQL, PostgreSQL, 以及 SQLite.
  • sql-migrate: 数据库迁移工具,允许利用 Go-bindata 将数据库迁移嵌入应用程序

数据库工具

  • bucket: 为 Couchbase 优化的数据结构框架,专门针对 bucket 的使用进行了优化。
  • chproxy: HTTP 代理的 ClickHouse 数据库。
  • clickhouse-bulk: 收集小的插入请求后一并发送大的请求到 ClickHouse 服务器。
  • datagen: 快速的数据生成器,支持多表并支持多行 DML
  • dbbench: 数据库基准测试工具,支持多个数据库和脚本。
  • go-mysql: 用于处理 MySQL 协议及复制的 Go 语言工具集
  • go-mysql-elasticsearch: 将你的 MySQL 数据自动同步到 Elasticsearch
  • kingshard: kingshard 是一个 Go 语言编写的高性能 MySQL 数据库代理
  • myreplication: MySql 二进制 log 复制监听器,支持基于语句和基于行的复制
  • octillery: 用于 sharding 数据库的 Go 包(支持所有 ORM 或原始 SQL)。
  • orchestrator: MySQL 复制拓扑管理器及可视化工具
  • pg_timetable: PostgreSQL 的高级调度。
  • pgweb: 基于 WebPostgreSQL 数据库浏览工具
  • prep: 无需更改代码使用已准备好的 SQL 语句的库
  • pREST: 为 PostgreSQL 数据库提供 RESTful API
  • rwdb: rwdb 为多个数据库服务器的设置提供读取复制功能。
  • vitess: vitess 提供了能够使大型 web 服务 MySQL 数据库的扩展变得更加容易的服务器及工具

SQL 查询语句构建库

  • buildsqlx: 针对 PostgreSQLGo 数据库查询构建库。
  • dbq: Go 的数据库操作库。
  • Dotsql: Go 语言库,帮助你将 sql 文件保存在一个地方并且方便的取用
  • gendry: 非侵入式 SQL 构建器和强大的数据绑定器。
  • godbal: Go 的数据库抽象层(dbal)。支持 SQL 构建器,并能轻松获得数据库结果。
  • goqu: 地道的 SQL 语句创建器和查询库
  • gosql: 具有更好的空值支持的 SQL 查询生成器。
  • igor: PostgreSQL 的抽象层,支持高级功能以及类 Gorm 的语法
  • jet: 在 Go 中编写类型安全的 SQL 查询框架,能够轻松地将数据库查询结果转换为所需的任意对象结构。
  • mpath: 用于 SQL 记录的 MPTT (Modified Preorder Tree Traversal) 包 - 实物化路径的实现
  • ormlite: 轻量级软件包,包含一些类似于 ORM 的功能,以及针对 sqlite 数据库的帮助程序。
  • ozzo-dbx: 强大的数据检索方法以及与 DB 无关的查询构建能力。
  • qry: 从带有原始 SQL 查询的文件中生成常量的工具。
  • sq: 适用于 Go 的类型安全 SQL 构建器和结构映射器。
  • sqlf: 快速的 SQL 查询构建器。
  • sqlingo: 在 Go 中构建 SQL 的轻量级 DSL
  • sqrl: SQL 查询创建器,是 Squirrel 的一个分叉版本,进行了性能方面的优化
  • Squalus: Go SQL 包的薄层,使其更容易执行查询。
  • Squirrel: 一个帮助你构建 SQL 查询的库
  • xo: 基于已知的数据库表或自定义查询生成地道的 Go 语言代码,支持 PostgreSQL, MySQL, SQLite, Oracle, 以及 Microsoft SQL Server.

数据库驱动

连接和操作数据库工具

  • 关系型数据库

    • avaticaApache Phoenix/Avatica SQL 驱动
    • bgc: 数据库连接工具包,用于通过 Go 语言访问 BigQuery
    • firebirdsql: Firebird RDBMS SQL 驱动
    • go-adodb: Microsoft ActiveX 对象数据库驱动
    • go-mssqldb: 适用于 Go 的 Microsoft MSSQL 驱动。
    • go-oci8: Oracle 驱动
    • go-sql-driver/mysql: Go 语言 MySQL 驱动
    • go-sqlite3: Go 语言的 SQLite3 驱动
    • gofreetds: Microsoft MSSQL 驱动。FreeTDS 的 go 语言封装
    • FreeTDS: Microsoft MSSQL 驱动。是 FreeTDS 的 Go 封装器。
    • goracle: 用于 GoOracle 驱动程序,使用 ODPI-C 驱动程序。
    • pgx: PostgreSQL 驱动,支持比 database/sql 更多的特性
    • pq: 用于 database/sqlPure Go Postgres 驱动。
    • Sqinn-Go: 纯 Go 的 SQLite 驱动。
  • NoSQL 数据库

    • aerospike-client-go: Go 语言的 Aerospike 客户端。
    • arangolite: ArangoDB 的轻量级 golang 驱动
    • asc: 用于 Aerospike for go 的数据存储连接。
    • dynago: DynagoDynamoDB 的客户端。
    • forestdb: ForestDBGo 语言封装
    • go-couchbase: Go 语言 Couchbase 客户端
    • go-pilosa: 用于 Pilosa 的 Go 客户端库。
    • go-rejson: RedislabsReJSON 模块的 Golang 客户端,使用 Redigo golang 客户端。在 redis 中轻松地将结构体作为 JSON 对象进行存储和操作。
    • gocb: Couchbase Go 官方 SDK。
    • gocql: Apache Cassandra 的 Go 语言驱动
    • godis: 由 golang 实现的 redis 客户端,灵感来自 jedis
    • godscache: Google Cloud Platform Go Datastore 包的封装器,使用 memcached 增加缓存。
    • gomemcache: Go 编程语言的 memcache 客户端库。
    • gorethink: RethinkDB 的 Go 语言驱动。
    • goriak: Riak KVGo 语言驱动
    • mgm: 用于 Go 的基于 MongoDB 模型的 ODM(基于官方 MongoDB 驱动程序)
    • mgo: MonGoDB 驱动,通过简单的 API 现了丰富的、经过测试的特性,这些 API 遵循 Go 语言的习惯
    • mongo-go-driver: Go 语言的官方 MongoDB 驱动。
    • neo4j: Neo4j Rest APIGo 语言接口
    • Neo4j-GO: Go 语言实现的 Neo4j REST 客户端
    • neoism: Go 语言 Neo4j 客户端
    • qmgo: Go 的 MongoDB 驱动。它基于官方的 MongoDB 驱动,但和 Mgo 一样更容易使用。
    • redeo: RedigoRedis 数据库的 Go 客户端。
    • redigo: RediGoRedis 数据库的 Go 语言客户端.
    • redis: 兼容 Redis 协议的 TCP 服务器 / 服务.
    • xredis: 类型安全的、可定制的、简洁易用的 Redis 客户端
  • 搜索引擎和文本数据库

    • bleve: 现代文本索引库
    • elastic: Go 语言的 Elasticsearch 客户端
    • elasticsqlsql 转换为 elasticsearch dsl
    • elastigo: Elasticsearch 客户端库
    • go-elasticsearch: Go 的官方 Elasticsearch 客户端。
    • goes: 用于和 Elasticsearch 交互的库
    • riot: Go 开源,分布式,简单高效的搜索引擎。
    • skizze: 概率数据结构服务和存储。
  • 多个后端:

    • cachego: Golang Cache 组件,支持多个驱动。
    • cayley: 支持多个后端的图形数据库。
    • dsc: SQL、NoSQL、结构化文件的数据存储连接。
    • gokv: 为 go(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB 等)提供简单的键值存储抽象和实现。

日期和时间

用于处理日期和时间的库

  • carbon: 简单的时间扩展程序,有很多有用的方法,是 PHP Carbon 库的接口
  • cronrange: 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。
  • date: 增强了 Time 的功能,用于处理日期、日期范围、时间跨度、时间段和日期时间。
  • dateparse: 在不知道格式的情况下解析日期。
  • durafmt: 持续时间格式化
  • feiertage: 一组计算德国公共假期的函数,比如复活节、感恩节等
  • go-persian-calendar: - 太阳历
  • go-str2duration: 将字符串转换为持续时间。支持 time.Duration 返回字符串等。
  • go-sunrise: 计算指定地点的日出和日落时间。
  • go-week: 处理星期的库
  • iso8601: 有效地解析 ISO8601 日期时间,而无需使用 regex
  • kair: 日期和时间 -Golang 格式化库。
  • now: Now 是一个 Go 语言的时间工具集
  • NullTime: - 时间可以是 NULL 的库
  • strftime: C99 兼容的 strftime 格式化器。
  • timespan: 用于与时间间隔交互,定义为开始时间和持续时间
  • timeutil: 为 Go 语言时间包扩展了有用的功能,例如时间间隔和格式化
  • tuesday: Ruby 兼容的 Strftime 函数。

分布式系统

  • arpc: 更有效的网络通信,支持双向呼叫、通知、广播。
  • celeriac: 利用 Go 语言对 Celeryworkerß 任务事件进行交互和监控的库
  • consistent: 有限负载的一致哈希算法库。
  • consistenthash: 使用可配置的副本实现一致的哈希。
  • dht: BitTorrent Kademlia DHT 的实现。
  • digota grpc 电子商务微服务。
  • dot : 使用操作转换 / OT 的分布式同步库。
  • doublejump: 改版后的 Google 的跳转一致哈希。
  • dragonboat: Go 中一个功能完整且高性能的多组 Raft 库。
  • drmaa: 集群调度工具的任务提交库,基于标准 DRMAA
  • dynamolock: DynamoDB 支持的分布式锁的实现。
  • dynatomic: 将 DynamoDB 作为原子计数器使用的库。
  • emitter-io: 使用 MQTT、Websocketslove 构建的高性能、分布式、安全和低延迟的发布 - 订阅平台。
  • flowgraph: 基于流的编程包实现的 MPI 风格的读取,发送协同层;
  • gleam: 快速、可扩展的分布式 map/reduce 系统,使用纯 Go 语言和 Luajit 编写,融合了 Go 语言的高并发能力和 Luajit 的高性能,可以独立或分布式部署运行。
  • glow: 易于使用的可扩展的分布式大数据处理、Map-Reduce、DAG 执行,全部用纯 Go 编写。
  • gmsec: Go 分布式系统开发框架。
  • go-health: 用于在服务中启用异步依赖性健康检查的库。
  • go-jump: Google "Jump" 一致性哈希函数的接口
  • go-kit: 为服务工具吧,支持服务发现、负载均衡 、可插拔传输以及请求追踪等
  • go-micro: 一个分布式系统开发框架。
  • go-mysql-lock: 基于 MySQL 的分布式锁。
  • go-pdu: 基于身份的去中心化社交网络。
  • go-sundheit: 为 golang 服务定义异步服务健康检查提供支持的库。
  • gorpc: 简单、快速、可扩展的 RPC 库,针对高负载场景
  • grpc-go: gRPC 的 Go 语言实现。基于 HTTP/2的RPC
  • hprose: 非常新颖的 RPC 库,现在支持 25 种以上的语言。
  • jsonrpc: jsonrpc 包实现了 JSON-RPC 2.0.
  • jsonrpc: JSON-RPC 2.0 HTTP 客户端实现
  • KrakenD: 带有中间件的,高性能 API 网关框架
  • liftbridge: 用于 NATS 的轻量级、容错消息流。
  • micro: 面向云计算及其他领域的分布式系统运行时。
  • NATS: 轻量级、高性能微服务系统,用于微服务、物联网以及云
  • outboxer: Outboxer 是一个实现 outbox 模式的 go 库。
  • pglock: PostgreSQL 支持的分布式锁的实现。
  • raft: Raft 共识协议的 Golang 实现,由 HashiCorp. 开发。
  • raft: Raft 共识协议的 Go 实现,由 CoreOS 提供。
  • rain: BitTorrent 客户端和库。
  • redis-lock: 使用 Redis 实现的简化的分布式锁。
  • resgate: 用于构建 REST、实时和 RPC API 的实时 API 网关,所有客户端都可以无缝同步
  • ringpop-go: 为 Go 应用提供可扩展、容错的应用层分片。
  • rpcx: rpcx 是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的 RPC 服务框架
  • Semaphore: 直接的(微)服务协调器。
  • sleuth: 在 HTTP 服务之间进行无主 p2p 自动发现和 RPC 通信 (使用 ZeroMQ
  • tendermint: 使用 Tendermint 一致性及区块链协议的高性能的中间件,用于将任何语言编写的状态机转换为一个拜占庭容错状态机,
  • torrent: BitTorrent 客户端

动态 DNS

更新动态dns记录的库和工具

  • DDNS: 以 digital oceanDNS 为后台的个人 DDNS 客户端。
  • dyndns: 后台 Go 进程,定期自动检查您的 IP 地址,并在您的地址发生变化时更新(一个或多个)谷歌域名的动态 DNS 记录。
  • GoDNS: 用 Go 编写的动态 DNS 客户端工具,支持 DNSPodHE.net

邮件库

邮件管理和发送的go语言库

  • chasquid: 用 Go 编写的 SMTP 服务器。
  • douceur: HTML 邮件中的内联 CSS
  • email: 健壮的、灵活的 email
  • go-dkim: DKIM 库,用于对 email 进行签名和验证
  • go-imap: IMAP 库,用于客户端和服务器
  • go-message: 用于互联网消息格式和邮件的库
  • go-premailer: 在 Go 中为 HTML 邮件提供在线样式。
  • go-simple-mail: go 语言实现的基于简单 smtp 协议的邮件发送库
  • Hectane: 轻量级 SMTP 客户端,提供 HTTP API
  • hermes: 一个用于生成干净、响应式 HTML e-mail 的包
  • mailchain: 用 go 写的用于发送加密邮件到区块链地址的邮件库
  • mailgun-go: 使用 Mailgun API 发送邮件的 Go 库。
  • MailHog: EmailSMTP 测试工具,具有 web 及 API 接口
  • SendGrid: SendGrid 的 Go 语言库,用于发送电子邮件
  • smtp: SMTP 服务器协议状态机

脚本语言与嵌入式编程

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

  • anko: Go 语言编写的解释器
  • binder: 基于 gopher-lua 的 go 语言 Lua 接口,
  • cel-go: 快速、可移植、非图灵完全表达式评估和渐进分型。
  • expr: Go 的表达式评估引擎,具有快速、非图灵完备、动态类型化、静态类型化的特性。
  • gentee: 可嵌入脚本编程语言。
  • gisp: Go 中的简单 LISP
  • go-duktape: GoDuktape JavaScript 引擎封装。
  • go-lua: Lua 5.2 虚拟机的纯 Go 语言接口
  • go-php: PHPGo 语言接口
  • go-python: CPython C-APIGo 语言接口
  • goja: 在 Go 中实现 ECMAScript 5.1(+)
  • golua: lua C APIGo 语言接口。
  • gopher-lua: Go 语言编写的 Lua 5.1 虚拟机和编译器
  • gval: Go 编写的高度可定制的表达式语言。
  • ngaro: 可嵌入的 Ngaro 虚拟机实现,可在 Retro 中编写脚本。
  • purl: 嵌入 Go 语言的 Perl 5.18.2
  • tengo: Go 的字节码编译脚本语言。

错误处理

go 语言错误处理库

  • emperror: Go 库和应用程序的错误处理工具和最佳实践。
  • eris: 在 Go 中处理、跟踪和记录错误的更好方法。与标准错误库和 github.com/pkg/errors 兼容。
  • errlog: 用于确定错误的责任源代码(以及其他一些快速调试功能,可以嵌入到任何的日志服务中。
  • errors: 标准库错误包和 github.com/pkg/errors 的替代包。提供各种错误处理单元。
  • errors: 提供简单错误处理单元的包。
  • errors: 简单的 golang 错误处理包。
  • errors: 最简单的错误封装器,性能卓越,内存开销最小。
  • errors: 最小的错误处理包,具有自定义错误类型等特性
  • errorx: 功能丰富的错误处理包,包括堆栈信息获取、错误组成分析等
  • Falcon: 简单但功能强大的错误处理包。
  • go-multierror: 用于将错误列表表示为单个错误的包
  • tracerr : 带有堆栈跟踪和源片段的 Golang 错误处理包。

文件处理

处理文件和文件系统操作的库

  • afero: go 语言编写的对文件系统进行抽象的系统框架
  • afs: 适用于 Go 的抽象文件存储。
  • baraka: 用于轻松处理 http 文件上传的库。
  • bigfile: 文件传输系统,支持用 http api、rpc 调用和 ftp 客户端管理文件。
  • checksum: 计算大文件的信息摘要,如 MD5SHA256
  • copy: 递归复制目录。
  • flop: 文件操作库,目的是与 GNU cp 进行镜像。
  • go-csv-tag: 使用 tag 导入 csv
  • go-decent-copy: 文件复制功能库。
  • go-exiftool: 为 ExifTool 提供绑定服务,ExifTool 是一个著名的库,用于从文件(图片、PDF、office…)中提取尽可能多的元数据
  • go-gtfs: 用 go 加载 gtfs 文件
  • gut/yos: 简单可靠的文件操作包,支持对文件、目录和符号链接的 copy/move/diff/list
  • notify: 类似 os/signal 的文件系统提示库,具有简单的 API.
  • opc: 为 Go 加载 Open Packaging Conventions (OPC) 文件
  • parquet: 读取和写入 parquet 文件。
  • pdfcpu: PDF 处理器。
  • skywalker: 允许你简单方便的并发浏览文件系统
  • stl: 读取和写入 STL 文件的模块,采取并发的读取算法。
  • tarfs: 为 tar 文件实现的文件系统接口
  • todotxttodo.txt 文件的 go 语言解析器。
  • vfs: 适用于 Go 的多个文件系统类型,如 os、S3GCS 的可插拔、可扩展的文件系统功能库。

金融领域相关库

处理货币与金融领域的库

  • accounting: Go 语言金钱及货币格式
  • currency: 处理货币金额,提供货币信息和格式。
  • currency: 高性能、精确的货币计算包。
  • decimal: 支持任意精度的十进制数的 go 包
  • fastme: Go 实现的 快速可扩展的匹配引擎 。
  • go-finance: Go 中的综合金融市场数据。
  • go-finance: 用于货币时间价值(年金)、现金流、利率转换、债券和折旧计算的金融函数库。
  • go-finance: 用于获取汇率、通过 VIES 查询增值税号和查询 IBAN 银行账号的模块。
  • go-finnhub: 来自 finnhub.io 的股市、外汇和加密数据客户端。访问来自 60 多家证券交易所、10 家外汇经纪商和 15 家以上加密交易所的实时金融市场数据。
  • go-money: Fowler's Money 模式的实现。
  • ofxgo: 查询 OFX 服务器并解析其响应 (有一个示例的命令行客户端)
  • orderbook: Golang 中的限价订单簿的匹配引擎。
  • techan: 具有高级市场分析和交易策略的技术分析库。
  • transaction: 以多线程模式运行的嵌入式的账户交易数据库,。
  • vat: VAT 验证及欧洲增值税率工具

表单

表单解析与绑定

  • bind: 可以表单数据绑定到任意的 Go 变量上
  • binding: 将来自 net/HTTP 请求的表单、JSON 数据绑定到结构体
  • conform: 检查用户输入并基于结构标签来清理数据
  • form: 解码 url 中的数据到 Go 语言变量中以及将 Go 语言变量编码进 url
  • formam: 将表单数据解码到结构体
  • forms: 框架无关的表单 / JSON 数据解析验证库,支持多部分表单及文件
  • gorilla/csrf: 为 Go 语言 web 应用提供 CSRF 防御
  • nosurf: CSRF 防御中间件
  • qs: 用于将结构体编码为 URL 查询参数的 Go 模块
  • queryparam: 将 url.Values 解码为标准或自定义类型的可用结构体值。

函数式编程

  • fpGo: Golang 中的单项式函数式编程功能
  • fuego: Go 中实验室的函数式编程。
  • go-underscore: Go 函数式集合工具。

游戏开发

  • Azul3D: Go 语言编写的 3D 游戏引擎
  • Ebiten: Go 语言编写的简单的 2D 游戏库
  • engo: EnGo 是一个开源的 2D 游戏引擎,遵循实体 - 组件 - 系统范式
  • g3n: Go 3D 游戏引擎。
  • go-astar: A * 路径查找算法的 Go 实现。
  • go-sdl2: Simple DirectMedia LayerGo 封装。
  • go3d: 专注性能的 2D/3D 数学库
  • gonet: Go 语言实现的游戏服务器框架
  • goworld: 可扩展的游戏服务器引擎。
  • Leaf: 轻量级游戏服务器框架
  • nano: 基于 golang 的轻量级、设施、高性能的游戏服务器框架。
  • Oak: go 游戏引擎。
  • Pitaya: 可扩展的游戏服务器框架,支持集群,并通过 C SDKiOS、Android、Unity 等提供客户端库。
  • Pixel: 2D 游戏引擎库
  • prototype: 跨平台(Windows/Linux/Mac)库,可利用最小的 API 创建桌面游戏。
  • raylib-go: raylib 的 Go 语言接口,简单、易用的用于学习游戏编程的库
  • raylib: raylib 的 Go 绑定,一个简单易用的电子游戏编程学习库。
  • termloop: 终端游戏引擎,基于 Termbox
  • tile: 面向数据和缓存友好的 2D 网格库 (TileMap)。

代码生成与泛型

  • efaceconv: 代码生成工具,用于高效的将 interface{} 转换为不可变类型,并且不需要进行任何内存分配
  • gen: 代码生成工具,用于提供类似泛型的功能
  • generis: 提供泛型、自由形式宏、条件编译和 HTML 模板化的代码生成工具。
  • go-enum: 从代码注释中生成 enums 代码。
  • go-linq: 类似.NET LINQGo 查询方法。
  • go-xray: 使反射的使用更加简单的助手。
  • goderive: 从输入类型导出函数。
  • gotype: Golang 源代码解析,用法类似于 reflect 包。
  • GoWrap: 使用简单的模板为 Go 接口生成装饰器。
  • interfaces: 命令行工具,用于生成接口定义
  • jennifer: 不适用模板生成任意 Go 语言代码
  • pkgreflect: 用于包作用域反射的 Go 语言预处理器
  • typeregistry: 用于动态创建类型的库。

位置信息与地理 GEO 处理库

  • geocache: 内存缓存,适用于基于地理位置的应用。
  • geoserver: 用于通过 GeoServer REST API 操纵 GeoServer 实例的 Go 包。
  • gismanager: 将你的 GIS 数据(矢量数据)发布到 PostGISGeoserver 的库。
  • mbtileserver: 简单的基于 Go 的服务器,用于存储 mbtiles 格式的地理信息。
  • osm: 用于读取、写入和处理 OpenStreetMap 数据和 API 的库。
  • pbf: OpenStreetMap PBF golang 编码器 / 解码器。
  • S2 geojson: 将 geojson 转换为 S2 单元格,并在地图上演示一些 S2 几何特征。
  • S2 geometry: Go 中的 S2 几何库。
  • Tile38: 具有空间索引和实时地理围栏的地理位置数据库。
  • WGS84: 坐标转换和变换的库(ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM)。
  • c4go: 将 C 代码转换为 go 代码。
  • f4go: 将 FORTRAN 77 代码转为 Go 代码。
  • gopherjs: 把 Go 编译为 JavaScript.
  • llgo: 基于 LLVMGo 语言编译器
  • tardisgo: Golang 转换为 Haxe 进而转换为 CPP/CSharp/Java/JavaScript 的编译器.

Goroutines

goroutines的管理和使用

  • ants: 高性能和低消耗的 goroutine 池。
  • artifex: Golang 的简单内存作业队列,使用基于 worker 的调度策略。
  • async: Go 的另一个同步库(Future, Promise, Locks)。
  • async: 安全的异步函数执行的方式,支持在出现 pannic 的情况下恢复它们。
  • breaker: 采用了一种可以使执行流可中断的灵活的机制的包。
  • channelify: 将你的函数转化为返回管道,以实现简单而强大的并行处理。
  • conexec: 一个并发工具包,帮助你以一种高效和安全的方式并发执行函数。它支持指定整体超时以避免阻塞,并使用 goroutine 池来提高效率。
  • cyclicbarrier: -golangCyclicBarrier
  • go-floc: 轻松编排 Go 语言协程
  • go-flow: 控制 Go 语言协程的执行顺序
  • go-tools/multithreading: 使用这个轻量级的库和简单的 API 来管理 goroutine 池。
  • go-trylock: 支持 Golang 的读写锁的 TryLock.
  • go-waitgroup: - 类似 sync.WaitGroup 的错误处理和并发控制。
  • goccm: Go 并发管理包,限制了允许并发运行的 goroutine 的数量
  • gohive: 高性能且易于使用的 goroutine 池。
  • gollback: 异步简单函数工具,用于管理闭包和回调的执行
  • goworker: Goworker 是一个基于 Go 语言的后台 worker
  • gowp: - gowp 是限制并发量的 goroutine 池。
  • gpool: 管理一个可调整大小的上下文感知的 goroutine 池,并以这种方式来约束并发量。
  • grpool: 轻量级 Goroutine 池。
  • hands: 用于控制多个 goroutine 的执行和返回策略的进程控制器。
  • Hunch: Hunch 提供的功能有。All、First、Retry、Waterfall 等功能,让异步流控制更加直观。
  • kyoo: 提供了一个无限的作业队列和并发的工作池。
  • neilotoole/errgroup: sync/errgroup 的替代方案,限于 N 个 worker goroutine 池。
  • nursery: Go 中的结构化并发
  • oversight: versightErlang 监督树的完整实现。
  • parallel-fn: 并行执行函数。
  • pond: 在 Go 中编写的最小化和高性能的 goroutine 工作池。
  • pool: 便于 goroutine 处理和取消的有限的消费者 goroutine 池或无限的 goroutine 池,
  • queue: 类似于 sync.WaitGroup 的队列包。帮助你控制和等待 goroutine 的执行,比如等待所有 goroutine 的结束等等。
  • routine: 利用 contextgo routine 实现。
  • semaphore: 基于管道和上下文的加锁 / 解锁操作。
  • semaphore: 基于 CAS 的快速可调整大小的 semaphore 实现(比基于管道的 semaphore 实现更快)。
  • stl: 基于软件事务性内存(STM)并发控制机制的软件事务性锁。
  • threadpoolGolang 线程池的实现。
  • tunny: Go 语言协程池
  • worker-pool: Go 简单的异步 worker 池。
  • workerpool: 用于限制任务执行的并发性的 goroutine 缓冲池。

GUI

  • app: 使用 Go, HTMLCSS 进行应用程序开发的库, 支持 MacOS, Windows
  • fyne: 基于 Material DesignGo 设计的跨平台本地 GUI。支持 Linux, macOS, Windows, BSD, iOS` 和 Android.
  • go-astilectron: 使用 GOHTML/JS/CSS(由 Electron 提供支持)构建跨平台 GUI 应用程序
  • go-gtk: GTKGo 绑定。
  • go-sciter: SciterGo 语言接口,支持现代 GUI 程序开发的、嵌入式 HTML/CSS/ 脚本引擎。具有跨平台特性。
  • gotk3: GTK3 的 Go 语言接口
  • gowd: 使用 Go, HTML, CSSNW.js 语言进行快速、简单的桌面 UI 开发。具有跨平台特性
  • qt: QtGo 语言接口 (支持 Windows,macOS,Linux,Android,iOS,Sailfish OS, Raspberry Pi)
  • ui: 跨平台的原生 GUI 库
  • Wails: 使用内置的 HTML 渲染器。
  • walk: windows 应用程序开发工具包
  • webview: 支持双向 JavaScript 绑定的跨平台 webview 窗口库(Windows,macOS,Linux)。
  • go-appindicator: libappindicator3 C 库的 Go 绑定。
  • gosx-notifier: OSX 桌面提醒库
  • mac-activity-tracker: OSX 库,用于通知机器上的任何(可插拔)活动。
  • mac-sleep-notifier: -golang 中的 OSX 睡眠 / 唤醒通知库。
  • robotgo: 跨平台 GUI 自动化工具,可以控制鼠标、键盘及其他设备
  • systray: 跨平台的 Go 语言库,用于在桌面提醒区域放置按钮及菜单
  • trayhost: 跨平台的 Go 语言库,用于在主机系统任务条区域放置按钮及菜单

硬件

与硬件交互的库、工具

Images 图像处理

  • bild: 汇集了使用 Go 语言编写的图像处理算法
  • bimg: 利用 libvips 进行快速高效的图像处理
  • cameron: Go 的头像生成器。
  • canvas: 将矢量图形转换成 PDF、SVG 或光栅化图像。
  • darkroom: 图像代理,具有可更改的存储后端和图像处理引擎,注重速度和弹性。
  • draft: 使用简单的 YAML 语法为 GraphViz 生成高级微服务架构图。
  • geopattern: 从字符串创建优美的图样
  • gg: 使用 Go 编写的 2D 渲染程序
  • gift: 图像处理过滤器包
  • gltf: 高效且强大的 glTF 2.0 读取器、写入器和验证器。
  • go-cairo: cairo 图形库的 Go 语言接口
  • go-gd: GD 库的 Go 语言接口
  • go-nude: 使用 Go 语言进行裸替检测
  • go-opencv: OpenCVGo 语言接口
  • go-webcolors: webcolors 库的 Go 语言接口
  • gocv: 使用 OpenCV 3.3+ 的计算机视觉的 Go 包。
  • goimagehash: Go 感知图像哈希包。
  • goimghdr: imghdr 模块为 Go 确定文件中包含的图像类型。
  • govatar: 用于生成有趣头像的库和命令行工具。
  • gridder: 基于网格的 2D 图形库。
  • image2ascii: 将图像转换为 ASCII 码。
  • imagick: ImageMagickMagickWand C 语言 APIGo 语言接口
  • imaginary: 快速且简单的 HTTP 微服务,用于图像缩放
  • imaging: 简单的 Go 图像处理包。
  • img: 图像操作工具精选集
  • ln: 3D 图线艺术渲染
  • mergi: 用于图像处理的工具和 Go 库(合并、裁剪、调整大小、水印、动画)。
  • mort: 用 Go 编写的存储和图像处理服务器。
  • mpo: MPO 3D 照片解码与转换工具.
  • picfit: 一个使用 Go 语言编写的图片缩放服务器
  • pt: 光线追踪引擎
  • resize: 使用 Go 语言编写的具有常见差值功能的图片缩放工具
  • rez: 纯 GoSIMD 实现的图像缩放库
  • smartcrop: - 为任意图片进行剪裁的工具
  • steganography: 用于 LSB 隐写的纯 Go 库。
  • stegify: 用于 LSB 隐写的 Go 工具,能够隐藏图像中的任何文
  • svgo: 用于生成 SVGGo 语言库
  • tga: tga 是一个 TARGA 图像格式解码 / 编码器

物联网 (IOT)

  • connectordb: 针对 iot 的开源物联网平台
  • devices: 管理物联网设备的套件库
  • eywa: Eywa 是一个持续追踪所有连接设备的连接管理器
  • flogo: FloGo 是一个用于物联网 Edge App 及集成的开源框架
  • gatt: Gatt 是一个用于创建低功耗蓝牙外设的库
  • gobot: Gobot 是一个用于机器人,物理计算以及物联网的库
  • huego: 适用于 Go 的广泛的 Philips Hue 客户端库。
  • iot: IoT 是实现 Google IoT Core 设备的简单框架。
  • mainflux: 工业物联网消息传递和设备管理服务器。
  • periph: 外设 I/O, 用于连接低级板卡设施。
  • sensorbee: 轻量级物联网流处理引擎

作业调度

  • clockwerk: 使用简单、流畅的语法来调度周期性作业的 Go 包。
  • clockwork: Go 中简单直观的作业调度库。
  • go-cron: Go 的简单 Cron 库,它可以在不同的时间间隔执行闭包或函数,主要用于 web 应用程序和长期运行的守护进程。
  • go-quartz: 简单、零依赖的 Go 调度库。
  • gocron: 简单流畅的 Go 作业调度。这是・jasonlvhit/gocron・` 的一个积极维护的 fork.
  • gron: 使用简单的 Go API 定义基于时间的任务,Gron 的调度器将相应地运行它们。
  • JobRunner: 智能且功能丰富的 cron 任务调度器,内置任务队列和实时监控。
  • jobs: 持久而灵活的后台作业库。
  • leprechaun: 工作调度器,支持 webhooks、crons 和经典调度系统。
  • scheduler: Cronjobs 调度系统。

JSON

  • ajson: golang 实现的支持 JSONPath 的抽象 JSON 格式解析库。
  • dynjson: 向客户端提供自定义的 JSON 格式的动态 API
  • ej: 从不同的数据写入和读取 JSON 的库。
  • epoch: 包含用于将 Unix 时间戳,epoch 转换为 JSON 中的内置时间类型的处理库。
  • gjo: 用于创建 JSON 对象的小工具。
  • GJSON: 用一行代码获取 JSON 值。
  • go-jsonerror: Go-JsonError 的目的是让我们能够轻松创建遵循 JsonApi 规范的 json 响应错误。
  • go-respond: 用于处理常见 HTTP JSON 响应的 Go 包。
  • gojq: Golang 中的 JSON 查询库。
  • gojson: 从示例 JSON 自动生成 Go 结构体定义的库。
  • JayDiff: 用 Go 编写的 JSON 差异比较工具。
  • jettison: 用于 Go 的高性能、无反射的 JSON 编码器。
  • JSON-to-Go: 将 JSON 转换为 Go 结构
  • json2go: 高级 JSONGo 结构的转换。提供能够解析多个 JSON 文档并创建适合所有 JSON 文档的结构的包。
  • jsonapi-errors: 基于 JSON API 错误引用的 Go 语言封装。
  • jsonf: 用于高亮格式化和结构查询 JSON 的控制台工具。
  • jsongo: Fluent API, 使其更容易创建 Json 对象。
  • jsonhal: , 用于将自定义的结构体 marshal 为兼容 HALJSON response 的库。
  • jzon: 兼容标准 json 库的 JSON 库。
  • kazaam: 转换任意 json 文档的的 API 库。
  • mapslice-json: 用于有序地对 JSON 中的 map 结构进行 marshal/unmarshal
  • mp: 简单的 cli 电子邮件解析器,能够接受标准输入并输出 JSON 日志

Logging 日志库

  • distillog: 分级日志记录库(可以把它想象成 stdlib + log levels)。
  • glg: 简单、快速、分级的日志库
  • glo: 分级记录日志的库
  • glog: Go 的分级日志
  • go-cronowriter: 对日志文件基于当前日期和时间进行自动循环写入的库,类似 cronolog.
  • go-log: 一个包含 rack traces、对象转储和可选时间戳的日志库。
  • go-log: 简单且可配置的 go 日志库,包括分级、格式化和多项输出的特性。
  • go-log: 日志库支持级别和多处理程序。
  • go-log: Go 中的 Log4j 实现。
  • go-logger: 支持日志分级的简单的日志工具
  • gologger: 简单易用的日志库,可以在彩色控制台、文件或 Elasticsearch 中记录
  • gomol: 支持多种输出,结构化的日志模块,可以扩展它的输出
  • gone/log: 快速、可扩展、全功能、兼容标准库的日志库
  • httpretty: 将常规的 HTTP 请求漂亮地打印在终端上用于调试(类似于 http.DumpRequest)。
  • journald: systemd 日志的本地日志 APIGo 实现。
  • kemba: 受 debug 启发的小型调试日志工具,非常适合 CLI 工具和应用程序。
  • log: O(1) 复杂度的日志系统,允许你将一个日志连接到多个输出 (例如 stdout、文件和一个 TCP 连接)。
  • log: Go 的结构化日志包。
  • log: 简单、可配置、可扩展的 Go 结构化日志库。
  • log: 结构化日志接口。
  • log-voyage: 用 golang 编写的全功能日志库。
  • log15: 简单、强大的 Go 日志记录。
  • logdump: 用于多级日志记录的软件包。
  • logex: Golang 日志库,支持跟踪和级别,由标准日志库封装。
  • logger: 日志库。
  • logmatic: Golang 的彩色日志记录器,具有动态日志级别配置功能。
  • logo: Golang 的日志记录库,可配置不同的写入器。
  • logrusiowriter: 使用 logrus loggerio.Writer 实现。
  • logrus: Go 的结构化日志记录器。
  • logrusly: logrus 插件,用于将错误发送到 Loggly
  • logur: 日志记录接口和日志记录最佳实践的整合,它对诸多知名库如 logrusgo-kit logzapzerolog 等的功能进行了集成
  • logutils: 对 Go 语言标准日志工具进行了扩展,使其更好用
  • logxi: 十二要素 app 日志工具,非常快速。
  • lumberjack: 简单的循环日志工具。
  • mlog: 简单的日志模块,可以分 5 级并有一个可选的循环日志文件记录功能,支持 stdout/stderr 输出.
  • onelog: Onelog 是一个简单但非常高效的 JSON 日志库。它是目前所有场景下最快的 JSON 日志器。同时,它也是所需最少内存分配的库。
  • ozzo-log: 高性能日志库,支持日志分级、分类及过滤。可以将过滤后的信息发送到不同的目的地 (例如: 控制台、网络、邮箱).
  • phuslu/log: - 结构化日志系统。
  • rollingwriter: RollingWriter 是一个具有自动轮转功能的 io.Writer 实现,它有多种策略来提供日志文件旋转。
  • seelog: 灵活的、解耦的、格式化的日志库
  • spew: - 为 Go 语言的数据结构实现了一个整洁的打印功能,有助于调试
  • sqldb-logger: - 用于 Go SQL 数据库驱动的日志记录器,无需修改现有的 *sql.DB 标准用法。
  • stdlog: Stdlog 是一个面向对象的库,提供了分级日志功能,对于定时任务很有用.
  • tail: 这个 Go 语言软件包力争模拟 BSD tail 的功能
  • xlog: 插件架构以及灵活的日志系统,具有日志等级控制,多日志目标以及自定义日志格式功能
  • xlog: 结构化日志库
  • zap: 快速的、结构化的、分级的日志库
  • zerolog: 零内存分配 的 JSON 日志库.

机器学习

  • bayesian: 贝叶斯分类器
  • CloudForest: 纯 Go 语言编写的快速、灵活、多线程决策树
  • eaopt: 进化优化库。
  • evoli: 遗传算法和粒子群优化库。
  • fonet: 用 Go 编写的深度神经网络库。
  • go-cluster: k-modesk-prototypes 聚类算法的 Go 实现。
  • go-deep: 用 Go 编写的功能丰富的神经网络库。
  • go-fann: 快速人工神经网络库 (FANN)Go 语言借口.
  • go-galib: Go 语言编写的遗传算法库
  • go-pr: Go 语言模式识别库
  • gobrain: 用 go 语言编写的神经网络。
  • godist: 各种概率分布以及相关方法库。
  • goga: Go 语言遗传算法库
  • GoLearn: Go 语言通用机器学习库
  • golinear: liblinear 库的 Go 语言接口
  • GoMind: Go 中的一个简单的神经网络库。
  • goml: 即时 go 语言机器学习库
  • gonet: Go 的神经网络。
  • Goptuna: 用 Go 编写的黑盒函数的贝叶斯优化框架。一切都将被优化。
  • goRecommend: Go 语言推荐算法库
  • gorgonia: 基于图的计算库,类似于 Theano。提供了一些原型用于构建各种个样的机器学习和神经网络算法
  • gorse: 用 Go 编写的基于协作过滤的离线推荐系统后台。
  • goscore: 用于 PMMLGo 评分 API
  • gosseract: 用于 OCR(光学字符识别)的 Go 包,使用 Tesseract C++ 库。
  • libsvm: libsvmGo 语言版本,基于 LIBSVM 3.14.
  • neat: 即插即用的并行 Go 语言框架,用于增强拓扑神经网络 (NEAT).
  • neural-go: Go 语言实现的多层感知神经网络,通过反向传播算法进行训练.
  • ocrserver: 简单的 OCR API 服务器,很容易被 DockerHeroku 部署。
  • onnx-go: Open Neural Network Exchange (ONNX)Go 接口。
  • probab: 概率分布函数。贝叶斯推理。用纯 Go 编写。
  • randomforest: 简单易用的 Go 随机森林库。
  • regommend: 推荐系统及协同过滤引擎
  • shield: go 语言实现的贝叶斯文本分类器,具有灵活的标记器和存储后端。
  • tfgo: 易于使用的 Tensorflow``go 语言封装:简化了官方 Tensorflow Go 的使用。
  • Varis: Golang 神经网络。

消息系统

  • ami: 基于 Redis 集群可靠队列的 Go 客户端。
  • APNs2: go 语言实现的基于 HTTP/2 苹果推送通知提供服务,可以向 iOStvOSSafariOSX 应用程序发送推送通知
  • Asynq: 建立在 Redis 之上,为 Go 提供的简单、可靠、高效的分布式任务队列,。
  • Beaver: 实时消息服务器,用于在网络和移动应用中构建可扩展的应用内通知、多人游戏、聊天应用。
  • Benthos: 在一系列协议之间建立消息流 go 代码库
  • Bus: 用于内部通信的简约型消息总线实现。
  • Centrifugo: 实时消息服务器
  • Commander: 一个高级事件驱动库,支持消费者 / 生产者模式,支持各种消息系统,如 Apache Kafka。
  • Confluent Kafka Golang ClientConfluentApache KafkaConfluent Platform 开发的 Golang 客户端。
  • dbus: D-BusGo 语言接口
  • drone-line: 通过软件包,docker 或是 Drone CI 来发送 Line 通知
  • emitter: 通过 Go 语言的方式发送事件消息,可以使用通配符,断言,取消发送等优秀特性。
  • event: 观察者模式的 go 语言实现
  • EventBus: 轻量级事件库,支持异步
  • gaurun-client: Go 语言编写的 Gaurun 客户端
  • Glue: 健壮的 GoJavascript Socket 库 (可以用来替代 Socket.io).
  • go-mq: 具有声明式配置的 RabbitMQ 客户端。
  • go-notify: freedesktop 通知规范的本地实现
  • go-nsq: NSQ 官方 Go 语言库
  • go-res: 用于构建 REST/ 实时服务的包,使用 NATSResgate 实现客户端无缝同步。
  • go-socket.ioGo 语言的 socket.io 库,一个实时应用框架.
  • go-vitotrol: Viessmann Vitotrol 服务的 Go 语言客户端
  • Gollum: 一个 n:m 的多路复用器,从不同的源汇聚消息并向目标进行广播
  • golongpoll: HTTP 长轮询服务器库,让 web 发布与订阅变的更简单.
  • gopush-cluster: Gopush-cluster 是一个 Go 语言实现的支持集群的 comet 服务(支持 websockettcp 协议)
  • gorush 通知推送服务器,使用 APNs2GCM
  • gosd: 用于调度何时向通道发送消息的库。
  • guble: 使用通知推送 (Google Firebase Cloud Messaging, Apple Push Notification services, SMS)、websockets 、REST API 的消息服务器。提供了分布式操作和消息持久化特性
  • hub: 用于 Go 应用程序的消息 / 事件汇聚,使用发布 / 订阅模式,支持像 rabbitMQ 的使用模式。
  • jazz: 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和消费。
  • machinery: 异步任务队列,基于分布式消息处理
  • mangos: 纯 Go 语言实现的 Nanomsg ("Scalable Protocols")
  • melody: 用于处理 websocket 会话的简约框架,包括广播和自动 ping/pong 处理。
  • Mercure: 使用 Mercure 协议(建立在 Server-Sent Events 之上)来调度服务器发送的更新的代码库。
  • messagebus: messagebus 是一个 Go 简单的异步消息系统,用于事件源、CQRS、DDD 等场景
  • NATS Go Client: 原生的 oplog/replication 系统,用于 REST APIs 场景
  • nsq-event-bus: 针对 NSQ 的topicchannel 进行了简单的封装
  • oplog: 用于 REST API 场景的通用 oplog/copy 系统。
  • pubsub: 简单的 pubsub 软件包
  • rabbus: amqp 交换队列的简易封装。
  • rabtap: -RabbitMQ 瑞士军刀 cli 应用。
  • RapidMQ: RapidMQ 是一个轻量级,可靠的本地消息队列管理库
  • redisqueue: redisqueue 提供了一个使用 Redis 流的队列,可以用于生产者和消费者模式。
  • rmqconn: RabbitMQ Reconnection。amqp.Connectionamqp.Dialgo 语言封装。允许在连接中断时进行重新连接,然后再强制调用关闭方法。
  • sarama: 用于 Apache Kafka 的库
  • Uniqush-Push: 基于 Redis 的统一推服务,用于服务器端向移动客户端推送消息
  • zmq4: ZeroMQ version 4GO 语言接口。也有适用于 version 3version 2

Microsoft Office

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

EXCEL

  • excelize: 用于读写 Microsoft Excel™ (XLSX) 文件的 Golang
  • go-excel: 用于读取类似数据库形式的 excel 表格。
  • goxlsxwriter: go 语言 libxlsxwriter 封装, 用于编写 XLSX (Microsoft Excel) 文件。
  • xlsx: 用于在 Go 程序中读取最新版 Microsoft Excel 的库
  • xlsx: 在 Go 程序中快速、安全地读取 / 更新现有 Microsoft Excel 文件的库。

其他杂项

依赖性注入

  • alice: Golang 的依赖注入容器
  • container: 功能强大的 IoC 容器,具有流畅且易于使用的界面。
  • di: Go 编程语言的依赖注入容器。
  • dig: 基于反射的 Go 依赖注入工具包。
  • dingo: 基于 GuiceGo 依赖注入工具包。
  • fx: 基于 Go 的依赖注入应用框架(建立在 dig 的基础上)。
  • gocontainer: 简单的依赖注入容器。
  • goioc/di: Spring 启发的依赖注入容器。
  • linker: 基于反射的依赖注入和反转的控件库,支持组件生命周期。
  • wire: Golang 运行时依赖注入。

项目结构

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

  • cookiecutter-golang: Go 应用程序模板,用于按照生产最佳实践快速启动项目。
  • go-sample: 一个带有真实代码的 Go 应用项目布局示例。
  • go-todo-backend: Go Todo Backend 示例,使用模块化的项目布局,针对微服务等场景。
  • golang-standards/project-layout: -Go 生态系统中常见的历史和新兴项目布局模式集。
  • modern-go-application: 应用现代实践的 Go 应用程序模板和示例。
  • scaffold: Scaffold 生成一个入门的 Go 项目布局。让您专注于业务逻辑的实现。

字符串处理

  • go-formatter: 实现大括号 {} 格式字符串的替换字段。
  • gobeam/Stringy: 字符串操作库,用于将字符串转换为驼峰、小驼峰等格式
  • strutil: 字符串实用工具。
  • xstrings: 从其他语言移植过来的字符串函数集合。

暂未分类

这些库被放在这里是因为其他类别似乎都不适合。

  • anagent: 简约、可插拔的 Golang evloop/timer 处理程序,具有依赖注入功能。
  • antch: 一个快速、强大、可扩展的网络爬行和抓取框架。
  • archiver: 用于制作和解压.zip.tar.gz 文件的库和命令。
  • autoflags: Go 包,用于从结构域中自动定义命令行标志。
  • avgRating: - 基于 Wilson Score Equation 计算平均得分和评分。
  • banner: 在你的 Go 应用程序中添加漂亮的横幅。
  • base64Captcha: Base64captch 支持数字、数字、字母、算术、音频和数字来生成字母验证码。
  • battery: 跨平台电源信息库
  • bitio: 高度优化的比特级读写
  • browscap_go: Browser Capabilities ProjectGO 语言库
  • captcha: 包 captcha 为验证码的生成提供了一个简单易用的 API。
  • conv: 包 conv 提供了跨 Go 类型的快速和直观的转换。
  • datacounter: Greaders/writer/HTTP.ResponseWriter 计数器
  • faker: Go 的随机伪造数据和结构生成器。
  • ffmt: 美化数据显示。
  • gatus: 自动化的服务健康仪表板。
  • ghorg: 快速将整个 org/users 仓库克隆到一个目录中 - 支持 GitHub、GitLabBitbucket
  • go-commons-pool: Golang 的通用对象池。
  • go-openapi: 解析和使用 open-api 模式的软件包集合。
  • go-resiliency: golang 的弹性模式。
  • go-unarr: RAR、TAR、ZIP7z 文件的解压库。
  • gofakeit: 用 go 编写的随机数据生成器。
  • gommit: 分析 git 提交消息,确保它们遵循定义的模式。
  • gopsutil: 跨平台库,用于检索进程和系统利用率(CPU、内存、磁盘等)。
  • gosh: 提供 Go 统计处理程序、结构、测量方法。
  • gosms: 你本地的 SMS 网关,可以用来发送 SMS
  • gotoprom: 提供 Go 统计处理程序、结构、测量方法
  • gountries: 一个用来展示国家及其行政区划数据的库
  • health: 简单易用、可扩展的服务健康检查库
  • healthcheck: 针对 RESTful 并发服务健康检查 HTTP 处理程序。
  • hostutils: 用于打包和解压 FQDNs 列表的 golang 库。
  • indigo: 使用 SonyflakeBase58 编码的分布式唯一 ID 生成器。
  • lk: 简单的 `golang 授权库。
  • llvm: - 用于在纯 Go 中与 LLVM IR 交互的库。
  • metrics: 用于度量工具和 Prometheus 指标的库。
  • morse: 用于转换摩尔斯代码的库。
  • numa: -NUMA 是一个用 Go 编写的实用程序库。它帮助我们编写一些 NUMA-AWARED 代码。
  • pdfgen: 从 Json 请求中生成 PDFHTTP 服务。
  • persian: 用 go 编写的波斯语实用程序。
  • sandid: 地球上的每一粒沙子都有自己的 ID
  • shellwords: Golang 库,用于根据 UNIX Bourne shell 的单词解析规则来处理字符串。
  • shortid: 分布式生成超短的、唯一的、非序列的、URL 友好的 ID。
  • shoutrrr: 提供轻松访问各种消息服务的通知库,如 slack, mattermost, gotifysmtp 等。
  • stateless: 用于创建状态机的库
  • stats: 监控 Go 内存状态及系统状态,通过 UDP 进行数据发送
  • turtle: GoEmojis
  • url-shortener: 一个现代的、强大的、健壮的、支持 mysqlURL 短链的微服务。
  • VarHandler: 生成模板化的 http 输入和输出。
  • xdg: Go 中实现的 FreeDesktop.org(xdg) 规范。
  • xkg: 键盘抓取器

自然语言处理

  • detectlanguage: 语言检测 API Go 客户端。支持批量请求、短语或单字语言检测。
  • getlang: 快速自然语言检测包。
  • go-i18n: , 用于处理本地化文本 的软件包及相关工具
  • go-localize: 简单易用的 i18n(国际化和本地化)引擎 - 用于翻译本地化字符串。
  • go-mystem: Yandex.MystemCGo 接口,Yandex.Mystem 是一个俄语词汇形态学分析器
  • go-nlp: 在进行自然语言工作时用于处理离散概率分布一些工具,以及其他的一些有用的工具
  • go-pinyin: 汉字到汉语拼音转换器。
  • go-stem: 波特词干算法的一个实现
  • go-unidecode: Unicode 文本音译为 ASCII 文本
  • go2vec: 利用 Go 语言读取和处理 word2vec
  • gojieba: 结巴分词的 Go 语言实现的 jieba , 结巴分词是一个用于中文的分词算法
  • golibstemmer: snowball libstemmer 库的 Go 语言接口,包括了对 porter 2 的支持
  • gosentiwordnet: libstemmer 库的 Go 绑定。
  • gotokenizer: 基于 Golang 的字典和 Bigram 语言模型的分词器。(现在只支持中文分割)
  • gounidecode: Go 语言的 Unicode 直译器 (通常称之为 unidecode)
  • govader: VADER Sentiment Analysis 情感分析的 Go 实现
  • gse: Go 高效的文本分割;支持英语、中文、日语和其他语言。
  • icu: icu4c C 库的 CGo 接口,包括了检测和转换函数。保证了 version 50.1 版本的兼容性
  • iuliia-go: 以各种可能的方式翻译西里尔语 → 拉丁语。
  • kagome: 用纯 Go 编写的 JP 形态分析器。
  • libtextcat: libtextcat C 库的 CGo 接口。保证了 version 2.2 版本的兼容性
  • MMSEGO: Go 语言实现的 MMSEG(一个中文分词算法)
  • MMSEG: MMSEG的GO 实现,是一种中文分词算法。
  • nlp: 从字符串中提取值,并用 nlp 填充结构。
  • nlp: 支持 LSALatent Semantic Analysis)的 Go 自然语言处理库。
  • paicehusk: Go 语言实现的 Paice/Husk 词干算法
  • petrovich: Petrovich 是一个将俄语名称转变成给定语言的库。
  • porter: Martin Porter 实现的 C 语言版本的 Porter 词干算法的 Go 语言接口。
  • porter2: 非常快速的 Porter 2 stemmer.
  • prose: 文本处理库,支持词语切分、词性标记、命名实体提取等功能
  • RAKE.go: 快速自动关键字提取算法 (Rapid Automatic Keyword Extraction:RAKE) 的 Go 语言接口
  • segment: 用于进行 Unicode 文本分割的库,实现了 Unicode Standard Annex #29 中描述的功能
  • sentences: 语句标记器:将文字段落转换为语句列表
  • shamoji: shamoji 是一个 Go 语言编写的词过滤软件包
  • snowball: Snowball native 分词器的 Go 语言接口,提供了分词提取的功能 .
  • stemmer: Go 语言分词器软件包,包括了英语和德语分词器
  • textcat: 基于 n-gramGo 语言文本分类软件包,支持 utf-8 和原始文本
  • transliterator: 提供单向字符串翻译,支持特定语言的翻译规则
  • whatlanggo: Go 语言的自然语言检测包。支持 84 种语言和 24 种书写 (如拉丁,西里尔等书写系统)。
  • when: 英语、俄语的自然语言日期、时间表达解析器。

网络相关库

  • arp: 遵循 RFC 826 标准实现了 ARP 协议。
  • buffstreams: 基于 TCP 的 简单易用的 protocolbuffer 数据流
  • canopus: CoAP 客户端 / 服务器实现 (RFC 7252)
  • cidranger: Go 的快速 IP、CIDR 查找库。
  • dhcp6: dhcp6 实现了一个 DHCPv6 服务器,遵循 RFC 3315 标准。
  • dns: 用于处理 DNSGo 语言库
  • ether: 跨平台 Go 语言库,用于发送和接收以太帧
  • ethernet: ethernet 实现了IEEE 802.3 Ethernet II 帧以及 IEEE 802.1Q VLAN 标签的组装和剥离.
  • fasthttp: asthttp 是一个快速的 HTTP 实现,比 net/http1 的性能快 10 倍
  • fortio: 负载测试库和命令行工具,提供先进的 echo 服务器和 web 用户界面。允许指定设定每秒钟查询的负载,记录延迟直方图和其他有用的统计数据,并将其绘制成图表。
  • ftp: ftp 实现了一个 FTP 客户端,遵循 RFC 959 标准
  • gaio: 在 proactor 模式下为 Golang 提供高性能的异步 io 网络。
  • gev: 一个轻量、比标准库更快的基于 Reactor 模式的非阻塞 TCP 网络库,支持自定义协议,可以轻松快速搭建高性能服务器。
  • gmqtt: Gmqtt 是一个灵活、高性能的 MQTT 代理库,它完全实现了 MQTT 协议 V3.1.1 版本
  • gnet: gnet 是用纯 Go 编写 的一个高性能、轻量级、非阻塞、事件驱动的网络框架,
  • gNxI: 使用 gNMIgNOI 协议的网络管理工具集合。
  • go-getter: 一个用于通过 URL 从多种源下载文件或目录的 Go 语言库
  • go-powerdns: Golang 的 PowerDNS API 绑定。
  • go-stun: Go 语言实现的 STUN 客户端 (参考 RFC 3489RFC 5389 标准).
  • gobgp: Go 语言实现的 BGP
  • gohooks: GoHooks 使得从 Go 应用程序中发送和消费安全的 web-hooks 非常容易。该库的实现受 Spatie 的 Laravel Webhook 客户端和服务器的启发。
  • golibwireshark: Golibwireshark 使用 libwireshark 库来解析 pcap 文件并且分析数据
  • gopacket: 用于报文处理的库
  • gopcap: libpcap 的 Go 语言封装
  • goshark: Goshark 使用 tshark 来对 IP 报文进行解码并创建数据结构用于分析报文
  • gosnmp: 用于执行 SNMP 操作的库
  • gotcp: 用于快速编写 tcp 应用的库
  • grab: 管理文件下载的 Go 语言库
  • graval: 试验性的 FTP 服务器框架
  • HTTPLab: HTTPLabs 让你检查 HTTP 请求和伪造响应。
  • httpproxy: HTTP 代理处理程序和拨号器。
  • iplib: 用于处理 IP 地址的库 (net.IP, net.IPNet), 灵感来自 python ipaddressruby ipaddr
  • jazigo: Jazigo 是一个用 Go 编写的工具,用于检索多个网络设备的配置。
  • kcp-go: KCP- 快速可靠的 ARQ 协议。
  • kcptun: 基于 KCP 协议的极其简单和快速的 udp 隧道。
  • lhttp: 强大的 websocket 框架,让您更轻松地建立 IM 服务器。
  • linkio: 接口读写速度模拟器
  • llb: 非常简单但快速的后端代理服务器。对于快速重定向到预定义域名很有用,无内存分配,响应速度快
  • mdns: 简单的 mDNS(组播 DNS) 客户端 / 服务器库
  • mqttPaho: Paho 客户端提供了一个 MQTT 客户端库,用于通过 TCP, TLSWebSocketsMQTT broker 建立连接
  • NFF-Go: 用于快速开发云和裸机(原 YANFF)的高性能网络功能的框架。
  • packet: 通过 TCPUDP 发送数据包。如果需要的话,它可以缓冲消息和热交换连接。
  • panoptes-stream: 云端原生的分布式流媒体网络遥测(gNMI、Juniper JTICisco MDT)库。
  • peerdiscovery: Go 库,用于使用 UDP 组播进行跨平台本地对等发现。
  • portproxy: 单的 TCP 代理,为不支持 CORS 的 API 增加了 CORS 支持。
  • publicip: publicip 返回你面向公众的 IPv4 地址(互联网出口)。
  • quic-go: 纯 GoQUIC 协议的实现。
  • raw: raw 允许你在设备驱动层读写网络接口的数据
  • sftp: sftp 实现了 https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt 中描述的 SSH 文件传输协议
  • ssh: 用于创建 SSH 服务器的高级 API(封装了 crypto/ssh).
  • sslb: 超简单的负载均衡库。
  • stun: RFC 5389 STUN 协议的 Go 实现。
  • tcp_server: 用于更快地构建 tcp 服务器的 Go 库。
  • tspool: 一个使用 worker pool 来提高性能和保护服务器的 TCP 库。
  • utp: Go uTP 微传输协议的实现
  • vssh: Go 库,用于通过 SSH 协议构建网络和服务器自动化。
  • water: 一个简单的 TUN/TAP 库。
  • webrtc: WebRTC API 的纯 Go 实现。
  • winrm: 用于在 Windows 机器上远程执行命令的 Go WinRM 客户端。
  • xtcp: TCP 服务器框架,支持同时全双工通信。可以优雅的关闭,并且支持自定义协议

Http Client

  • gentleman: - 插件驱动的 HTTP 客户端库。
  • go-http-client: 支持简单方便地进行 http 调用。
  • grequests: 著名的请求库的 Go 版本。
  • heimdall: 具有重试和 hystrix 功能的 http 客户端。
  • httpretry: 丰富了默认的 Go HTTP 客户端的重试功能。
  • pester: 具有重试、回退和并发功能的 Go HTTP 客户端调用。
  • request: golangHTTP 客户端。如果你有关于 axiosrequests 的经验,你会喜欢它,该库没有第三方依赖。
  • resty: 受 Ruby rest-client 的启发,为 Go 设计的简单 HTTPREST 客户端。
  • rq: golang 标准客户端的更好的接口封装
  • sling: 用于创建和发送 API 请求的 Go HTTP 客户端库。

OpenGL

  • gl: OpenGLGo 语言接口
  • glfw: GLFW 3Go 语言接口
  • go-glmatrix: glMatrix 库的 Go 移植。 :
  • goxjs/gl: Go 语言跨平台 OpenGL 接口 (OS X, Linux, Windows, browsers, iOS, Android).
  • goxjs/glfw: Go 语言跨平台 glfw 库,用于创建 OpenGL 上下文并接收事件
  • mathgl: Go 语言 3D 数学库,专注于 3D, 受到 GLM 启发

ORM

  • beego orm: 强大的 Go 语言 orm 框架,支持 pq/mysql/sqlite3.
  • ent: 简单而强大的用于数据建模和查询的 ORM。
  • go-firestorm: Google/Firebase Cloud Firestore 的简单 ORM
  • go-pg: 专注于 PostgreSQL 功能和性能的 ORM
  • go-queryset: 100% 类型安全的 ORM, 能够基于 GORM 进行代码生成和支持 MySQL、PostgreSQL、Sqlite3、SQL Server 等数据库
  • go-sql: 简单的 mysql ORM
  • go-sqlbuilder: 灵活而强大的 SQL 字符串构建库,加上一个零配置的 ORM
  • go-store: - 简单快速的基于 Redis 的键值对存储库
  • GORM: 超棒的 Go 语言 ORM 库,对开发者非常友好
  • gormt: Mysql 数据库到 Golang 结构体的 orm 库。
  • gorp: GoORM 类库。
  • grimoire: Grimoiregolang 的数据库访问层和验证层。(支持:MySQL, PostgreSQLSQLite3)。
  • lore: 适用于 Go 的简单轻量级的伪 ORM / 伪结构映射环境,。
  • marlow: 从项目结构生成 ORM, 以保证编译时的安全。
  • pop/soda: 支持 MySQL, PostgreSQL, 以及 SQLite. 的数据库迁移、创建、ORM 的工具,
  • QBS: 利用结构体进行标准查询,是一个 Go 语言 ORM
  • reform: 基于非空接口和代码生成的优秀的 ORM,
  • rel: Golang 的现代数据库访问层 - 可测试、可扩展,并支持生成简洁优雅的 API
  • SQLBoiler: ORM 生成器。为你的数据库表单生成一个功能全面、快速的 ORM
  • upper.io/db: - 通过使用封装了成熟的数据库驱动的适配器,来使用单一接口与不同的数据源进行交互
  • XORM: 简单、强大的 Go 语言 orm
  • Zoom: 基于 Redis 构建的超快的数据存储于查询引擎。

Go 语言包管理

  • go modules: go module 是最新的 go 语言版本管理工具。go module 具有支持包引入记录和其他模块的依赖构建功能。
  • dep: Go 语言依赖工具.
  • vgo: 用于包和依赖管理的非官方库。
  • gigo: 类似 PIP 的依赖管理工具。支持私有仓库和哈希
  • glide: 轻松管理你的 GO 语言包发布者以及发布包。 受到类似 Maven, BundlerPip 这些工具的的启发
  • godep: Go 语言依赖工具,Godep 可以帮助开发者修复库的依赖关系
  • gom: Go Manager
  • goop: 简单的依赖管理工具,受到 Bundler 的启发
  • gop: 通过 GOPATH 构建和管理你的 Go 应用程序。
  • gopm: Go 包管理器
  • govendor: Go 包管理器。Go 语言 vendor 工具,兼容标准 vendor 文件
  • gpm: Go 语言包管理工具
  • johnny-deps: 使用 Git 的最小依赖版本。
  • modgv: 将 go mod graph 输出转换为 GraphvizDOT 语言。
  • mvn-golang: 提供自动加载 Golang SDK、依赖管理和在 Maven 项目基础架构中启动构建环境的方法的插件。
  • nut: Vendor Go 的依赖关系。
  • VenGO: 创建和管理可导出的隔离的 Go 虚拟环境。
    绩效
  • jaeger: 分布式跟踪系统。
  • pixie: 通过 eBPFGolang 应用程序进行无工具追踪。
  • profile: Go 的简单剖析支持包。
  • statsviz: 实时可视化你的 Go 应用程序运行时的统计数据。
  • tracer: 简单、轻量级的代码追踪库。

查询语

  • api-fu: GraphQL 的 go 语言实现。
  • dasel: 基于命令行的选择器查询和更新数据结构。类似于 jq/yq, 但支持 JSON、YAML、TOMLXML
  • gojsonq: 用于查询 JSON 数据的 Go
  • graphql: graphql 解析器和实用工具
  • graphql: 专注于易用性的 GraphQL 服务器
  • graphql-go: 为 Go 语言实现的 GraphQL
  • gws: ApollosGraphQL over Websocket 客户端和服务器实现。
  • jsonql: JSON 查询表达式库
  • jsonslice: 具有高级过滤器的 Json 路径查询。
  • rql: REST API 的资源查询语言。
  • rqp: REST API 的查询分析器。在查询中直接支持过滤、验证、AND、OR 操作。
  • straf: - 轻松地将 Golang 结构转换为 GraphQL 对象。

资源嵌入

  • esc: - 在 Go 语言程序中嵌入文件并为其提供 HTTP.FileSystem 接口
  • fileb0x: 用于在 Go 语言程序中嵌入文件的工具,专注于可定制化和易用性
  • go-embed: 生成用于嵌入资源文件到库或可执行文件的 Go 语言代码
  • go-resources: 简洁的 Go 语言资源嵌入工具
  • go.rice: Go.rice 是一个让你轻松使用 html,js,css, 图片以及模板这类资源的库
  • mule: 将外部资源如图片、电影.. 嵌入到 Go 源代码中,使用 go generate 创建单文件二进制文件,专注于简单性。
  • packr: 将静态文件嵌入 Go 二进制文件的简单方法。
  • statics: 将静态资源嵌入到 Go 文件中,用于单独二进制编译 + 使用 http.FileSystem + symlinks.
  • statik: 将静态文件嵌入到 Go 语言可执行文件中
  • templify: 将外部目标文件嵌入到 Go 代码中来创建单独的二进制文件
  • vfsgen: 生成一个 vfsdata.Go 文件,静态实现了一个虚拟文件系统

数据分析与数据科学

  • assocentity: 单词到给定实体的平均距离计算包。
  • bradleyterry: 成对比较提供一个布拉德利 - 特里模型。
  • calendarheatmap: 受 Github contribution 的启发,为普通 Go 语言包提供的日历热图。
  • chart: Go 的简单图表绘制库,支持多种图形类型。
  • dataframe-go: 用于机器学习和统计的数据框类似于 pandas
  • decimal: 包 decimal 实现了任意精度的十进制浮点运算。
  • evaler: 简单的浮点算术表达式评估器。
  • ewma: 指数加权移动平均数。
  • geom: golang 的几何处理库。
  • go-dsp: 数字信号处理
  • go-gt: 图论算法
  • goent: 熵测量的 GO 实现
  • gohistogram: 数据流的近似直方图
  • gonum: 用于 Go 编程语言的数值库。它包含了矩阵、统计、优化等方面的库。
  • gonum/plot: Gonum/plot 提供了用于创建和绘制图表的 API
  • goraph: 纯 Go 语言编写的图论库(数据结构,算法可视化)
  • gosl: 用于线性代数、FFT、几何学、NURBS、数值方法、概率、优化、微分方程等的 Go 科学库。
  • GoStats: GoStats 是一个开源的 GoLang 库,主要用于机器学习领域的数学统计,它涵盖了大部分的统计测量函数。
  • graph: 基本图形算法库。
  • ode: 普通微分方程 (ODE) 求解器。支持扩展状态及基于通道的迭代算法终止条件
  • orb: 支持剪裁、GeoJSONMapbox Vector Tile2D 几何类型。
  • pagerank: Go 语言实现的加权网页排名 PageRank 算法
  • piecewiselinear: 小型线性插值库。
  • PiHex: 贝利 - 波尔温 - 普劳夫公式 "Bailey-Borwein-Plouffe")` 算法的实现,用于计算十六进制 π
  • rootfinding: 用于查找二次函数根的寻根算法库
  • stats: 统计库,包含一些 Go 语言标准库中漏掉的常用函数
  • streamtools: 通用图形化工具,用于处理流数据
  • TextRank: Golang 中的 TextRank 实现,具有可扩展的特性(摘要、加权、短语提取)和多线程(goroutine)支持。
  • triangolatte: 2D 三角测量库。允许将线条和多边形(基于点)翻译成 GPU 语言。

安全领域相关库

  • acmetool: ACME (Let's Encrypt) 客户端工具,支持自动续期.
  • acra: 用于保护基于数据库的应用程序的网络加密代理,用于防止数据泄露、SQL 注入等。
  • argon2-hashing: Goargon2 包的封装,与 Go 的标准库 Bcryptsimple-scrypt 包相对应
  • argon2pw: 具有恒定时间密码比较功能的 argon2 密码散列生成库
  • autocert: 自动提供 Let's Encrypt 证书并启动 TLS 服务器。
  • BadActor: 受 fail2ban 的启发驻留在内存中的应用驱动监控程序,
  • Cameradar: 用于远程入侵监控摄像头的 RTSP 流的工具库。
  • certificates: 用于生成 tls 证书的工具库。
  • firewalld-rest: 用于动态更新 linux 服务器上的 firewalld 规则的定时程序。
  • go-generate-password: 密码生成器,可以作为客户端使用或者作为代码库使用。
  • go-password-validator: 用于原始加密熵值的密码验证器。
  • go-yara: Go Bindings forYARA 恶意软件研究人员(以及其他所有人)的模式匹配瑞士刀”。
  • goArgonPass: Argon2 密码散列和验证,旨在与现有的 Python 和 PHP 实现兼容。
  • goSecretBoxPassword: 用于安全地散列和加密密码的 go 语言包。
  • Interpol: 用于模糊和渗透测试的基于规则的数据生成器,。
  • lego: 纯 Go 语言开发的 ACME 客户端库及命令行工具
  • memguard: 用于处理内存中敏感数据的 Go 语言库
  • nacl: NaCL 系列 APIGo 实现
  • optimus-go: 使用 Knuth 算法进行 ID 哈希和混淆。
  • passlib: 密码哈希库
  • secure: 为 Go 提供了一些安全功能 HTTP 中间件,
  • secureio: 基于 XChaCha20-poly1305、ECDHED25519io.ReadWriteCloser 的密钥交换 + 认证 + 加密封装器和复用器
  • simple-scrypt: Scrypt 库,具有简单、易懂的 API, 同时具有内置的自动校准功能
  • ssh-vault: 利用 ssh 秘钥加解密 。
  • sslmgr: 通过对 acme/autocert 的高级封装,使 SSL 证书的使用变得简单。
  • themis: 高级加密库,用于解决典型的数据安全任务(安全数据存储、安全消息传递、零知识证明认证), 提供 14 种语言,最适合多平台应用。

序列化

  • asn1: Asn.1 BER 及 DER 编码库
  • bambam: 从 Go 中生成 Cap'n Proto 模式。
  • bel: 从 Go 结构 / 接口生成 TypeScript 接口。对 JSON RPC 有用。
  • binstruct: 用于将数据映射到结构中的 Golang 二进制解码器。
  • cbor: 小巧、安全、简单的 CBOR 编码和解码库。
  • colfer: 用于生成 Colfer 二进制格式代码
  • csvutil: 高性能的 CSV 记录编码和解码器
  • elastic: 在动态转换不同类型的库
  • fixedwidth: 固定宽度的文本格式(支持 UTF-8)。
  • fwencoder: Go 的固定宽度文件解析器(编码和解码库)
  • go-capnproto: Go 的 Cap'n Proto 编码器和解析器。
  • go-codec: 高性能、多功能、规范化编码解码以及 rpc 库,用于 msgpack, cborjson, 支持基于运行时的 OR 码生成
  • go-lctree: 提供一个 CLI 和基元来序列化和反序列化 LeetCode 二进制树。 LeetCode binary trees:
  • gogoprotobuf: 用于 Gadgets 的 go 协议缓冲区。
  • goprotobuf: 以库和协议编译器插件的形式为 Google 的协议缓冲区提供 Go 支持。
  • jsoniter: 100% 兼容的 "encoding/json " 的 高性能程序库。
  • mapstructure: 用于将通用 map 值解码为本地 Go 结构的 Go 库。
  • php_session_decoder: 用于处理 PHP session 格式和 PHP Serialize/Unserialize 函数的 GoLang 库。
  • pletter: 为消息中介包装原消息的标准方法。
  • structomap: 用于从静态结构中轻松动态地生成映射的库。

服务端应用

  • algernon: HTTP/2 web 服务器,内置 Lua、Markdown、GCSSAmber 支持。
  • Caddy: Caddy 是一个备选的 HTTP/2 web 服务器,配置简单,使用方便。
  • consul: Consul 是一个用于服务发现、监控和配置的工具
  • devd: 开发者使用的本地 web 服务器
  • discovery: 一个用于弹性中层负载均衡和故障转移的注册表。
  • dudeldu: 一个简单的 SHOUTcast 服务器。
  • etcd: 高可用性的键值存储,用于分享配置和服务发现
  • Fider: Fider 是一个收集和整理客户反馈的开放平台。
  • Flagr: Flagr 是一个开源的功能标志和 A/B 测试服务。
  • flipt: 用 GoVue.js 编写的自带功能标志的解决方案。
  • go-proxy-cache: 简单的反向代理与缓存,用 Go 编写,使用 Redis
  • jackal: 用 Go 编写的 XMPP 服务器。
  • lets-proxy2: 反向代理,用于处理 https, 在 fly 中使用 lets-encrypt 发行证书。
  • minio: Minio 是一个分布式对象存储服务器
  • nginx-prometheus: -NginxPrometheus exporter
  • nsq: 一个实时的分布式消息平台
  • protoxy: 一个将 JSON 请求体转换为协议缓冲区的代理服务器。
  • psql-streamer: 从 PostgreSQLKafka 的数据库事件流。
  • riemann-relay: - 负载平衡 Riemann 事件和 / 或将其转换为 Carbon 的中继。
  • RoadRunner: 高性能的 PHP 应用服务器,负载均衡器和进程管理器。
  • SFTPGo: 功能齐全、高度可配置的 SFTP 服务器,可选择支持 FTP/S和WebDAV。它可以为本地文件系统和云存储后端服务,如 S3 和谷歌云存储。
  • simple-jwt-provider: 简单轻量级的 provider, 它展示了 JWTs, 支持登录、密码重置(通过邮件)和用户管理。
  • Trickster: HTTP 反向代理缓存和时间序列加速器。

流处理

流式数据处理和响应式编程库

  • go-streams: Go 流处理库。
  • machine: 内置度量和具有可跟踪的用于编写和生成流式 workerGo
  • stream: Go Stream, 像 Java 8 Stream 一样。支持 Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce... 等特性

模板引擎

模版渲染和模版生成处理库

  • ace: Go 语言版本的 HTML 模板引擎,受到了 SlimJade 的启发。Ace 是对 Gold 的一种改进。
  • amber: Amber 是一个优雅的模板引擎,受到 HAMLJade 的启发
  • damsel: 通过 css 选择器实现了 html 框架,并可以通过 pkg html/template 等进行扩展
  • ego: 轻量级模板语言,让你可以使用 Go 语言来创建模板。模板会被转化为 Go 语言并编译
  • extemplate: 围绕 html/template 的小型封装器,可以轻松实现基于文件的模板继承
  • fasttemplate: 简单而快速的模板引擎。替换模板占位符的速度比 text/template: 快 10 倍
  • gofpdf: PDF 文档生成器,高度支持文本、绘图和图像。
  • gospin: 语法引擎,对于 A/B、测试文本 / 文章片段和创建更自然的对话非常有用。
  • goview: Goview 是一个轻量级的、简约的、习惯性的模板库,基于 golang html/template 来构建 Go web 应用。
  • hero: Hero 是一个趁手的、快速的、强大的 Go 语言模板引擎
  • jet: Jet 模板引擎
  • kasia.go: 使用 go 语言实现的 用于 HTML 和其他文本文件的模板系统,
  • liquid: Go 语言实现的 Shopify Liquid 模板.
  • maroto: 用 Maroto 的方式来创建 PDF。Maroto 的灵感来自于 Bootstrap 并使用 gofpdf
  • mustache: Go 语言实现的 Mustache 模板语言
  • pongo2: 类似 Django 的模板引擎
  • quicktemplate: 快速、强大且易用的模板引擎。将模板转化为 Go 语言并进行编译
  • raymond: 使用 Go 语言实现的完整的 handlebars
  • Razor: Go 语言的 Razor 视图引擎
  • Soy: go 语言实现的谷歌闭包模板 (也就是 Soy templates), 参见官方说明文档:
  • velvet: 使用 Go 语言实现的完整的 `handlebars

测试相关

测试库和测试数据集生成库

  • 测试框架

    • apitest: 为基于 REST 的服务或 HTTP 处理程序提供简单且可扩展的行为测试库,支持模拟外部 http 调用和渲染序列图。
    • assert: 基础断言库,用于对 Go 语言程序进行测试,提供了一些用于自定义断言的代码块
    • badio: Go 语言 testing/iotest 包的扩展
    • baloo: 表达性强、多功能的、端到端的 HTTP API 测试工具
    • biff: Bifurcation 测试框架,兼容 BDD
    • charlatan: 为测试生成虚假接口实现的工具。
    • commander: 用于在 windows、linuxosx 上测试 `cli 应用程序的工具。
    • covergates: 自主的代码覆盖率报告审查和管理服务。
    • cupaloy: 用于测试框架的简单快照测试插件。
    • dbcleaner: 清空数据库用于测试,受到 database_cleaner 的启发
    • dsunit: 数据库测试,针对 SQL、 NoSQL、 结构化文件.
    • embedded-postgres: 作为另一个 Go 应用程序或测试的一部分,在 Linux、OSXWindows 上本地运行一个真正的 Postgres 数据库
    • endly: 声明式端到端功能测试。
    • flute: HTTP 客户端测试框架。
    • frisby: REST API 测试框架
    • ginkgo: BDD 测试框架
    • go-carpet: 用于在终端中查看测试覆盖率的工具
    • go-cmp: 用于比较测试中的 Go 值的软件包。
    • go-hit: 用 golang 编写的 http 集成测试框架。
    • go-mutesting: Go 语言源代码突变测试(Mutation testing )
    • go-testdeep: 扩展了 go 测试包的极为灵活的 golang 深度比较库,。
    • go-vcr: 记录并重放 HTTP 交互,用于快速的、确定性的、准确的测试
    • goblin: 类似 Mocha 的测试框架
    • goc: Goc 是一个针对 Go 编程语言的综合覆盖测试系统。
    • gocheck: 更加高级的测试框架,用于替换 Gotest.
    • GoConvey: BDD 风格的测试框架,具有 web 界面和计时刷新功能
    • gocrest: 用于 Go 断言的可组合的类似 hamcrest 的匹配器。
    • godog: 类似于 CucumberBehatGo BDD 框架。
    • gofight: 对 Go 语言的路由框架进行 API 测试
    • gogiven: 类似 YATSPECGo BDD 测试框架。
    • gomatch: 类似 Rspec 的匹配器 / 断言库。
    • gomega: 类似 Rspecmatcher/assertion
    • GoSpec: BDD 风格的测试框架
    • gospecify: 支持 BDD 语法 。对于任何使用过 rspec 等库的人来说应该非常熟悉
    • gosuite: 轻量级测试套,为 Go1.7's Subtests 带来了 setup/teardown 功能
    • gotest.tools: 用于增强 Go 测试包并支持常见模式的软件包集合。
    • Hamcrest: 用于声明式 Matcher 对象的流畅框架,当应用于输入值时,会产生自描述的结果。
    • httpexpect: 简洁的、声明式的、易用的端到端 HTTP 及 REST API 测试
    • jsonassert: 用于验证 JSON 有效载荷是否被正确序列化的软件包。
    • restit: 帮助编写 RESTful API 集成测试的 Go 语言微型框架.
    • schema: 对请求和响应中使用的 JSON 模式进行快速、简单的表达式匹配。
    • stop-and-go: 并发测试助手。
    • testcase: 行为驱动开发的直观测试框架。
    • testfixtures: 类似 Rails 的测试工具,用于测试数据库应用
    • Testify: 对标准测试包的扩展
    • testmd: 将 markdown 片段转换为可测试的 go 代码。
    • testsql: 在测试前从 SQL 文件中生成测试数据,并在测试结束后将其清除。
    • trial: 快速简单的可扩展断言,不需要引入太多模板。
    • Tt: 简单而多彩的测试工具。
    • wstest: Websocket 客户端,用于对于 websocket HTTP.Handler 进行单元测试
  • Mock

    • counterfeiter: 用于生成自包含 mock 对象的工具
    • go-localstack: 在 AWS 测试中使用 localstack 的工具。
    • go-sqlmock: Mock SQL, 用于测试数据库交互
    • go-txdb: 基于单事物的数据库驱动,主要用于测试目的
    • gock: 多功能、易用 HTTP mock
    • gomock: 给 Go 语言用的 Mock 框架
    • govcr: HTTP mock: 离线测试时记录和重放浏览器的动作
    • hoverfly: HTTP(S): proxy, 用于记录和模拟 REST/SOAP API, 具有可扩展的中间件和易于使用的 CLI。
    • httpmock: 轻松模拟来自外部资源的 HTTP 响应。
    • minimock: Mock 生成器
    • mockhttp: Go HTTP.ResponseWriter 使用的 Mock 对象
    • timex: 原生时间包的测试友好的替代品。
  • Fuzzing and delta-debugging/reducing/shrinking.

    • go-fuzz: 随机化测试系统
    • gofuzz: 用于生成随机值来初始化 Go 语言对象的库
    • Tavor: 通用模糊测试框架
  • Selenium 及浏览器控制工具

    • cdp: 类型安全的的 Go 语言接口,可以用于浏览器或任何实现了 Chrome debug 协议的其他待调试对象
    • chromedp: 用于驱动和测试 Chrome, Safari, Edge, Android Webviews, 以及其他支持 Chrome 调试协议的产品
    • ggr: 轻量级服务器,可以将 Selenium Wedriver 的请求路由或代理到多个 Selenium hubs.
    • rod: Devtools 驱动,使网络自动化测试变得简单。
    • selenoid: Selenium hub 服务器的替代品,可以在容器中启动浏览器
  • Fail injection

文本处理

解析和操作文本的代码库

  • 特定文本格式处理
    • align: 文本对齐
    • allot: 占位符及通配符文本解析
    • bbConvert: 将 bbCode 转换为 HTML
    • blackfriday: Markdown 解析器
    • bluemonday: HTML 清理工具
    • codetree: 解析缩进代码(python、pixy、scarlet 等)并返回一个树形结构。
    • colly: go 语言版爬虫框架
    • commonregex: Go 常用正则表达式的集合。
    • dataflowkit: Web 爬虫框架用于将网站转化为结构化数据。
    • did: Go 中的 DID(去中心化标识符)解析器和 Stringer
    • doi: Go 中的文档对象标识符(doi)解析器。
    • editorconfig-core-go: Go 语言用的 Editorconfig 文件解析和操作库
    • enca: libenca: 的极简的 cGo 接口
    • encdec: 通用编码和解码器
    • genex: 计算并展开正则表达式为所有匹配的字符串
    • github_flavored_markdown: GitHub Flavored Markdown 渲染器(使用 blackfriday), 带有栅栏式代码块高亮,可点击标题锚链接
    • go-fixedwidth: 固定宽度的文本格式(带反射的编码器 / 解码器)。
    • go-humanize: 将时间、数字和内存大小格式化为人类可读的格式。
    • go-nmea: Go 语言的 NMEA 解析库。
    • go-runewidth: 用于获取固定宽度的字符或字符串的函数。
    • go-slugify: 制作支持多语言的漂亮 slug
    • go-toml: TOML 格式的 Go 库,
    • go-vcard: 解析和格式化 vCard
    • go-zero-width: Go 的零宽度字符检测和移除。
    • gofeed: 使用 Go 语言解析 RSSAtom
    • gographviz: 用以解析 Graphviz DOT 语言
    • gommon/bytes: 格式化二进制为字符串
    • gonameparts: 将人名解析为几个独立的部分
    • goq: 声明式 HTML 编组,使用结构标签和 jQuery 语法 (使用 GoQuery).
    • GoQuery: GoQueryGo 语言带来了一组类似 jQuery 的语法和功能
    • goregen: 根据正则表达式生成随机字符串
    • goribot: 简单的 golang 爬虫框架,3 行代码就可以创建爬虫。
    • gotext: Go 语言版本的 GNU gettext 工具。
    • guesslanguage: 用于确定 unicode 文本的自然语言的函数。
    • html-to-markdown: 将 HTML 转换为 Markdown。甚至适用于整个网站,并可通过规则进行扩展。
    • htmlquery: HTMLXPath 查询包,让您可以通过 XPath 表达式从 HTML 文档中提取数据。
    • inject: 一个基于反射的注入器
    • ltsv: 适用于 Go 的高性能 LTSV(Labeled Tab Separated Value)阅读器。LTSV (Labeled Tab Separated Value):
    • mxj: 通过点分路径和通配符来提取值 将 XML 编解码为 JSONmap[string]interface{}; 目的是用于替代 Replaces x2jj2x 包.
    • pagser: Pagser 是一个简单的、可扩展的、可配置的、基于 goquerystruct 标签的 golang 爬虫解析和反序列化工具,能够将 html 页面映射到 struct 结构体中。
    • podcast: Golang 中兼容 iTunesRSS 2.0 的播客生成器。
    • sdp: SDP Session Description Protocol, RFC 4566 实现
    • sh: Shell 解析器及格式化工具
    • slug: URL 友好的 slug 化工具,支持多种语言
    • Slugify: Go 语言静态地址生成器,可以处理字符串
    • syndfeed: 适用于 Atom 1.0和RSS 2.0 的聚合 feed
    • toml: TOML 配置格式的编码解码器
  • 文本工具
    • gofuckyourself: 敏感词过滤器
    • gotabulate: 使用 Go 轻松地打印你的表格数据。
    • kace: 涵盖常见初始化的普通大小写转换。
    • parseargs-go: 能理解引号和反斜杠的字符串参数解析器。
    • parth: URL 路径分割解析库。
    • radix: 快速字符串排序算法。
    • regroup: 使用 struct 标记和自动解析将正则表达式命名的组匹配到 go 结构中。
    • Tagify: 从给定的源中产生一组标签。
    • textwrap: Pythontextwrap 模块的实现。
    • TySug: 关于键盘布局的替代建议。
    • xj2go: 将 xml 或 json 转换为 go 结构。
    • xurls: 从文本中提取 URLs

第三方 API

第三方API 汇总

工具库

可以提升效率的通用代码库和工具

  • apm: 具有 HTTP APIGo 语言进程管理工具.
  • backscanner: 类似于 bufio.Scanner 的扫描器,但它以反向顺序读取并返回结果。
  • beyond: Go 工具,它将推动你进入 AOP 世界!
  • blank: 验证或删除字符串中的空白和空白字符。
  • boilr: 用于从模板中快速创建项目的 CLI 工具。
  • chyle: 使用 git 仓库的变更日志生成器,具有多种配置
  • circuit: 高效且功能完整的 Hystrix 断路器模式的 go 语言实现
  • circuitbreaker: Go 中的断路器。
  • clockwork: 使用简单、流畅的语法来调度周期性任务
  • cmd: 用于在 osx、windowslinux 上执行 shell 命令的库。
  • command: 命令模式,支持线程安全的串行、并行调度
  • copy: 用于快速复制不同类型结构的软件包。
  • copy-pasta: 通用多工作站剪切板,使用类似 S3 的后端作为存储
  • countries: 完全执行 ISO-3166-1、ISO-4217、ITU-T E.164、Unicode CLDR和IANA ccTLD 标准的库。
  • create-go-app: 通过运行一个命令就可以创建一个新的生产就绪项目,包括后端(Golang)、前端(JavaScript、TypeScript)和部署自动化(Ansible、Docker)的强大的 CLI
  • ctop: 用于容器指标,类似于 Top 的接口(例如 htop)。
  • ctxutil: 用于上下文 context 的实用函数集合。
  • dbt: 从中央可信仓库运行自更新签名二进制文件的框架。
  • Death: - 利用信号管理应用程序的关闭
  • Deepcopier: Go 的简单结构拷贝库。
  • delve: Go 语言调试器
  • dlog: 编译时控制的日志,让你的 release 包变得更小而不需移除 debug 调用
  • equalizer: Go 的配额管理器和速率限制器。
  • ergo: 简化了对运行在不同端口的多个本地服务的管理。
  • evaluator: 基于 s-expression 动态地评估一个表达式。简单且易于扩展。
  • filetype: 用于推断文件类型的小程序包,它可以检查魔法数字签名。
  • filler: 使用 "fill " 标签来填充结构的小工具。
  • filter: 提供 Go 数据的过滤、净化和转换。
  • fzf: 命令行模糊查找工具
  • gaper: 当 Go 项目崩溃或某些监视文件发生变化时,构建并重新启动该项目。
  • generate: 针对一个路径或环境变量,递归的执行 Go generate, 可以通过正则表达式来进行过滤
  • ghokin: 并行化的格式化程序,不需要对 gherkin (cucumber, behat...), 的外部依赖。
  • git-time-metric: 简单、无缝、轻量级的 Git 时间跟踪。
  • go-astitodo: 解析 GO 代码中的 todo 事项。
  • go-bind-plugin: 用于包装 golang 插件导出的符号的 go:generation 工具 (仅限 1.8)。
  • go-bsdiff: 纯粹的 Go bsdiffbspatch 库以及 CLI 工具。
  • go-convert: go-convert 使您能够将一个值转换为另一种类型。
  • go-countries: 轻量级的 ISO-3166 代码查询。
  • go-dry: go 语言中 DRY (don't repeat yourself)
  • go-funk: Go 语言工具库,提供了很多有用的工具 (map, find, contains, filter, chunk, reverse, ...)
  • go-health: 简化了你在服务中添加健康检查的方式。
  • go-httpheader: 用于将结构体编码进 http 头的 Go 语言库
  • go-lock: go-lock 是一个实现读写互斥和读写试锁的无饥饿状态的锁库。
  • go-problemdetails: 用于处理问题细节的 Go 包。
  • go-rate: Go 语言版本的限速器
  • go-safe: panic 处理安全沙盒。
  • go-sitemap-generator: XML 网站地图生成器
  • go-trigger: Go 语言全局事件触发器,通过 id 和触发器,在程序的任何地方注册事件
  • goback: Go 语言的简单的指数补偿包
  • goctx: 获取高性能的上下文值。
  • godaemon: 用于编写守护进程的工具
  • godropbox: Dropbox 开发的用于编写 Go 语言服务/应用的库
  • gohper: 能够帮助你进行软件开发的工具和模块
  • golarm: 告警(支持系统事件)库
  • golog: 简单、轻量级的命令后工具,用于对你的计划任务进行跟踪
  • gopencils: Go 语言库,能够很容易的使用各种 REST APIs.
  • goplaceholder: 用于生成占位符图片的小 golang 库。
  • goreadability: 使用 Facebook Open Grapharc90 的可读性提取网页摘要。
  • goreleaser: 尽可能快速的发布 Go 语言二进制文件
  • goreporter: 进行代码静态分析,单元测试,代码检视并生成代码质量报告的工具
  • goseaweedfs: 具有几乎全部功能的 SeaweedFS 客户端库。
  • gostrutils: 字符串操作和转换函数的集合。
  • gotenv: 从 .env 或者任何 io.Reader 中加载环境变量
  • gpath: 用于简化结构体域访问的库
  • gubrak: 带有语法糖的 Golang 工具库。它类似于 lodash, 但适用于 golang
  • handy: 许多实用工具和帮助程序,如字符串处理程序 / 格式化程序和验证器。
  • hostctl: 用简单的命令管理 /etc/hostsCLI 工具。
  • htcat: 并行及流水线的 HTTP GET 工具
  • hub: 封装了 git 命令,提供了额外的功能用于在终端中和 Github 进行交互
  • hystrix-go: 实现 Hystrix 风格的、程序员预定义的 fallback 机制(熔断)
  • immortal: *nix 跨平台 (与操作系统无关的) 监控程序
  • intrinsic: 不需要编写任何汇编代码就能使用 x86 SIMD
  • jsend: JSend 的实现是用 Go 编写的。
  • jump: Jump 通过学习你的习惯来帮助你更快地浏览文件。
  • koazee: 受 Lazy 评估和函数式编程启发而开发的库,它消除了使用数组的麻烦。
  • lets-go: Go 模块,为云原生 REST API 开发提供了常用的实用工具。还包含 AWS 特定的实用程序。
  • limiters: Golang 中分布式应用的速率限制器,具有可配置的后端和分布式锁。
  • lrserver: GoLiveReload 服务器。
  • mc: Minio Client 提供了与 Amazon S3 兼容的云存储和文件系统管理工具。
  • mergo: Golang 中合并结构和地图的助手。对配置默认值很有用,避免了混乱的 if 语句。
  • mimemagic: 纯 go 语言实现的超强的 MIME 嗅探库 / 工具。
  • mimesniffer: GoMIME 类型嗅探器。
  • mimetype: 基于魔数的 MIME 类型检测包。
  • minify: 快速压缩 HTML, CSS, JS, XML, JSON 以及 SVG 文件格式
  • minquery: MongoDB / mgo.v2 查询,支持高效的分页。
  • mmake: 现代 Make 工具
  • moldova: 基于输入目标生成随机数据的工具
  • mole: 用于轻松创建 ssh 隧道的 cli 应用程序。
  • mongo-go-pagination 官方 mongodb/mongo-go-driver 包的 Mongodb Pagination, 支持普通查询和聚合管道。
  • mssqlx: 数据库客户端库,代理任何主从,主主结构。考虑到轻量级和自动平衡。
  • multitick: 多路复用器
  • myhttp: 支持超时的 HTTP GET 请求的简单 API
  • netbug: 轻松地对你的服务进行远程剖析。
  • nfdump: 读取 nfdump netflow 文件。
  • nostromo: 用于构建强大别名的 CLI
  • okrun: golang error 流式处理库
  • olaf: 在 Go 中实现的 Twitter Snowflake
  • onecache: 支持多个后端存储的缓存库(Redis、Memcached、文件系统等)。
  • panicparse: 将类似的 goroutines 分组,并对堆栈转储进行着色。
  • pattern-match: 模式匹配库
  • peco: 简单的交互式过滤工具。
  • pgo: 为 PHP 社区提供方便的功能。
  • pm: 带有 HTTP API 的进程(即 goroutine)管理器。
  • ptr: 提供从基本类型的常量中简化创建指针的函数的包。
  • r: 类似于 Pythonrange()Go
  • rclient: 可读性良好、灵活、易用的 REST APIs 客户端
  • realize: Go 语言构建系统,可以监控文件变化并重新加载。运行,构建,监控文件并支持自定义路径
  • repeat: Go 实现不同的回退策略,对重试操作和心跳有用。
  • request: Go 语言版的 HTTP Requests for Humans™.
  • rerate: Go 的基于 Redis 的速率计数器和速率限制器。
  • rerun: 当源码发生变化时,重新编译和重新运行 go 应用程序。
  • rest-go: 提供许多有用的方法来使用 rest api 的包。
  • retry: 最先进的功能机制,用于重复执行动作直到成功。
  • retry: 简单但高度可配置的 Go 重试包。
  • retry: Go 中简单易行的重试机制包。
  • retry: 确保工作能够完成的 go 语言库。
  • retry-go: 为 golang 提供简单易行的重试。
  • robustly: 弹性地运行函数,捕捉和重启 并自动处理 panic
  • scan: 直接将 golang sql.Rows 扫描为 structs、slicesprimitive 类型。
  • scany: 用于将数据库中的数据扫描成 Go 结构等的库。
  • serve: 静态 http 服务器。
  • shutdown: 用于 os.Signal 处理的应用程序关机钩子。
  • silk: 读取 silk netflow 文件。
  • slice: 用于常见 Go 分片操作的类型安全函数。
  • sliceconv: 原始类型之间的切片转换。
  • slicer: 让分片的工作更容易。
  • sorty: 快速并发 / 并行排序。
  • spinner: Go 语言软件包,提供多种选项,方便在终端中创建加载动画
  • sqlx: 为内建的 database/sql 软件包提供扩展
  • statiks: 快速、零配置、静态的 HTTP 文件服务器。
  • Storm: 用于 BoltDB 的简单又强大的工具
  • structs: 实现简单的函数来操作结构。
  • Task: 简单来讲就是 "Make" 的替代品
  • taskctl: 并发任务运行库。
  • tik: 为 Go 提供简单方便的定时任务调度包。
  • tome: Tome 被设计用来对 RESTful API 进行简单分页。
  • toolbox: slice, map, multimap, 结构体,函数,数据转换工具、服务路由,宏求值和标记器工具
  • ugo: uGo 是一个切片工具箱。
  • UNIS: Go 语言字符串处理函数的通用架构
  • usql: usql 是一个通用的命令行接口,用于操作 sql 数据库
  • util: 收集了很多有用的函数
  • wuzz: 交互式命令行程序,用于进行 HTTP 检查
  • xferspdy: Xferspdy 提供了二进制比对以及 patch 补丁功能

UUID

UUID 生成和操作库

  • goid: 生成并解析符合 RFC4122 标准的 V4 UUID
  • gouid: 只需一次分配就能生成加密安全的随机字符串 ID
  • nanoid: 微型而高效的 Go 唯一字符串 ID 生成器。
  • sno: 内嵌元数据的紧凑、可排序和快速的唯一 ID
  • ulid: ULID (Universally Unique Lexicographically Sortable Identifier)Go 实现。
  • uniq: 使用命令快速、安全的唯一标识符。
  • uuid: 用快速或加密质量的随机节点标识符生成、编码和解码 UUIDs v1
  • uuid: 通用唯一标识符(UUID)的实现。支持 UUID 的创建和解析。
  • uuid: 基于 RFC 4122DCE 1.1UUIDs Go 包。
  • wuid: 极快的唯一数字生成器,比 UUID 快 10-135 倍。

校验库

用于校验的库

  • checkdigit: 提供数字算法(Luhn, Verhoeff, Damm)和数字计算(ISBN, EAN, JAN, UPC 等)功能的库。
  • gody: 针对 ‘Go` 的轻量级结构体验证器。
  • govalid: 基于标签的快速结构体验证。
  • govalidator: 数据验证及清晰工具,用于字符串,数字,数组切片及结构体
  • govalidator: 用简单的规则验证 Golang 请求数据。高度受 Laravel 的请求验证的启发.
  • jio: jio 是一个类似于 joi 的 json 模式验证器.
  • ozzo-validation: 支持多种数据类型的验证 (结构体,字符串,键值对,数组切片等等), 具有可配置、可扩展的验证规则,且使用常用代码结构定义,而非结构体标签
  • terraform-validator: Terraform 的规范和约定验证器。
  • validate: 用于数据验证和过滤的 Go 包,支持验证 Map、Struct、Request(Form、JSON、url.Values、Uploaded Files) 数据和更多的功能。
  • validate: 为 Go 语言程序编写验证工具的框架
  • validator: Go 结构体及域验证,包括:跨域、跨结构体,Map, 切片和数组

版本控制

版本控制相关库

  • gh: 用于 GitHub Webhooks 的可编程服务器以及 net/HTTP 中间件
  • git2go: libgit2Go 语言接口
  • go-git: 纯 Go 中实现高度可扩展的 Git
  • go-vcs: 通过 Go 语言来操作和检视 VCS 代码仓
  • hercules: 查看 git repo 历史的代码库
  • hgo: HGo 是一个 Go 语言软件包集合,提供了对本地 Mercurial 仓库的读取能力.

视频

视频和流媒体相关库

  • gmf: FFmpeg av* 库的 Go 语言接口.
  • go-astisub: 使用 Go 语言操作字幕 (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
  • go-astits: 在 GO 中解析和解调 MPEG 传输流(.ts)。
  • go-m3u8: 苹果 m3u8 播放列表的解析器和生成库。
  • go-mpd: MPEG-DASH 清单文件的解析器和生成器库。
  • goav: 易用的 FFmpegGo 语言接口
  • gst: GStreamer 的 Go 语言接口
  • libgosubs: Go 的字幕格式处理库。支持.srt、.ttml 和.ass`。
  • libvlc-go: libvlc 2.X/3.X/4.X 的 go 语言封装)(VLC 媒体播放器使用)。
  • m3u8: 用于苹果 HLSM3U8 播放列表解析器和生成器库
  • v4l: Go 语言编写的 Linux 下使用的视频截图库

web 框架

web 框架

  • aah: 可扩展、高性能、快速发布的 Go 语言 web 框架
  • Aero: Go 的高性能 Web 框架,在 Lighthouse 评比中拿到最高分
  • Air: 理想的 RESTful web 框架
  • appy: 高效 Web 框架,帮助企业更容易扩展业务。
  • Banjo: 简单、快速的 Go web 框架。
  • Beego: beeGo 是一个开源的、高性能的 Go 语言 web 框架
  • Buffalo: 为 Go 语言带来堪比 Rails 的高生产效率
  • Echo: 高性能、极简的 Go 语言 web 框架
  • Fiber: 受 Express.js 启发的 Web 框架,构建在 Fasthttp 上。
  • Fireball: 更加自然的 web 框架
  • Flamingo: 可插拔的 web 项目框架。包括模块的概念,并提供 DI、Configareas、i18n、模板引擎、graphql、可观察性、安全性、事件、路由和反向路由等功能。
  • Flamingo Commerce: 提供电子商务功能,使用简洁的架构,如 DDD、端口和适配器,你可以用它来构建灵活的电子商务应用。
  • Gearbox: 用 Go 编写的网络框架,专注于高性能和内存优化。
  • Gin: Gin 是一个 Go 语言编写的 web 框架,提供了一组类似 martiniAPI, 且具有更好的性能(40 倍的性能提升)。如果你需要高性能和高生产率,这个框架很适合你
  • Ginrpc: Gin 参数自动绑定工具,Gin rpc 工具。
  • Gizmo: 纽约时报正在使用对微服务工具集
  • go-json-rest: 快速、简单的创建 RESTful JSON API.
  • go-rest: Go 语言 REST 框架
  • goa: 用于开发微服务的框架,基于 RubyPraxis 的设计
  • Golax: 一个非 Sinatra 的快速 HTTP 框架,支持 Google 自定义方法、深度拦截器、递归等。
  • Golf: 快速、简单、轻量级的 Go 语言微型 web 框架。具有强大的功能且没有标准库以外的依赖
  • Gondola: 用于快速编写高性能网站的框架
  • gongular: 快速 Go web 框架,支持输入映射/验证以及依赖注入
  • goweb: 具有路由、websockets、日志、中间件、静态文件服务器(可选 gzip)和自动 TLS 的 Web 框架
  • Goyave: 功能完整的 Web 框架,旨在实现简洁的代码和快速开发,具有强大的内置功能。
  • hiboot: hiboot 是一个高性能的 web 应用框架,支持自动配置和依赖注入。
  • Macaron: Macaron 是一个高效的模块化设计的 web 框架
  • mango: ManGo 是一个模块化 web 应用框架,受到 RackPEP333 的启发
  • Microservice: 用于创建微服务的框架,使用 Go 语言编写
  • neo: 极小且快速的 Go 语言 web 框架,具有及其简单的 API
  • patron: Patron 是一个遵循最佳云实践的微服务框架,专注于生产力。
  • Resoursea: 用于快速编写基于资源的服务的 REST 框架。
  • REST Layer: 在数据库之上构建 REST/GraphQL API 的框架,主要是通过配置而不是代码来进行开发
  • Revel: go 语言高生产率框架
  • rex: Rex 是一个用于进行模块化开发的库,基于 Gorilla/mux 完全兼容大多数的 net/HTTP
  • rux: 用于构建 golang HTTP 应用程序的简单、快速的 web 框架。
  • tango: 微型的、支持插件的 web 框架
  • tigertonic: 受到 Dropwizard 启发,用于构建 JSON web 服务的 Go 语言框架,
  • uAdmin: 受 Django 启发的 Golangweb 框架,。
  • utron: 轻量级的 go 语言 MVC 框架
  • vox: Golang 网络框架,灵感来自 Koa
  • WebGo: 构建 Web 应用的微服务框架;具有处理程序链、中间件和上下文注入功能。具有标准库兼容的 HTTP 处理程序(即 http.HandlerFunc)。
  • YARF: 微服务框架,用于快速、简单地构建 REST APIs 以及 web 服务

中间件

中间件

  • client-timing: 在消息头部添加服务器定时信息的 HTTP 客户端。
  • CORS: 非常方便地向你的 api 中添加 CORS 功能
  • formjson: 以标准的表单 POST 方式处理 JSON 输入。
  • go-fault: Go 的错误注入中间件。
  • go-server-timing: 向头信息中 添加 / 解析服务器计时信息。
  • Limiter: 超级简单的限速中间件
  • ln-paywall: Go 中间件,用于通过 Lightning Network (Bitcoin) 请求将 API 货币化。
  • Tollbooth: HTTP 请求限速中间件
  • XFF: 理 X-Forwarded-For 头的中间件

创建 http 中间件的代码库

  • alice: 创建链式中间件的库
  • catena: HTTP.Handler 封装器 (和 chain 具有相同的 API).
  • chain: 可以带数据的 Handler 链式封装器 (net/context-based "middleware").
  • go-wrap: 小型中间件库,用于 net/HTTP.
  • gores: 用于处理 HTML, JSON, XML 等。对于 RESTful APIs 很有用。
  • interpose: 极简的 net/HTTP 中间件
  • mediary: 为 http.Client 添加拦截器,允许转储 / 重构 / 跟踪 /… 请求 / 响应。
  • muxchain: 用于 net/HTTP 的轻量级中间件
  • negroni: 符合语言习惯的 HTTP 中间件库
  • render: 用于轻松渲染 JSON, XML, 及 HTML 模板响应的库
  • renderer: 简单、轻量级和更快的响应 JSON、JSONP、XML、YAML、HTML、File 的 Go 渲染包。
  • rye: 小型 Go 语言中间件库,支持 JWT, CORS, Statsd, 及 Go 1.7 context
  • stats: Go 语言中间件,用于存储 web 应用的多种信息

路由

  • alien: 轻量级、超快速的 HTTP 路由,
  • bellt: 一个简单的 Go HTTP 路由器。
  • Bone: 轻量、快速的 HTTP 多路复用器
  • Bxog: 为 go 语言编写的简单、快速的 HTTP 路由。它能够根据接收到的参数创建 URL, 并且能够解析多种不同复杂度、长度和嵌套的路由。
  • chi: 基于 net/context 的小巧、快速、具有丰富表达力的 HTTP 路由.
  • fasthttprouter: 从 httprouter 分叉出来的高性能路由器,也是第一个适合 fasthttp 的路由器。
  • FastRouter: 从 httprouterfork 出来的高性能路由,是第一个适配 fasthttp 的路由
  • gocraft/web: Mux 及中间件包
  • Goji: Goji 是一个极简的、灵活的 HTTP 请求数据分选器,支持 net/context.
  • goroute: 简单而强大的 HTTP 请求复用器。
  • GoRouter: server/API 微服务框架,具有 HTTP 请求路由模块 router 模块,多路复用模块并且提供了支持 net/context 的中间件 :
  • gowww/router: 超快的 HTTP 路由,完全兼容 net/HTTP.Handler 接口.
  • httprouter: 高性能路由,使用这个库和标准 http 处理工具可以构建一个非常高性能大 web 框架
  • httptreemux: 快速,灵活,树状结构的 HTTP 路由。受到了 httprouter 的启发
  • lars: 轻量级、快速、可扩展、零分配的 HTTP 路由,用于创建定制化的框架
  • mux: 强大的 URL 路由和分发库
  • ozzo-routing: 极快的 Go (golang) HTTP 路由器,支持正则表达式路由匹配。完全支持构建 RESTful API
  • pure: 是一个轻量级 http 路由,严格参照 net/HTTP 标准实现
  • Siesta: 具有可组合性的框架,用于编写中间件和 handlers
  • vestigo: 用于构建 go 语言 web 应用,高性能、符合 HTTP 标准的 URL 路由,
  • violetear: Go http 路由库
  • xmux: 高性能 muxer, 基于 httprouter, 支持 net/context
  • xujiajun/gorouter: 简单快速的 go HTTP 路由器。

WebAssembly

  • dom: DOM库
  • go-canvas: 使用 HTML5 Canvas 的库,所有的绘图逻辑都在 go 代码中执行。
  • tinygo: 基于 LLVM, 适用于微型场景的 Go 编译器。包括微控制器、WebAssembly 和命令行工具。
  • vert: GoJS 值之间的互操作。
  • wasmbrowsertest: 在浏览器中运行 Go WASM 测试。
  • webapi: 从 WebIDL 生成 DOMHTML 的封装。

Windows

  • d3d9: Direct3D9Go 语言封装
  • go-ole: 为 Go 语言实现的 Win32 OLE
  • gosddl: 从 SDDL-string 到用户友好的 JSON 的转换器。SDDL 由四个部分组成。Owner、Primary Group、DACL、SACL

XML

  • XML-Comp: 命令行 XML 比较工具,可以生成关于目录、文件和标签对差异信息
  • xml2map: Golang 编写的 XMLMAP 的转换器。
  • xmlwriter: 基于 libxml2xmlwriter 模块的 xml 生成器 api.
  • xpath: XPath
  • xquery: XQuery 使你可以使用 XPath 表达式从 HTML/XML 文档中抽取数据和求值,
  • zek: 从 XML 生成一个 Go 结构体。

相关工具

go相关工具和插件

代码分析

  • apicompat: 检测 go 语言项目最近的变化,用于监测不能向后兼容的代码修改
  • dupl: 用于检测重复代码的工具
  • errcheck: Errcheck 是一个用于检测 go 语言程序中存在未处理错误的程序
  • gcvis: 实时地将 Go 语言垃圾回收进行可视化
  • go-checkstyle: checkstyle 是一个类似 java checkstyle 的 代码风格检查工具,这个工具受到 java checkstyleGolint 的启发
  • go-cleanarch: Go-cleanarch 用于检查代码是否符合简洁架构的相关法则,比如依赖法则以及你的 Go 语言项目中各个库的交互情况
  • go-critic: 源代码检查器,它带来了目前其他检查器没有实现的检查。
  • go-mod-outdated: 一种查找 Go 项目中过时的依赖关系的简单方法。
  • go-outdated: 用于显示过时的库的命令行工具
  • goast-viewer: 基于 WebGolang AST 可视化工具.
  • GoCover.io: GoCover.io 可以查看任何 go 语言软件包的代码覆盖率
  • goimports: 用于自动修复,添加,删除你的 Go 语言项目的 import
  • golines: 自动缩短 Go 代码中长行的格式化器。
  • GoLint: 针对 Go 语言源码的 lint 工具
  • Golint online: 使用 golintGitHub, Bitbucket 以及 Google Project Hosting 上面的 Go 语言源文件进行静态分析
  • GoPlantUML: 生成文本 plantUML 图的库和 CLI, 包含结构和接口的信息以及它们之间的关系。
  • goreturns: 添加零值 return 语句以符合函数返回值类型
  • gosimple: 针对 Go 语言的 lint 工具,专注于简化代码
  • gostatus: 命令行工具,查看当前 Go 语言软件包仓库的状态
  • lint: 运行 linters 作为 Go 测试的一部分。
  • php-parser: Go 编写的 PHP 解析器。
  • staticcheck: -staticcheckGo vet 阶段中执行大量的静态分析检查,类似 ReSharper for C#这样的工具。
  • tarp: tarp 可以在 Go 源代码中找到无需直接单元测试的函数和方法
  • tickgit: 用于显示代码注释 TODO(任何语言)的 CLI 和 go 包,并应用 git blam 来识别作者
  • unconvert: 从 go 语言代码中移除不必要的类型转换
  • unused: unused 会检查 Go 语言代码中没有用到的常量,变量,函数和类型
  • validate: 根据结构体 tag 自动验证结构体字段

编辑器插件

  • Go plugin for JetBrains IDEs: JetBrains IDEs 使用的 Go 语言插件
  • go-language-server: 用于将 VSCode go 扩展变为支持语言服务器协议的 GO 代码封装库
  • go-mode: GNU/EmacsGo 语言模式
  • go-plus: 供 Atom 使用的自动补全、格式化、语法检查、lintVetting 的软件包
  • gocode: go 语言自动补全
  • goimports-reviser: 用于导入的格式化工具。
  • goprofiling: 这个扩展为 VS Code 增加了对 Go 语言的基准分析支持。
  • GoSublime: SublimeText 2 使用的 Go 语言插件,支持代码补全以及一些类似 IDE 的特性
  • gounit-vim: Vim 插件,用于根据函数或方法的签名生成 Go 测试。
  • theia-go-extension: 为 Theia IDE 提供 Go 语言支持。
  • vim-compiler-go: Vim 插件,在保存时高亮语法错误
  • vim-go: Vim 使用的 Go 语言开发插件
  • vscode-go: Visual Studio Code (VS Code): 使用的一个扩展,为 Go 语言提供了支持
  • Watch: 当文件变动时,在 acme 窗口中执行命令

Go 代码生成工具

  • generic: 针对 Go 的灵活数据类型。
  • genny: 为 Go 提供优雅的泛型。
  • gocontracts: 通过同步代码和文档,将按合约设计引入 Go
  • gonerics: Go 泛型。
  • gotests: 根据源代码生成 Go 测试代码。
  • gounit: 使用你自己的模板生成 Go 测试代码。
  • hasgo: 为 slices 生成 Haskell 的启发函数。
  • re2dfa: 将正则表达式转换为有限状态机并输出 Go 源代码。
  • TOML-to-Go: 在浏览器中将 TOML 转成 Go 类型。
  • xgen: XSD (XML Schema Definition) 解析器,能够生成 Go/C/Java/Rust/Typescript 代码

Go 工具

  • colorgo: 对 Go 命令进行了封装,用于为 Go build 的输出结果添加颜色
  • depth: 通过分析导入的库,将某个包的依赖关系用树状结构进行显示
  • gb: 针对 Go 语言的项目的构建工具,
  • generator-go-lang: 生成 Yeoman: 新项目的生成器 。
  • gilbert: Go 项目的构建系统和任务运行器。
  • go-callvis: 使用 dot 语言将你的 Go 语言程序函数调用关系可视化
  • go-james: Go 项目骨架创建服务,无需手动设置即可构建和测试你的项目。
  • go-pkg-complete: Bash 代码补全,用于 GowGo.
  • go-swagger: 为 Go 语言实现的 Swagger 2.0.
  • godbg: Rusts dbg!宏的实现,用于在开发过程中进行快速和简单的调试。
  • gomodrun: 用于执行和缓存包含在 go.mod 文件中的二进制文件的 Go 工具。
  • gothanks: GoThanks 会自动为你的 go.mod github 依赖项加星。
  • igo: igogo 的转换器(Go 语言的新语言特性!)。
  • OctoLinker: - 使用 github 的浏览器插件 OctoLinker 高效浏览 Go 语言文件
  • richgo: 用文本装饰丰富 go 代码测试输出。
  • rts: RTS(是 response to struct 的缩写)用于根据服务器的响应生成 Go 语言结构体
  • typex: 检查 Go 类型和它们的转换依赖关系,或者将结果导出为 TypeScript 值对象(或类型)声明。

软件包

Go语言开发的软件工具

devops 工具

  • aptly: aptly 是一个 Debian 库管理工具
  • aurora: 跨平台、基于 web 的 Beanstalkd 队列服务器控制台
  • awsenv: 加载 Amazon (AWS) 环境变量作为 profile 文件
  • Blast: 一个简单的 API 负载测试和批量作业管理的工具。
  • bombardier: 快速的、跨平台的 HTTP 基准工具.
  • bosun: 基于时间序列的告警框架
  • cassowary: 用 Go 编写的现代跨平台 HTTP 负载测试工具。
  • DepCharge: 帮助管理大型项目中众多依赖关系的命令。
  • Dockerfile-Generator: 包含 go 代码库和可执行文件,其可以利用各种输入管道信息生成有效的 Dockerfiles。
  • dogo: 监控源文件中的变化并自动编译和执行
  • drone-jenkins: 可以通过二进制文件、docker 或者 Drone CI 来触发下游 Jenkins 任务,
  • drone-scp: 通过 SSH 拷贝文件及可执行程序,可以通过二进制文件、docker 或者 Drone CI 来使用
  • Dropship: 通过 cdn 部署代码的工具
  • easyssh-proxy: 一个用于通过 ssh 远程执行命令以及可通过 ProxyCommand 来进行 SCP 下载
  • fac: 用于修复 git 合并冲突的命令行用户界面。
  • gaia: 利用任何编程语言都可以构建强大的管道的库。
  • Gitea: 社区驱动的 Gogsfork
  • gitea-github-migrator: 将所有的 `GitHub 仓库、问题、里程碑和标签迁移到 Gitea 实例中。
  • go-furnace: 用 Go 编写的托管解决方案。在 AWS、GCPDigitalOcean 上轻松部署你的应用程序。
  • go-selfupdate: 让你的 Go 语言程序可以自我更新
  • gobrew: Gobrew 让你可以在不同版本的 Go 语言之间轻松切换
  • godbg: 基于 Web 的前端 gdb 应用程序
  • Gogs: 自我托管的 Git 服务
  • gonative: 为 Go 语言创建可以在多平台进行交叉编译的工具,使用 CGo-enabled 标准库
  • govvv: 对 Go build 进行了封装,用于轻松的向 Go 语言二进制文件中添加版本信息
  • gox: 非常简单的 Go 语言交叉编译工具
  • goxc: Go 语言构建工具,专注于交叉编译和打包
  • grapes: 一款轻量级工具,用于通过 ssh 发送命令
  • GVM: GVM 提供了用于管理 Go 语言版本的接口
  • Hey: Hey 是一个微型程序,用于向 web 应用发送负载
  • jcli: Jenkins CLI 允许你以一种简单的方式管理你的 Jenkins
  • kala: 极简、现代的、高效的任务调度
  • kcli: 用于检查 kafka 主题 / 分区 / 消息的命令行工具。
  • kubernetes: 来自 Google 的容器集群管理器
  • lstags: 在不同的注册表中同步 Docker 镜像的工具和 API
  • lwc: UNIX wc 命令的实时更新版本。
  • manssh: manssh 是一个命令行工具,用于轻松管理 ssh 别名配置。
  • Moby: 为容器生态系统创建的一个合作项目,用于构建基于容器的系统
  • Mora: REST 服务器,用于获取 MonGoDB 文件和元数据
  • ostent: 收集并显示系统数据,可以作 Graphite 和/或 InfluxDB 的中间件
  • Packer: Packer 通过单一的配置文件,为不同的平台创建独立镜像
  • Pewpew: 灵活的 HTTP 命令行压力测试工具
  • Pomerium: Pomerium 是一个身份感知的访问代理。
  • Rodent: Rodent 帮助你管理 Go 语言版本、项目、和追踪依赖
  • s3-proxy: S3 代理,具有 GET、PUTDELETE 方法和认证(OpenID ConnectBasic Auth)。
  • s3gof3r: 为了从 Amazon S3 中高速存取大型对象而特别优化的库
  • s5cmd: 快速的 S3 和本地文件系统执行工具。
  • Scaleway-cli: 通过命令行来管理 裸金属服务器 (和使用 Docker 一样容易)。
  • script: 在 Go 中轻松编写类似 shell 的脚本,用于 DevOps 和系统管理任务。
  • sg: 对一组 HTTP 钩子(如 ab)进行基准测试,可以使用每次调用之间的响应代码和数据,根据其之前的响应来确定特定的服务器压力。
  • skm: SKM 是一个简单而强大的 SSH 密钥管理器,它可以帮助您轻松管理您的多个 SSH 密钥。
  • StatusOK: 监控你的网站和 REST APIs。如果你的服务器挂了或是响应时间超过预期,则会通过 Slack,E-mail 来通知你
  • terraform-provider-openapi: Terraform provider 插件,可以在运行时根据包含 API 定义的 OpenAPI 文档(以前称为 swagger 文件)动态配置自己。
  • traefik: 能对接多个后端的反向代理和负载均衡器。
  • trubka: CLI 工具,用于管理 Apache Kafka 集群并排除其故障,能够向 Kafka 发布 / 消费协议缓冲区和纯文本事件。
  • uTask: 自动化引擎,可对 yaml 中声明的业务流程进行建模和执行。
  • Vegeta: HTTP 加载测试工具和代码库
  • webhook: 允许用户创建 HTTP 钩子,并在服务器上执行命令
  • Wide: 基于 WebIDE, 为使用 Go 语言的团队设计
  • winrm-cli: 命令行工具,可以远程在 windows 机器上执行命令

其他软件库和软件包

  • Better Go Playground: 具有语法高亮、代码补全等功能的 playground
  • borg: 基于终端的搜索引擎,用于搜索 bash 代码片段
  • boxed: 基于 Dropbox 的博客引擎
  • Cherry: Go 语言实现的一个微型网络聊天服务器
  • Circuit: Circuit 是一个可编程的 PaaS 以及 IaaS, 用于管理、发现以及编排各种云端应用的服务及主机
  • Comcast: 模拟网络波动情况下的网络数据连接
  • confd: 使用 etcdconsul 来管理本地应用的配置文件
  • croc: 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机。
  • Docker: 一个为开发者和系统管理员提供的针对分布式应用的开源平台
  • Documize: 维基软件,可以使用 SaaS 工具提供的数据
  • dp: 与区块链进行数据交换的 SDK, 开发者可以轻松进行 DAPP 的开发。
  • drive: 命令行版本的 Google Drive 客户端。
  • Duplicacy: 跨平台网络和云备份工具
  • Gebug: - 一个通过启用 Debugger 和热加载功能,让 Docker 容器化后的 Go 应用调试变得超级简单。
  • gfile: 无需任何第三方工具通过 WebRTC 在两台电脑之间安全传输文件。
  • Go Package Store: 一个可以显示你的 GoPATH 路径下 Go 软件包的应用
  • go-peerflix: 视频流下载客户端。
  • GoBoy: 用 Go 编写的任天堂游戏机颜色模拟器。
  • gocc: Go 语言编写的 Go 语言编译器工具集
  • GoDocTooltip: 用来显示 go 语言文档的 chrome 浏览器插件
  • GoLand: 跨平台、全功能 Go 语言集成开发环境
  • Gor: Http 流量复制工具,用于将生产环境的流量在开发环境进行重放
  • Guora: 一个用 Go 编写的类似于 Quora 的问答网络应用。
  • hugo: - 快速、现代的静态 web 引擎
  • ide: 为 Go 语言设计可以在浏览器的 IDE
  • ipe: Go 语言编写的开源 Pusher 服务器,兼容 Pusher 客户端。
  • joincap: 用于合并多个 pcap 文件的命令行工具。
  • Juju: 服务部署及编排工具,,支持 EC2,Azure,Openstack,MAAS 等等
  • Leaps: 结对编程服务,使用操作变换来避免冲突。
  • lgo: 使用 Jupyter 进行交互式编程。它支持代码补全、代码检查,100% 兼容 Go
  • limetext: Lime Text 是一个强大又优雅的编辑器,主要使用 Go 语言开发,意在成为 Sublime Text 的继承者。
  • LiteIDE: LiteIDE 是一个简单、开源、跨平台的 Go 语言 IDE
  • mockingjay: 伪 HTTP 服务器,通过单一配置文件构造访问请求。同时你还可以让服务器提升负载,以进行更加符合现实情况的性能测试
  • myLG: Go 语言编写的命令行网络诊断工具
  • naclpipe: 简单的基于 NaCL EC25519 的加密管道工具
  • nes: Go 语言编写的任天堂 (NES) 模拟器
  • orange-cat: Go 语言编写的 Markdown 预览工具
  • Orbit: 运行命令和从模板生成文件的简单工具。
  • peg: Peg(Parsing Expression Grammar)是一个 Packrat parser generator 的实现
  • restic: 解耦备份程序
  • scc: 一个非常快速准确的代码计数器,具有复杂度计算和 COCOMO 估计功能。
  • Seaweed File System: 快速、简单、可扩展的分布式文件系统,具有 O(1) 的磁盘查找效率
  • shell2http: 通过 HTTP 服务器执行 shell 命令行 (用于原型验证或远程控制)。
  • snap: 强大的遥测框架
  • Snitch: 当通过 Tsuru 部署应用程序时,可以简单快速的通知团队的工具
  • Stack Up: Stack Up 是一个超级简单的开发工具,就好比是服务器网络的 make 工具
  • syncthing: 开源、去中心化的文件同步工具和协议
  • tcpprobe: -TCP 工具,用于网络性能和路径监控,包括套接字统计等。
  • term-quiz: 终端测试库。
  • toxiproxy: 用于自动化测试中模拟网络和系统状态的代理服务。
  • tsuru: 可扩展的、开源的 SAAS 软件
  • vaku: 为 Vault 中基于文件夹的功能如复制、移动和搜索提供 CLIAPI
  • vFlow: 高性能、可扩展、可靠的 IPFIX,sFlowNetflow 集合.
  • wellington: Sass 项目管理工具,通过支持一些功能(例如 Compass)扩展了这门语言
  • woke: 检测源代码中的排他性代码段。

Go 资源列表
https://blog.lllllan.cn/go/awesome/
作者
lllllan
发布于
2024年7月12日
许可协议