Awesome Go

此项目是 awesome-go 中文版,最后一次同步时间 : 2019-07-26 19:57:20(每隔1天同步一次)

为Awesome Go打赏~

精选了一系列很棒的Go框架、库和软件。灵感来自于awesome-python。

小图标说明 :

小图标 说明
star数量 > 5000 的项目
star数量 > 1000 的项目
star数量 > 100 的项目
最近一周有更新。可以基本判断当前库处于积极维护状态。
最近一年没有更新。反应了此库的维护积极性不高,使用时需谨慎。
此项目有中文文档。

贡献

你可以快速浏览贡献者名单contribution guidelines. 感觉所有为此项目付出的同学contributors; 你真棒!

如果您在看到一个包或项目不再维护或不适合,请往awesome-go提交Pull Request,本项目每隔一天与英文文档同步。感谢!

内容

音频和音乐

用于操作音频的库。

name star desc tag   
22 EasyMidi是一个简单可靠的库,用于处理标准midi文件(SMF)。
83 原生 Go FLAC解码器,将FLAC文件解码为字节片。
101 原生 Go FLAC编码器/解码器,支持FLAC流。
57 原生 Go AAC位流解析器。
93 libsox 的 Go 语言实现接口。
24 libmediainfo 的 Go 语言实现接口。
8 libsamplerate 的 Go 语言实现接口。
108 快速稳定的 ID3 解析及写入Go库。
70 迷你音频库。
25 轻量级MP3解码器库。
98 基于序列的 Go 原生音乐混音器。
89 原生 Go MP3解码器。
253 基于 Go 的音乐理论模型。
427 多平台的 low-level 声音播放库。
299 基于 Go 的PortAudio audio I/O库。
205 PortMidi的 Go 语言实现接口。。
66 taglib 的 Go 语言实现接口。。
22 “原生” Go Vorbis解码器(使用CGO,但没有依赖关系)。
248 通过音频流生成波形图像的包。

身份验证和OAuth

用于实现验证方案的库。

name star desc tag   
1917 web模块化认证系统。它试图删除尽可能多的模板文件和硬编码,以便每次新建一个新的web项目时,您都可以插入、配置并开始构建您的应用程序,而不必每次都构建一个身份验证系统。
76 基于 Go 实现Branca令牌。
4861 支持ACL、RBAC、ABAC等访问控制模型的授权库。
2 提供cookie .txt文件格式的解析器。
1117 相当完整地实现了JOSE工作组的JSON Web令牌、JSON Web签名和JSON Web加密规范。
1270 用 Golang 编写的独立且符合规范的OAuth2服务器。
1037 用于使用OAuth1和OAuth2身份验证提供者登录的可链处理程序。
903 轻量级的基于角色的访问控制(RBAC)实现。
2251 提供了 OAuth 和 OAuth2 的简单清晰易用的方法。可开箱即用处理多个提供程序。
178 HTTP身份验证中间件。
68 简单易用的JSON Web令牌实现(JWT)。
86 轻量级JSON Web令牌库。
151 JWT中间件,可用于Golang http服务器,提供了许多配置选项。
5888 JSON Web令牌(JWT)。
807 JWT登录微服务带有可插拔的后端服务,如OAuth2 (Github)、htpasswd、osiam。
2367 goauth2的继任者。通用OAuth 2.0包,附带JWT、谷歌api、计算引擎和应用程序引擎支持。
1536 OAuth2服务器库。
237 平台无关的安全令牌(PASETO)。
351 用于跟踪用户、登录状态和权限的库。依赖于cookie安全和bcrypt。
27 最小的RBAC包。
522 HTTP服务器的会话管理器。
32 高效安全的cookie编码/解码。
88 web服务器会话管理(包括支持谷歌应用程序引擎 - GAE)。
8 使用SessionGate Redis模块进行会话管理。
46 非常简单,高性能,可深度定制的会话服务,主要用于的 go http 服务器。
7 与Tornado's 完全兼容的签名和时间戳字符串实现. create_signed_value ', ' decode_signed_value ',因此' set_secure_cookie '和' get_secure_cookie '。
31 简单的jwt生成器和解析器。

Bot建设

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

name star desc tag   
466 用 Go 编写的IRC, Slack和电报机器人。
136 此框架提供了聊天机器人相关的服务,包括LINE、Slack、Gitter等。
85 由swagger文件、基于会话的路由器和中间件生成的纯Golang Telegram Bot API包装器。
215 基于控制台的,用于加密货币交易所的的交易机器人。
24 简单的Go VK bot库。
108 用于编写Slack机器人的框架。
156 官方交易和做市机器人为Stellar DEX。开箱即用的作品,用 Golang 编写,兼容集中交易和定制交易策略。
56 构建电报机器人的框架。
10 基于 GO 实现的Telegram 机器人API库。
304 可简单创建Slack机器人的框架。
10 另一个构建Slack机器人的框架。
216 带有类似于net/http API的Telegram bot服务器。
942 用Go编写的Telegram bot框架。
1609 简单轻量级的Telegram bot客户端。
167 面向服务的IRC bot,使用Redis和JSON进行消息传递。

命令行

标准CLI

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

name star desc tag   
104 命令行参数分析器,灵感来自Python的argparse模块。
17 基于Base 语法,用于分隔命令行字符串并将其作为参数的 Go 语言库,
473 基于golang结构标签,功能丰富易于使用的命令行包。
57 为 Go 构建命令接口提供简单而完整的API。
868 一个简单就可开启构建Golang命令行的应用程序。
- Alternative CLI with "human face", in spirit of Go command.
11 一个POSIX/GNU风格的、类似getopt的命令行UI Go库。
13107 现代Go CLI命令行交互工具。
87 开发友好的CLI应用程序。
610 使用 Go 语言编写的 bash 命令补全工具以及 Go 命令补全工具.
1171 会让你满意的命令行参数解析器。
41 基于标记的结构化的环境配置。
100 简单但功能强大的命令行选项解析库,用于支持Go子命令。
446 一个健壮的、易用的标志包,具有出色的子命令支持。
31 符合 Go 标准的“flag”标志参数类型包。
653 基于结构的参数解析。
15 用于简化CLI工作流的 Go 库。
1501 Go 命令行选项解析器。
7 Go 选择解析器,借鉴于Perl灵活性的GetOpt::Long。
33 用于构建命令行应用程序。
- 具有自动配置和依赖注入的cli应用程序框架。
49 工作,把你的短期指令当作长期任务。
2522 支持子命令的命令行和标志解析器。
580 类似readline-like的命令行接口库。
994 用于实现命令行接口的Go库。
620 用于构建具有复杂标志和参数解析和验证的CLI应用程序。
259 Unikernel 构建器/协调器。
747 基于POSIX/GNU-style --flags实现的包,主要用于替换Go的falg包。
1362 纯golang实现,在MIT许可下提供了GNU-Readline的大部分特性。
5 用于创建解释器等的简单API。
87 基于结构的flag生成器,用于flag、urfave/cli、pflag、cobra、kingpin和其他库。
27 用于创建提示链。
4 时间戳转换和比较工具。
97 简小的命令行接口框架。
11272 可让你简单、快速和愉快的构建命令行应用(之前是codegangsta/cli)。
35 支持跨平台和并发的简单日志记录接口。
84 为cli程序提供了简单上手的菜单,可提示用户作出选择。

高级控制台用户界面

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

name star desc tag   
1131 在命令行中构建轻量级ASCII线图╭┈╯,应用程序中没有其他依赖项。
621 支持fmt.Printf/Sprintf的ANSI终端颜色。
67 提供上下文的fmt,灵感来自于bootstrap color classes。
304 美化终端/控制台输出。
3004 多功能包装,彩色终端输出。
16 在终端提供ANSI彩色文本。
9 不需要Print方法的非侵入性跨平台终端颜色库。
8 在终端提供ANSI彩色文本模板。
373 适用于windows的颜色编写器。
197 在终端中使用彩色文字。
343 Go 实现的 isatty。
2305 构建一个强大的交互式提示,借鉴于python-prompt-toolkit
5285 旨在创建控制台用户界面的极简Go库。
- 更换终端文本样式。
199 终端显色工具库,支持16种颜色,256种颜色,RGB显色输出,兼容Windows。
602 可在终端显示多进度条。
564 基本线程安全的进度条,在每个操作系统工作。
156 可在终端显示简易表格。
246 一个可在终端生成一个极简Golang表格轻量级库
29 不需要向API传递大量参数就可从命令行实用程序中打印ASCII表。
3462 基于文本的跨平台接口库。
803 此库是基于termbox-go实现的,借鉴于termui。
212 使用Ruby库terminal-tables的端口生成简单的ASCII表,并提供标记和HTML输出。
8877 此库是基于termbox-go实现的,借鉴于blessed-contrib。
827 用于实时更新终端输出的库。
1532 在终端呈现进度条,可灵活配置的。
498 改善终端应用程序中表格数据的可读性。

配置

配置解析的库。

name star desc tag   
188 云本地应用程序配置。将ENV绑定到结构体仅需两行代码。
210 带有环境变量和标记解析的JSON或YAML配置包装器。
48 通过多个源提供配置,包括JSON、flags和环境变量。
235 从多个后端级联加载配置到struct中。
8 合并来自任意url的多个JSON/YAML/TOML文件、针对JSON模式的验证以及模式中定义的默认值的应用程序。
855 解析环境变量并赋值到struct中(默认值)。
89 对环境变量进行解析,并赋值到struct。
7 从环境配置中读取配置。
145 从环境变量中读取配置。
92 协助管理环境变量的Helpers。
116 将ini的配置文件读入 Go structs中;支持用户定义的类型和子选项。
24 一个简单的配置库,具有递归占位符解析功能。
107 将结构体解析为输入,并用来自命令行、环境变量和配置文件的参数填充该结构体的字段。
2099 Ruby 的 dotenv 库的 Go移植版(从.env文件加载环境变量)。
57 让程序配置变得简单。
- 模块化的JSON配置。保持配置结构及其配置的代码,并将解析委托给子模块,而不牺牲配置的完整序列化。
76 程序配置管理(load,get,set)。支持JSON, YAML, TOML, INI, HCL。支持多文件加载,数据覆盖合并。
39 一个易于使用的静态和动态配置包
171 更加人性化的JSON配置。轻松的语法,更少的错误,更多的注释。
24 flag保存在类ini的配置文件中。
1578 读和写INI文件。
193 一个可解析环境变量、JSON文件小巧的配置库,在SIGHUP时会自动重新加载。
2391 管理来自环境变量的配置数据。
81 轻量级可扩展库,用于读取Go应用程序中的配置。内置支持JSON, TOML, YAML, env,命令行。
512 可组合、可观察和高性能的分布式配置管理。
19 用于解析ini类型的配置文件。
3 支持构建环境的工具箱工厂和其他不确定的配置解析器(如YAML、TOML、JSON和环境vars)。
241 轻量级配置管理器。
9211 配置管理。
34 遵循XDG标准的跨平台包。

持续集成

用于帮助进行持续集成的工具。

name star desc tag   
18898 Drone 是一个基于 Docker 的持续集成平台,用 Go 编写。
44 一个简单的 ci 服务。
29 在一个干净的工作区中对你的 Go 二进制文件进行测试、构建、签名和发布。
575 Coveralls.io 是一个用 Go 编写,可持续对代码覆盖率进行检测的系统。
98 针对多package 的 Go 语言项目,可为类似 goveralls 这样的工具生成覆盖率报告。
12 递归覆盖测试工具。

CSS预处理器

用于预处理CSS文件的库。

name star desc tag   
423 纯Go编写的 CSS 预处理器。
130 采用 Go封装,100% 与 Sass 兼容的 libsass 项目。

数据结构

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

name star desc tag   
237 算法和数据结构。来源于CLRS。
123 帮助用户构建自定义二进制流的二进制封装器和解包器
55 Go 语言集合数据结构。提供了额外的位操作功能。
479 实现了 bitsets 的 Go 包。
128 在Go中实现了Bloom过滤器。
39 Golang Bloom过滤器的实现。
1131 用于处理连续的概率数据结构。
23 具备高并发能力,可替换 bufio.Writer。
76 一个小型、强大和灵活的合并库。
43 Go实现Count-Min-log sketch的功能 : 使用近似计数器进行近似计数(类似Count-Min sketch,但使用更少内存)。
19 打包实现缓冲区,以便轻松处理各种数据类型。
509 布谷鸟过滤器:一个用Go实现,可替代计数 bloom 过滤器。
6 高度优化的双端队列。
62 快速环缓冲区deque(双端队列)。
9 实现类似 python dict的功能(dict)。
94 整形压缩库。
87 自适应基数树。
5106 可靠的、高性能的和线程安全的数据结构的集合。
11 实现了 Elias-Fano 编码。
310 基于内存的地理索引。
34 基于内存的实现了高性能的key:value存储库。指针缓存。
99 区域四叉树具有高效的点定位和邻域查找功能。
26 并行FIFO队列。
6229 数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet等。
1149 线程安全和非线程安全的高性能集。
16 一个有用的Go集合实现。
192 基于 Go 的跳表实现。
867 实现了数据帧,序列以及数据噪音。
7 ID type with marshalling to/from hash to prevent sending IDs to clients.
180 用于映射空间填充曲线(例如 Hilbert 曲线和 Peano 曲线)和数值。
660 HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
32 Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.
55 实现在Go中计算levenshtein距离。
273 实现了 MA-FSA ,包含最小完美哈希。
145 实现了merkle树,提供了对数据结构内容的有效和安全的验证。
7 用于信息检索的多字符串模式匹配算法。
5 对空的 Go 数据类型也可以进行JSON进行解析/反解析。
3 用于解析类似json的日志的工具,用于收集惟一的字段和事件。
15 实现了 fan-in 和 fan-out 的管道功能。
- 前缀树的一种实现。
86 高性能、线程安全的bloom过滤器。
649 实现了压缩 bitsets 的Go包。
6 使用LinkedHashMap在Go中实现简单的set数据结构。
99 高性能的 Go 跳表实现。
64 在Go中实现了跳表。
1 实现了有生命周期的键值对Map。
7 使用树堆进行持久、快速有序的映射。
418 在Go中实现Trie。
95 基于内存的LRU算法实现。
9 从复杂结构中获取值,支持空类型、安全的类型转换。
662 实现Bloom过滤器。

数据库

数据库。

name star desc tag   
6222 快速 K/V 存储。
27 基于内存的最终一致的分布式缓存。
2430 高效的键/值缓存为千兆字节的数据。
9938 K/V 数据库。
2430 基于内存的K/V,快速,可嵌入的数据库,可自定义索引和空间支持。
13 基于内存的 K/V 存储:带生命周期的值存储,0个依赖项,<100 LoC, 100%覆盖率。
1005 基于内存的 K/V 缓存,支持超时的自动失效。
29 BigCache 支持集群和独立且生命周期存储项。
16718 可伸缩、区域备份、事务性数据存储。
40 由 Couchbase服务 支持的RESTful缓存微服务。
869 区块链领域的一个SQL数据库。
10090 可伸缩、分布式、低延迟、高吞吐量的图形数据库。
745 支持磁盘备份的可持久化 K/V 存储。
532 无其他依赖项,支持REST API,短语搜索和sql类似的查询语言的事务图数据库。
480 基于内存的快速线程安全的缓存,可缓存大量的条目。最大限度地减少GC开销。
888 支持过期缓存、LFU、LRU和ARC的缓存库。
2864 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序。
3154 在Go中实现LevelDB key/value数据库。
8 用 Go 对RocksDB实现了封装。
7628 Groupcache是一个缓存和缓存填充库,在许多情况下,它是memcached的替代品。
16977 可伸缩的数据存储,用于指标衡量、事件和实时分析。
3064 Ledisdb是一种高性能的NoSQL,类似于基于LevelDB的Redis。
364 实现了对LevelDB封装。
715 Moss是一个用100% Go编写的简单LSM键值存储引擎。
866 Nutsdb是一个用纯Go编写的简单、快速、可嵌入、持久的键/值存储。它支持完全序列化的事务和许多数据结构,如列表、集合、排序集。
171 基于堆栈数据结构的轻量级RESTful数据库引擎。
25363 用于监控系统和时序的数据库。
218 使用Go的标准库编写的快速和简单的键/值存储。
4674 基于SQLite的轻量级分布式关系数据库。
58 小型平面文件JSON存储。
86 具有持久性的键值存储。
13 用于临时数据存放的 K/V 存储。
19900 TiDB是一个分布式SQL数据库。灵感来自谷歌F1的设计。
2363 属于你的NoSQL数据库。
145 分布式高性能键值存储。可做磁盘备份。最终一致。高可用。能够在不中断服务的情况下增长或收缩。
974 开源,快速,可伸缩的时间序列数据库。支持PromQL。

数据库迁移。

name star desc tag   
5 发现SQL schemas并将其转换为AVRO schemas。
83 用于数据库 schema 升级的库。
20 类似 Django fixture,用于 Go 建立内置数据库/sql库。
23 用Go -pg/pg编写的迁移包。
26 使用结构修饰的数据库迁移库。
118 数据库迁移工具。您可以通过创建增量SQL或Go脚本来管理数据库的升级。
328 面向Gorm ORM的数据库 schema 迁移辅助程序。
2562 基于CLI的数据库迁移库。
31 非常简单的 Go 数据库迁移库。
24 简易的迁移工具-目前只支持MySQL,但计划很快支持Postgres, SQLite, MongoDB等。
- 数据库迁移、创建、ORM等。用于MySQL、PostgreSQL和SQLite。
1399 数据库迁移工具。允许使用go-bindata将迁移嵌入到应用程序中。

数据库工具。

name star desc tag   
301 ClickHouse数据库的HTTP代理。
133 收集小的 insterts 并向 ClickHouse 服务器发送大请求。
7 一个快速的数据生成器,支持多表感知和多行DML。
30 数据库基准测试工具,支持多个数据库和脚本。
1857 Go 工具集,用于处理MySQL协议和复制。
2367 自动将MySQL数据同步到Elasticsearch中。
4576 kingshard 是基于 Golang 的MySQL高性能代理。
141 MySql二进制日志复制监听器。支持基于语句和行的复制。
52 用于数据库分表(支持每个ORM或原生SQL)。
3011 MySQL复制拓扑管理器和可视化工具。
5964 基于web的PostgreSQL数据库浏览器。
24 在不更改代码的情况下使用准备好的SQL语句。
2078 基于PostgreSQL database的RESTful API服务。
10 rwdb为多个数据库服务器的设置提供读取副本功能。
8386 vitess提供了可以为大规模web服务扩展MySQL数据库提供便利的服务和工具。

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

name star desc tag   
437 Go library帮助您将sql文件保存在一个地方,并轻松地使用它们。
751 非入侵的SQL构建器和强大的数据绑定器。
50 数据库抽象层(dbal)。支持SQL builder,轻松获取结果。
626 常用的SQL生成器和查询库。
77 PostgreSQL的抽象层,支持高级功能和类似gorm的语法。
- 包含一些类似orm的特性和sqlite数据库的辅助程序的轻量级包
435 Powerful data retrieval methods as well as DB-agnostic query building capabilities.
149 生成用于将数据库行转换为任意结构体的 Go 代码。
176 SQL查询生成器,从Squirrel fork而来,并再此基础上对性能做了优化。
- Go SQL中间层,能使得执行查询更加容易。
2284 帮助您构建SQL查询的Go库。
2170 基于现有的schema定义和自定义查询生成 Go 代码,基于支持PostgreSQL、MySQL、SQLite、Oracle和Microsoft SQL Server。

数据库驱动程序

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

  • Relational Databases
name star desc tag   
32 Apache Avatica/Phoenix SQL驱动程序。
12 BigQuery 的数据存储连接。
103 Firebird RDBMS SQL驱动程序。
92 Microsoft ActiveX对象数据库驱动程序。
1016 微软MSSQL驱动程序。
404 Oracle 驱动程序。
8045 MySQL驱动程序。
3412 SQLite3驱动程序。
90 基于FreeTDS封装的微软MSSQL Go 驱动。
234 基于 ODPI-C 的 Oracle 驱动程序
1892 PostgreSQL驱动,支持比现有database/sql更多的特性。
5144 纯 Go 的Postgres驱动。
  • NoSQL Databases
name star desc tag   
303 Aerospike 客户端。
65 轻量级的 ArangoDB 驱动。
4 Aerospike 的数据存储连接器。
64 满足 principle of least surprise 的 DynamoDB 客户端。
29 基于 Go 的 ForestDB 接口实现。
292 Couchbase客户端。
51 基于 Go 的 Yet another CouchDB 的 Http 接口封装。
31 Pilosa客户端。
89 实现了基于 Redigo 客户端的redislabs' ReJSON 模块。可简单地将结构体存储为JSON对象并对其进行操作。
290 官方Couchbase Go SDK。
- Apache Cassandra 的 Go 驱动。
58 由GoLang实现的redis客户端,灵感来自jedis。
6 谷歌云平台Go Datastore包的封装,它采用了memcached添加缓存。
- memcache客户端库。
1455 RethinkDB 驱动。
24 Riak KV 驱动。
1625 (已停止维护) MongoDB驱动。
3029 官方的 MongoDB 驱动。
24 Neo4j Rest API实现。
72 Neo4j REST 客户端。
357 Golang 的 Neo4j 客户端。
258 与 redis 协议兼容的 TCP 服务器/服务。
6226 Redigo 是基于 Go 的Redis 客户端。
6413 基于 Go 的 Redis 客户端。
9 类型安全,可定制,清晰和易用的Redis客户端。
  • Search and Analytic Databases.
name star desc tag   
5810 基于 Go 的现代文本索引库。
4090 Elasticsearch 客户端。
385 将 SQL 转换为 elasticsearch dsl。
950 Elasticsearch 客户端。
1536 官方 Elasticsearch 客户端。
24 实现了与 Elasticsearch 交互的库。
4668 基于 Go 的 开源、分布式、简单高效的搜索引擎。
68 面向概率数据结构的服务和存储。
  • Multiple Backends.
name star desc tag   
111 基于多个驱动程序的缓存组件。
12661 图形数据库,支持多个后端。
13 面向 SQL、NoSQL、结构化文件的数据存储连接。
80 可扩展的简单的 K/V 存储(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB等等)。

日期和时间

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

name star desc tag   
333 简单的时间扩展,包含了许多使用方法,从 PHP Carbon 库移植的。
27 增加处理日期、日期范围、时间跨度、时间段和time-of-day。
889 可以解析很多格式不固定的日期字符串。
238 轻量级、可让time.Duration更加易读的库。
22 用于计算德国公共假期的函数,比如复活节、感恩节等
61 太阳历实现。
13 计算指定位置的日出和日落时间。
18 用于处理以星期实体单位的库。
68 不用正则表达式有效解析 ISO8601 日期时间。
10 用于处理日期和时间的 golang 库。
2161 now 是时间有关的工具类。
9 可以允许 time.Time 为null。
5 C99-compatible strftime formatter。
60 用于处理时间间隔相关的库,可定义开始时间和持续时间。
168 面向 Golang 的时间库,集成了很多有用的扩展(Timedelta, Strftime, ...)。
7 Ruby-compatible Strftime function。

分布式系统

协助构建分布式系统的包。

name star desc tag   
52 用于对 Celery worker、任务、事件进行交互和监控的库。
185 Consistent hashing with bounded loads。
125 BitTorrent Kademlia DHT的实现。
297 基于 grpc 的电子商务微服务。
- 基于 transformation/OT 的分布式同步。
39 实现了谷歌的jump consistent hash。
2500 一个功能齐全,高性能的库集。
24 符合 DRMAA 标准的集群调度程序作业提交库。
- DynamoDB-backed 分布式锁定实现。
8 基于 DynamoDB 的 原子计数器的库。
1906 高性能、分布式、安全和低延迟的发布-订阅平台,使用MQTT、Websockets和love构建。
18 flow-based programming package。
2071 使用纯Go和Luajit编写的快速、可伸缩的分布式map/reduce系统,结合了Go的高并发性和Luajit的高性能,可以独立运行或分布式运行。
2513 全部用 Go 实现,易用、可伸缩,可用于分布式大数据处理,Map-Reduce, DAG执行。
476 用于在服务中启用异步依赖项健康检查的库。
252 提供了谷歌的 “Jump” 一致哈希函数接口。
14329 支持服务发现、负载平衡、插件式传输、请求跟踪等功能的Microservice toolkit。
551 简单、快速和可伸缩的RPC库。
8989 gRPC的Go语言实现。
999 支持25+种语言RPC库。
8574 分布式跟踪系统。
113 jsonrpc 包,实现了 JSON-RPC 2.0。
98 JSON-RPC 2.0 HTTP客户端。
1726 具有中间件的高性能API网关框架。
6521 可插拔的微服务 toolkit 和分布式系统平台。
6255 轻量级、高性能消息传递系统,可用于微服务、物联网(IoT)和云。
5 实现了 outbox pattern Go 库。
- postgresql 的分布式锁定实现。
2821 Raft consensus协议的实现。 by HashiCorp。
- Raft consensus协议的实现。 by CoreOS。
147 基于redis的分布式锁简易实现。
- 用于构建REST、实时和RPC API的实时API网关,其中所有客户端都是无缝同步的。
570 可伸缩的,容错、应用分层的的Go应用程序。
3742 分布式可插拔的RPC服务框架,如阿里巴巴Dubbo。
299 用于HTTP服务之间进行无中心p2p自动发现和RPC通信的库(使用ZeroMQ)。
3107 一个高性能中间件,可将任何语言的状态机转换为 Byzantine Fault 状态机。使用 Tendermint 一致性及区块链协议。
2822 BitTorrent 客户端。

电子邮件

实现了电子邮件创建和发送。

name star desc tag   
- 用Go编写的SMTP服务器。
158 在HTML邮件中支持CSS内联。
1089 一个强大和灵活的电子邮件库。
46 DKIM库,用于签署 & 验证电子邮件。
723 用于客户端和服务器的IMAP库。
104 用于Internet消息格式化和邮件消息的流媒体库。
35 在HTML邮件中支持CSS内联。
- 一个非常简单和强大的邮件发送库。
168 轻量级的SMTP客户机,提供了HTTP API。
1610 可生成干净的、响应式的HTML电子邮件。
5126 电子邮件和SMTP测试工具,对外提供了 web 和 API 接口。
516 SendGrid 的 Go语言库,用于发送电子邮件。
50 SMTP服务器协议状态机。

可嵌入的脚本语言

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

name star desc tag   
321 基于 Go 的动态类型,可嵌入的编程语言。
919 用Go编写的解释器。
29 Lua接口,基于gopher-lua。
687 一个可以计算表达式的引擎。
25 嵌入式脚本编程语言。
429 LISP 的 Go 接口。
651 支持 Duktape JavaScript 引擎。
1660 用 Go 实现的 Lua 5.2 VM接口。
674 PHP 的 Go 接口。
905 CPython C-API 的 Go 接口。
441 Lua C 的 Go 接口。
2943 用 Go 实现的 Lua 5.1 虚拟机和编译器。
134 一种用Go编写的高度可定制的表达式语言。
19 嵌入式 Ngaro VM实现,支持在 Retro 中运行脚本。
4710 用 Go 编写的 JavaScript 解释器。
27 嵌入 Go 的 Perl 5.18.2。
1287 字节码编译的脚本语言。

错误处理

处理错误的库。

name star desc tag   
144 用于定位抛出错误的源代码(以及一些其他快速调试特性)。可插入到任何 logger 的位置。
4831 可让你很简单的进行错误处理。
549 一个功能丰富的错误包,可进行堆栈跟踪、组装异常信息以及其他。
719 可将一系列的错误作为一个整体来显示。
494 可展示错误的堆栈跟踪信息和源码片段。
11 对错误异常进行了捕获封装,封装信息包含了调用它的文件、行和堆栈。

文件

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

name star desc tag   
2205 文件系统的抽象系统。
6 生成大型文件的消息摘要(如 MD5 和 SHA256)。
8 文件操作库,是GNU cp的镜像。
46 使用 tag 加载 csv 文件。
11 拷贝文件。
1 ExifTool 的 Go 实现,这个著名的库用于从文件(图片、PDF、office,…)中提取尽可能多的元数据(EXIF、IPTC,…)。
15 加载gtfs文件。
491 文件系统事件通知库,具有类似于os/signal的简单API,。
57 加载Open Packaging Conventions (OPC)文件。
937 PDF处理器。
48 可以轻松地并发地遍历文件系统。
- 采用并行读取算法的进行读取和写入STL(立体光刻)文件的模块。
35 tar文件的实现 FileSystem 接口。
21 一组可插拔的、可扩展的和自定义的文件系统功能,用于跨越许多文件系统类型,如os、S3和GCS。

金融

会计和财务软件包。

name star desc tag   
486 货币和货币格式。
8 高性能、准确的货币计算软件包。
1586 任意精度定点的十进制数。
535 综合金融市场数据。
42 用于货币时间价值(年金)、现金流、利率转换、债券和折旧计算的金融函数库。
612 Fowler 货币模式的实现。
60 查询 OFX 服务器和/或解析响应。
68 限购单匹配引擎。
155 拥有先进的市场分析和交易策略的技术分析库。
55 嵌入式事务数据库,可多线程模式运行。
61 增值税编号验证 & 欧盟增值税税率。

表单

用于处理表单的库。

name star desc tag   
23 将表单数据与任意 Go 变量进行绑定。
753 将来自 net/HTTP 请求的表单、JSON 数据绑定到结构体。
172 控制用户输入。基于struct tags可对数据进行修剪、清理和擦除。
348 将 url 中的数据解析到 Go 变量中,以及将 Go 语言变量编码进 url。支持 Dual Array 及 Full map。
122 将表单的值解码为 struct。
104 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON数据。
430 用于Go web应用程序和服务的CSRF保护。
966 CSRF保护中间件。

方法

在Go中支持函数式编程的包。

name star desc tag   
106 提供函数式编程功能。
37 Functional Experiment in Go。
1066 常用辅助方法集合。

游戏开发

很棒的游戏开发库。

name star desc tag   
426 用Go编写的 3D 游戏引擎。
1834 很简单的 2D 游戏库。
1076 开源 2D 游戏引擎。它遵循 Entity-Component-System 范式。
738 3D游戏引擎。
308 用 OpenGL 编写的 2D 游戏引擎。
77 Glop (Game Library Of Power) 是一个相当简单的跨平台游戏库。
325 实现了A*路径查找算法。
12 处理Collada文件。
1150
164 以性能为主的2D/3D数学相关包。
1047 实现了游戏服务器骨架。
1166 可伸缩的游戏服务器引擎,具有 space-entity 框架和 hot-swapping 功能。
3036 轻量级游戏服务器框架。
977 轻量级、方便、高性能的基于golang的游戏服务器框架。
623 纯 Go 实现的游戏引擎。
296 可伸缩的游戏服务器框架,支持集群和客户端库的iOS, Android, Unity。
2422 手工制作的 2D 游戏库。
379 实现了 raylib,一个简单易用的库,用于学习视频游戏编程。
1021 基于终端的 Go 游戏引擎,建立在 Termbox 之上。

代码生成与泛型

增强语言的工具,例如通过代码生成支持泛型。

name star desc tag   
43 代码生成工具,可以不通过内存分配就可以高效的将interface{}转换为不可变类型,。
1029 用于生成泛型等类似方法的功能代码生成工具。
18 提供泛型、free-form 宏、条件编译和HTML模板的代码生成工具。
82 从代码注释中生成枚举。
1790 提供类似 .NET LINQ 的查询方法。
735 从输入类型来派生函数。
20 Golang 源码解析,用法类似reflect(反射)。
261 使用简单模板为 Go 接口生成装饰器。
185 用于生成接口定义的命令行工具。
1261 不使用模板生成任意 Go 代码。
85 用于包作用域反射的 Go 预处理器。

地理

地理工具和服务器

name star desc tag   
110 基于内存缓存的的地理位置的应用程序。
25 基于geoserver REST API的 geoserver 实例。
19 将你的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver。
66 用于读取、写入和处理 OpenStreetMap 数据和 APIs。
15 基于Golang 的 OpenStreetMap PBF 编码器/解码器。
882 S2 geometry 库。
6299 具有空间索引和实时地理定位功能的地理定位数据库。

Go 编译器

可将 Go 转换为其他语言的编译工具。

name star desc tag   
148 将 C 代码转换为 Go 代码。
11 将 FORTRAN 77 转换为 Go代码。
8503 将 Go 编译成 JavaScript。
990 基于 llvm 的编译器。
392 Golang 转换为 Haxe,再转换为 CPP/CSharp/Java/JavaScript 的编译器.

Goroutines

管理和处理 Goroutines 的工具。

name star desc tag   
1834 一个高性能的协程池。
11 简单的内存作业队列。
20 一种异步执行函数的安全方法,在出现 panic 时恢复它们。
32 灵活的机制,可以使执行流可中断。
36 基于 Go 的 CyclicBarrier 实现。
167 轻松编排 goroutines。
103 控制 goroutines 的执行顺序。
5 轻量级的协程池库,可以通过简单的API来管理。
4 支持 read-write 锁。
26 异步简单的函数实用程序,用于管理闭包和回调的执行。
75 简单异步的协程池。
2241 基于 go 的后台 worker。
56 manages a resizeable pool of context-aware goroutines to bound concurrency
491 轻量级协程池。
9 Hunch 提供了诸如 All、First、Retry、Waterfall 等功能,这使得异步流控制更加直观。
- 完整的实现了Erlang supervision trees。
24 并行运行函数。
475 有限消费者协程或无限协程池,可用于更加简单的处理和取消协程
1 提供类似队列组可访问性 sync.WaitGroup 的功能。帮助你节流和限制协程、等待所有协程结束以及更多功能。
2 go routine control with context, support: Main, Go, Pool and some useful Executors.
74 信号量模式实现,可根据通道和上下文进行具备超时功能的锁定/解锁操作。
72 基于 CAS 的可快速调整的信号量实现(比基于通道的信号量实现更快)。
8 基于软件事务内存(STM)并发控制机制的软件事务锁。
17 Golang 的 threadpool 实现。
1330 golang 的协程池。
43 一个简单的 Go 异步工作池。
131 限制任务执行并发数,而不是队列中的任务数量的协程池,。

GUI

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

工具包

name star desc tag   
2943 用于创建包含了 GO, HTML 和 CSS 的应用程序。支持 MacOS, Windows 正在开发中。
6201 为 Go 而设计的跨平台的本地GUIs,使用EFL呈现。支持 : Linux, macOS, Windows。
2641 使用 GO 和 HTML/JS/CSS (电子驱动)进行构建跨平台 GUI 应用程序。
- 实现了 GTK 的 Go接口。
1439 实现了 Sciter 的 Go 接口 : 用于现代桌面 UI 开发的可嵌入HTML/CSS/脚本引擎。可跨平台。
760 实现了 GTK3 的 Go接口。
207 跨平台、快速、简单的桌面UI开发,采用了GO, HTML, CSS和NW.js实现。
5988 实现了 Qt 的 Go接口(支持Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)。
6913 跨平台的 Platform-native GUI 库。
- Mac, Windows, Linux桌面应用程序,主要基于含有内置的OS HTML渲染器的HTML UI。
3671 Windows应用程序库。
4616 跨平台webview窗口,具有简单的双向JavaScript绑定(Windows / macOS / Linux)。

交互

name star desc tag   
1 实现了 libappindicator3 C库 的 Go接口。
494 OSX 桌面通知库。
1 用于通知计算机上的任何(可插入的)活动的 OSX 库。
- OSX 睡眠/唤醒通知。
4405 实现跨平台的GUI系统自动化。包含了控制鼠标、键盘等功能。
774 跨平台 Go 库,可在通知区放置图标和菜单。
159 跨平台 Go 库,可用于在主机操作系统的任务栏中放置图标。

硬件

硬件交互相关的库、工具和教程。

See go-hardware for a comprehensive list.

图片

图像处理相关的库。

name star desc tag   
2029 纯Go语言实现的图像处理算法合集。
784 使用libvips实现的快速高效的图像处理包。
31 一个Go语言的头像生成器。
21 An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency.
1011 由字符串创建漂亮图案的图片生成器。
1896 纯Go语言实现的2D渲染。
1206 图像处理包。
36 一个高效、健壮的glTF 2.0文件读取、写入和验证器。
85 cairo图形库的Go binding。
49 GD库的Go binding。
286 Go语言实现的裸照检测工具。
1087 OpenCV库的Go bindings。
24 Python下webcolors库的Go语言调用。
2422 使用OpenCV 3.3+实现的计算机视觉(ComputerVision)的Go语言包。
209 图像哈希处理的Go语言包。
26 Go语言实现的imghdr模块用于确定文件的图像类型。
310 生成有趣头像的库和CMD工具。
288 将图像转换为ASCII码。
969 ImageMagick下MagickWand的C API的Go binding。
2579 用于图像大小调整的快速、简单的HTTP微服务。
2497 简单的Go图像处理包。
129 图像处理工具的集合。
2457 Go实现的3D线艺术(3D Line Art)渲染。
70 用于图像处理(合并、裁剪、调整大小、水印、动画)的工具和Go库。
365 Go语言实现的图像存储和处理服务器。
6 MPO三维照片的解码和转换工具。
1060 Go实现的图像调整服务器。
1765 Go实现的路径跟踪(path tracing)引擎。
2122 Go实现的使用常用的插值法(interpolation methods)调整图像大小的库。
189 纯Go语言和SIMD实现的图像大小调整。
1250 为任意图片寻找合适的位置进行图片裁剪。
25 纯Go实现的LSB隐写(LSB steganography)的库。
486 Go实现的LSB隐写(LSB steganography),能够隐藏任何文件到一个图像中。
1325 Go实现的SVG生成库。
23 tga包是一个TARGA图像的解码、编码器。

物联网

物联网设备编程库。

name star desc tag   
167 自我量化和物联网的开源平台。
225 一套用于物联网设备的库,实验性地用于x/exp/io。
36 Eywa是一个用于跟踪连接的设备连接管理器。
1113 Flogo是一个面向物联网边缘应用和集成的开源框架。
811 Gatt是一个用于构建低能耗蓝牙外围设备的Go语言包。
- Gobot是一个用于机器人、物理计算和物联网的框架。
109 一个包含广泛的Philips Hue客户端的Go语言库。
- IoT是一个实现谷歌物联网核心设备的简单框架。
579 工业物联网消息和设备管理服务器。
- 外围设备I/O与低级板(low-level board)设备接口。
178 轻量级物联网流处理引擎。

作业调度器

用于作业调度的库。

name star desc tag   
- 使用简单、流畅的语法调度作业的Go语言库。
76 Go实现的简单直观的作业调度库。
177 一个Go实现的简单的定时任务库。可以在不同的时间间隔(每秒一次到在每年在特定的日期执行)执行闭包或函数。主要用于web应用和长时间运行的守护进程。
625 使用简单的Go API定义基于时间的任务。 之后Gron的调度程序将运行它们。
568 智能和功能丰富的cron作业调度程序(包含任务队列和实时监控)。
451 持久和灵活的后台作业库。
37 支持webhook、crons和经典调度的作业调度程序。
291 Cronjobs让调度变得很简单。

JSON

用于JSON处理的库。

name star desc tag   
12 为Go语言开发的包含JSONPath支持的抽象JSON。
58 用于创建JSON对象的小工具。
4832 使用一行代码获取JSON的值。
7 Go-JsonError允许我们轻松创建符合JsonApi规范的json响应错误。
22 用于处理常见的HTTP JSON响应的Go语言库。
140 Go语言实现的JSON请求。
2021 从JSON自动生成Go的结构(struct)定义。
39 用Go编写的JSON比对工具。
- 将JSON转换为Go的结构(struct)。
5 基于JSON API错误引用的Go bindings。
54 用于高亮展示和查询JSON的控制台工具。
92 使用Fluent API来更容易地创建Json对象。
9 让自定义结构(struct)转化为JSON兼容的HAL(Hypertext Application Language)返回数据的简单Go包。
130 用于任意JSON文档转换的API。
33 简单的cli电子邮件解析器。它目前接受stdin并输出JSON。

日志记录

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

name star desc tag   
18 distilled日志记录(可以将其视为stdlib +日志)。
51 glg是一个简单而快速的Go日志库。
8 参照PHP的Monolog实现的具有相同日志等级的Go日志库。
2295 为Go提供了多等级日志记录。
19 基于当前日期和时间的自动日志文件写入工具,类似cronolog。
10 Go实现的简单且可配置的日志工具,并带有多等级、日志格式化和日志写入工具。
24 支持多等级和多处理程序的日志库。
34 Log4j的Go语言。
233 简单的日志程序的 Go 程序,与级别处理程序。
39 为Go提供方便简单的日志操作; 在彩色控制台,简单控制台,文件或Elasticsearch上。
15 为Go实现可多方式输出、结构化日志, 并可扩展日志输出方式。
- 快速、可扩展、功能齐全、std-lib源兼容的日志库。
18 Go实现systemd Journal的原生API用于日志记录。
4 一个O(1)日志系统,允许您将一个日志连接到多个日志写入(例如stdout、文件和TCP连接)。
727 Go的结构化日志包。
266 Go的简单、可配置和可伸缩的结构化日志。
22 Go的结构化日志接口,清晰地将日志facade与其实现(implementation)分离开来。
82 用Go编写的功能齐全的日志写入saas。
880 简单、强大的日志操作。
9 用于多等级级日志记录的包。
32 由标准日志库封装的Go日志库,支持跟踪和多等级。
135 Go的精简日志库。
6 Go的彩色日志记录器,带有可配置的日志级别。
4 Go的日志工具,可配置的日志写入器。
11805 Go的结构化日志操作 。
26 logrus的插件,将错误信息发送到Loggly。
247 Go的用于更好地进行日志操作的实用程序,继承了标准日志库。
334 12-factor app的日志程序,快速且让人高兴地使用。
1425 简单的滚动日志,io.WriteCloser的实现。
18 简单的go日志模块,有5个级别,可选循环(rotation)日志文件记录功能和stdout/stderr输出。
330 Onelog是一个非常简单但非常高效的JSON日志程序。它是所有场景中速度最快的JSON日志程序。而且,它是配置要求最低的日志记录器之一。
110 支持日志多等级、分类和过滤的高性能日志记录。可以发送过滤后的日志消息到各种目标(如控制台,网络,邮件)。
96 RollingWriter是一个自动循环的io.Writer的实现,带有多种策略以提供日志文件循环(rotation)。
1344 具有灵活调度、过滤和格式化的日志功能。
3279 为Go数据结构实现一个漂亮的printer用于帮助调试。
43 Stdlog是一个面向对象的库,提供了多等级日志记录。它对cron任务非常有用。
1531 努力模拟实现BSD的tail的特性的Go包。
7 插件架构和灵活的日志系统,带有多级别、多日志目标和自定义日志格式。
128 针对'net/context`实现的结构化的记录器,用于HTTP处理程序。
7347 快速、结构化、多等级的日志记录。
2177 Zero-allocation JSON日志记录。

机器学习

机器学习库。

name star desc tag   
628 Go的朴素贝叶斯分类。
643 快速、灵活、多线程集成的决策树,用于机器学习。
618 一个进化优化(evolutionary optimization)库。
8 遗传算法(Genetic Algorithm)和粒子群优化(Particle Swarm Optimization)库。
33 一个用Go编写的深度神经网络库。
21 Go实现的k-modes和k-prototypes聚类算法。
216 一个功能丰富的神经网络库 。
99 快速人工神经网络(FANN)库的Go bindings。
171 用Go编写的遗传算法库。
57 Go编写的模式识别包。
379 用 Go 编写的神经网络库。
24 各种概率分布,以及相关的method。
78 Go的遗传算法库。
6635 通用机器学习库。
39 Go实现的liblinear bindings。
6 一个简单的神经网络库。
1009 在线机器学习。
142 用Go编写的推荐算法库。
2674 基于图形(graph-based)的计算库,如Theano:它为构建各种机器学习和神经网络算法提供了基本框架。
525 基于协同过滤(Collaborative Filtering )的高性能推荐系统包。
35 为预言模型标记语言(PMML)实现的评分API。
861 使用c++的Tesseract库实现的OCR。
63 基于LIBSVM 3.14实现。
5 这个项目的用于在Go中提供最精简的机器学习算法。
55 即插即用的并行Go框架,用于增强拓扑的神经进化(NeuroEvolution of Augmenting Topologies)。
61 多层感知器网络在Go中的实现,使用反向传播算法进行训练。
219 一个简单的OCR API服务器,非常容易地使用Docker和Heroku部署。
147 Go Interface, 用于开放式神经网络交换(Open Neural Network Exchange)。
10 概率分布函数。贝叶斯推理。使用Go写的。
245 推荐和协同过滤引擎。
124 贝叶斯文本分类器,具有灵活的tokenizers和存储后端。
1175 易于使用的Tensorflow bindings:简化了官方Tensorflow Go bindings的使用。在Go中定义计算图形,在Python中加载和执行训练的模型。
24 Go实现的神经网络。

消息

实现消息传递系统的库。

name star desc tag   
2037 HTTP / 2苹果消息推送provider——发送推送消息到iOS, tvOS, Safari和OSX应用。
717 一个实时消息服务器,可用于在web和手机app端构建一个可伸缩的应用内通知,多人游戏,聊天应用。
1988 一系列协议之间的消息流桥接。
114 内部通信的最小消息总线实现。
3655 实时消息(Websockets或SockJS)服务器。
21 高级事件驱动的消费者/生产者(consumer/producer),支持各种“方言”,如Apache Kafka。
355 D-Bus的Go bindings。
60 使用二进制、docker或Drone CI发送Line通知。
309 使用Go的方式发出事件, 带有通配符、谓词、取消可能性和许多其他优点。
27 观察者模式的实现。
551 具有异步兼容性的轻量级事件总线。
8 用Go编写的Gaurun客户端。
316 健壮的Go和Javascript Socket库(替代Socket.io)。
47 原生的freedesktop通知规范实现。
1451 NSQ的官方Go包。
2867 go的socket.io库,一个实时应用程序框架。
11 用于Viessmann Vitotrol web服务的客户端库。
767 一个n:m多路复用器(n:m multiplexer),收集不同来源的消息并将其广播到一组目的地。
425 HTTP longpoll服务器库,使web发布-订阅变得简单。
36 服务器在Go中发送事件。
1833 gopush-cluster是一个gopush服务器集群。
3683 使用APNs2和谷歌GCM推送通知服务器。
138 使用推送通知服务(谷歌Firebase云消息、苹果推送通知服务、SMS)的消息服务器, 支持websockets,REST API,并具有分布式操作和消息持久性。
24 适用于Go应用程序的消息/事件中心,使用publish/subscribe模式,并支持别名(类似rabbitMQ exchanges)。
6 一个简单的RabbitMQ抽象层,用于队列管理和消息的发布和消费。
3343 基于分布式消息传递的异步任务/作业队列。
1534 Nanomsg(“可伸缩协议”)的纯go实现,具有传输互操作性。
1549 处理websocket session的极简框架,包括广播和自动ping/pong处理。
1477 使用Mercure协议分派服务器发送(server-sent)更新的服务器和库(构建在服务器发送事件之上)。
64 messagebus是一个Go的简单异步消息总线,非常适合在执行事件sourcing、CQRS和DDD时用作事件总线。
2382 轻量级和高性能的发布-订阅(publish-subscribe)和分布式队列消息传递系统——这是一个Go库。
50 一个围绕NSQ topic和channel的小工具。
94 用于REST api的通用oplog/replication系统。
272 简单的pubsub的go包。
61 amqp exchanges和队列上的一个小工具。
72 RabbitMQ的瑞士军刀cli应用。
54 RapidMQ是用于管理本地消息队列的轻量且可靠的库。
1 基于Redis streams的队列的生产者和消费者。
- RabbitMQ重新连接。amqp.Connection和amqp.Dial之上的Wrapper。允许在强制调用Close()方法关闭连接之前重新连接。
4578 Apache Kafka的Go库。
1098 Redis支持的统一推送服务, 用于服务端向移动设备的消息通知。
773 ZeroMQ的Go interface第4版。也可用于第3版和第2版。

微软办公软件

name star desc tag   
1679 用于创建和处理Office Word (.docx)、Excel (.xlsx)和Powerpoint (.pptx)文档的纯go库。

Microsoft Excel

用于操作Microsoft Excel的库。

name star desc tag   
4404 用于读写Microsoft Excel™(XLSX)文件的Go语言库。
46 一个简单轻便的阅读器,可以将类关系型数据库(relate-db-like)的excel作为表来读取。
12 libxlsxwriter的Go binding, 用于编写XLSX (Microsoft Excel)文件。
3344 用以简化在Go程序中读取使用最新版本Microsoft Excel的XML格式文件的库。
67 在Go程序以快速和安全的方式读取/更新现有的Microsoft Excel文件。

杂项

依赖注入

用于处理依赖项注入的库。

name star desc tag   
33 Go的外挂的依赖注入容器。
893 一个基于反射的Go依赖注入工具包。
690 基于依赖注入的Go应用程序框架(构建在dig之上)。
9 简单的依赖注入容器。
25 一个基于反射的依赖注入容器,具有简单的接口。
5 A reflection based dependency injection and inversion of control library with components lifecycle support.
19 适用于Go的严格运行时依赖注入(Strict Runtime Dependency Injection)。

项目布局

用于组织项目的非正式模式集。

name star desc tag   
21 带有实际代码的Go应用程序项目的示例布局。
8884 Go生态系统中历史和新兴的项目布局模式集合。
21 快速生成Go项目布局的脚手架。让您专注于已实现的业务逻辑。

字符串

处理字符串的库。

name star desc tag   
61 字符串处理工具。
616 从其他语言移植的有用字符串函数合集。

这些库之所以放在这里,是因为不适合放在其他分类。

name star desc tag   
11 Go语言的最小化,可插入的evloop/timer处理程序, 带有依赖注入。
139 一个快速、强大和可扩展的web爬虫框架。
2475 用于生成和解压.zip和.tar.gz文档的库和命令。
24 从struct字段自动定义命令行flag的Go包。
9 根据威尔逊得分排序算法(Wilson Score Equation)计算平均分和评分。
229 在Go应用程序中添加漂亮的横幅(banner)。
621 base64Captcha支持数字,字母,算术,音频和混合模式的验证码。
134 跨平台、标准化的电池信息库。
92 高度优化的位级读写器。
29
42 captcha包为验证码生成提供了一个易于使用的、unopinionated的API。
340 conv包提供了跨Go类型(Go types)的快速和直观的转换。
27 用于readers/writer/http.ResponseWriter的计数器。
126 美化数据,使其更适合人查看。
23 GitHub一个组织中所有的仓库复制到一个目录中。
663 Go语言的通用对象池。
- 用于解析和使用开放api模式(open-api schemas)的包的集合。
846 Go语言弹性模式(resiliency pattern)。
67 用于RAR、TAR、ZIP和7z文件的解压缩库。
411 用go编写的随机数据生成器。
70 分析git提交消息,确保它们遵循已定义的格式。
3890 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台的库。
16 提供Go统计处理程序,结构和测量方法。
1225 Go编写的私人的本地短信网关,可以用来发送短信。
15 为Prometheus客户端提供类型安全的指标(metric)构建工具库。
208 获取国家和细节数据的包。
360 易于使用,可扩展的健康检查库。
80 用于RESTful服务的强制的(opinionated)并发健康检查HTTP处理程序。
8 一个用于打包和解包FQDNs列表的go语言库。
51 分布式唯一ID生成器, 使用Sonyflake并由Base58编码。
117 一个简单的版权许可证库。
409 用于在纯Go中与LLVM IR交互的库。
4 用于instrumentation和Prometheus exposition的库。
49 实现字符串与摩尔斯电码转换的库。
2 NUMA是一个用go编写的实用程序库。它可以帮助我们编写一些NUMA-AWARED代码。
33 通过Json请求生成PDF的HTTP服务。
33 一些适用于波斯语的Go工具库。
12 能沟让地球上的每一粒沙子都有自己的ID。
7 一个Go库,实现了依照UNIX Bourne shell的关键词解析规则进行字符串操纵。
446 分布式地生成超短、唯一、非顺序、URL友好的id。
121 Monitors Go MemStats + 诸如如内存,Swap和CPU的系统状态统计,并通过UDP发送到任何你想记录的地方
72 Go的Emojis库。
17 一个现代的、强大的、健壮的URL转短链接微服务,带有mysql支持。
- 用于生成http输入和输出处理模板。
19 FreeDesktop.org (xdg)规范在Go中的实现。
39 X Keyboard Grabber(键盘事件捕获)

自然语言处理

用于处理人类语言的库。

name star desc tag   
73 快速自然语言检测包。
4 相似、不相似和距离矩阵;多样性、公平性和不平等度量;物种丰富度估计;coenocline模型。
- 软件包和用于处理本地化文本的附带工具。
23 CGo绑定到Yandex。Mystem -俄罗斯形态学分析仪。
79 用于处理离散概率分布的实用程序和用于进行NLP工作的其他工具。
519 中文汉字到汉语拼音的转换。
52 波特词干算法的实现。
56 Unicode文本的ASCII音译。
30 用于word2vec嵌入式的阅读器和实用程序函数。
813 这是一个Go实现的jieba,这是一个中文分词算法。
15 Go 绑定斯诺鲍libstemmer库,包括波特2。
6 一种基于字典和双字母格朗语言模型的记号赋予器。(现在只支持中文分割)
67 用于Go的Unicode音译器(也称为unidecode)。
1064 高效的文本分割;支持英语、汉语、日语等。
19 Cgo绑定用于icu4c C库的检测和转换功能。保证与版本50.1兼容。
413 JP形态学分析仪编写的纯Go。
10 用于libtextcat C库的Cgo绑定。保证与版本2.2兼容。
59 这是一个 Go 实现的MMSEG,这是一个中文分词算法。
353 从字符串中提取值并用nlp填充结构。
216 支持LSA(潜在语义分析)的Go自然语言处理库。
25 Golang实现了Paice/外壳阻塞算法。
22 彼得罗维奇是一个图书馆,它把俄语名字的词形变化成特定的语法格。
8 这是Martin Porter在C语言中实现的Porter词干分析算法的一个相当简单的移植。
33 非常快的波特2史坦默。
2038 用于支持标记化、词性标记、名称实体提取等文本处理的库。
45 快速自动关键字提取算法(RAKE)的Go端口。
46 Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29
260 句子标记器:将文本转换为句子列表。
10 shamoji是用Go编写的word过滤包。
24 滚雪球柄端口(cgo包装)为 Go 。提供词干提取功能Snowball native。
47 用于Go编程语言的Stemmer包。包括英语和德语词根。
60 Go package支持基于n-gram的文本分类,支持utf-8和原始文本。
350 Go的自然语言检测包。支持84种语言和24种脚本(书写系统,如拉丁语、西里尔语等)。
925 带有可插入规则的自然EN和RU语言日期/时间解析器。

网络

用于处理各种网络层的库。

name star desc tag   
193 实现了arp协议,如RFC 826中所述。
232 通过TCP传输协议缓冲区数据。
133 CoAP客户端/服务器实现(RFC 7252)。
387 快速得 IP 到 CIDR 查找。
62 实现了一个DHCPv6服务器,如RFC 3315所述。
3770 用于 DNS 的库。
62 一个用于发送和接收以太网帧的跨平台 Go 库。
185 实现了对IEEE 802.3以太网II帧和IEEE 802.1Q VLAN标签的编组和解组。
9228 一个快速HTTP实现,比net/http快10倍。
862 负载测试库和命令行工具,高级的echo服务器和web UI。允许指定一组每秒查询的负载,并记录延迟直方图和其他有用的统计数据,并将它们作图。支持Tcp、Http、gRPC。
519 实现了RFC 959中描述的ftp客户端。
80 Gmqtt是一个灵活、高性能的MQTT代理库,它完全实现了MQTT协议V3.1.1。
98 一组基于 gNMI 和 gNOI 协议的网络管理工具。
721 通过URL来下载文件或目录。
331 实现了 STUN 客户端(RFC 3489和RFC 5389)。
1665 基于 Go 的 BGP 实现。
14 用于解码 pcap 文件和分析解剖数据。
2845 Go library for packet processing with libpcap bindings.
352 用 Go 实现了对 libpcap 的封装。
9 用于解码IP包,创建用于分析的数据结构包。
431 用于执行 SNMP 操作的原生 Go 库。
410 用于快速编写 tcp 应用程序。
545 用于管理文件下载。
24 FTP服务器框架。
3399 HTTPLabs 允许你检查 HTTP 请求和伪造响应。
24 用于处理IP地址的库(net)。借鉴于python 的 ipaddress和ruby ipaddr
123 Jazigo是一个用Go编写的工具,用于检索多个网络设备的配置。
2234 快速可靠的ARQ协议。
10625 基于KCP协议的非常简单和快速udp隧道。
512 强大的websocket框架,可以让你更容易的构建IM服务器。
44 网络链路速度模拟,主要用于接口的读/写。
8 一个非常简单、快速的代理服务器后端。可用于快速重定向到预定义域,具有零内存分配和快速响应。
547 简单mDNS(Multicast DNS)客户端/服务器库。
- Paho Go客户端提供了一个 MQTT 客户端库,用于通过TCP、TLS或WebSockets连接到MQTT代理。
653 用于快速开发云计算和裸机网络功能的框架(原YANFF)。
27 通过TCP和UDP发送数据包。它可以缓冲消息和热交换连接。
359 基于UDP组播的跨平台本地对等点发现库。
42 Simple TCP proxy which adds CORS support to API's which don't support it.
18 包publicip返回面向公共的IPv4地址(internet出口)。
2867 在纯Go中实现了QUIC协议。
303 Package raw支持在设备驱动程序级别读取和写入网络接口的数据。
727 Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
1101 用于构建SSH服务器的高级API(封装密码/ SSH)。
113 它是一个超级简单的负载平衡器,只是一个实现某种性能的小项目。
269 Go实现的RFC 5389 STUN协议。
281 Go 图书馆建设tcp服务器更快。
6 TCP库使用工作池来提高性能并保护服务器。
149 Go uTP微传输协议的实现。
832 简单TUN / TAP图书馆。
2166 WebRTC API的纯Go实现。
210 Go WinRM客户端远程执行Windows机器上的命令。
81 TCP服务器框架具有同时全双工通信,优雅关机,自定义协议。

HTTP客户端

用于发出HTTP请求的库。

name star desc tag   
677 功能齐全的插件驱动HTTP客户端库。
98 基于gorequest的增强简化HTTP客户机。
1407 一个 Go “克隆”的伟大和著名的请求库。
1066 具有重试和hystrix功能的增强http客户机。
326 使用重试、后退和并发执行HTTP客户机调用。
26 golang stdlib HTTP客户端更好的接口。
986 Sling是一个用于创建和发送API请求的Go HTTP客户端库。

OpenGL

用于在Go中使用OpenGL的库。

name star desc tag   
638 OpenGL 的 Go 接口实现(通过glow生成)。
728 GLFW 3 的 Go 接口实现。
131 跨平台的OpenGL 接口实现(OS X, Linux, Windows,浏览器,iOS, Android)。
58 跨平台 glfw 库,可用于创建 OpenGL 上下文并接收事件。
289 完全基于 Go 实现的数学软件包,专门用于处理三维数学。借鉴于 GLM。

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

name star desc tag   
- 强大的orm框架。支持: pq/mysql/sqlite3。
1 一个轻量级的ORM。用于Google/Firebase Cloud Firestore。
2938 用于 PostgreSQL 的ORM。侧重于 PostgreSQL 的特性和性能。
446 基于 GORM 100% 类型安全的 ORM。可支持 MySQL, PostgreSQL, Sqlite3, SQL Server。
231 一个灵活而强大的SQL字符串构建器库。
93 简单且快速的 Redis 键值存储库。
14515 一个出色的 ORM 库。主要目标是对开发人员友好。
3072 基于 Go 的关系持久性 ORM-ish 库。
112 基于 golang 的数据库访问层和验证库。(支持: MySQL, PostgreSQL和SQLite3)。
4 Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
63 从项目结构生成ORM。
673 数据库迁移、创建、ORM等。用于MySQL、PostgreSQL和SQLite。
539 Stands for Query By Struct. A Go ORM.
791 基于非空接口和代码生成的 ORM。
2249 ORM 生成器。根据数据库 schema 生成一个功能强大且运行速度快的ORM。
1840 对外提供统一的接口用于访问不同的存储介质,例如PostgreSQL, MySQL, SQLite, MSSQL, QL、MongoDB.。
5145 基于 Go 的简单而强大的ORM。
239 基于 Redis 的快速数据存储和查询引擎。

包管理

用于管理依赖和包的官方工具

name star desc tag   
- Modules 是源码的版本控制和交换的单位。go命令直接支持处理模块,包括记录和解决对其他模块的依赖关系。

包管理的官方实验工具

name star desc tag   
12530 Go 的依赖管理工具,需要 Go 1.9+
- Go 命令版本管理

用于包和依赖项管理的非官方库。

name star desc tag   
197 类似pip的golang依赖工具,支持私有存储库和散列。
7766 轻松管理您的 golang 第三方包。受Maven、Bundler和Pip等工具的启发。
5648 godep是go的依赖工具,它通过修复包的依赖关系来帮助构建可重复的包。
1350 Go Manager - bundle for Go。
777 Go 的简单依赖管理器,灵感来自Bundler。
50 在GOPATH之外构建和管理Go应用程序。
2349 包管理器。
4718 包管理器。使用 vendor 文件的 Go vendor 工具。
1205 基本的 Go 依赖管理器。
214 使用Git的最小依赖版本。
87 插件,为自动加载Golang SDK,依赖关系管理和启动Maven项目基础设施中的构建环境提供了方法。
245 vendor 依赖。
115 创建和管理可导出的隔离go虚拟环境。

查询语言

name star desc tag   
854 一个用来查询JSON数据的Go包。
51 graphql解析器+工具集
2751 关注易用性的GraphQL服务器。
5171 为Go实现GraphQL。
201 Golang中的JSON查询表达式库。
23 使用高级过滤器查询Jsonpath。
111 用于REST API的资源查询语言。

嵌入的资源

name star desc tag   
467 将文件嵌入到Go程序中并提供http文件系统接口。
418 一个可定制的工具用来在Go中嵌入文件
14 生成go代码,将资源文件嵌入到库或可执行文件中。
154 嵌入到Go中的普通资源。
1637 go.rice 是一个Go包,它使处理html、js、css、图像和模板等资源变得非常容易。
2081 将静态文件嵌入到Go二进制文件中的简单方法。
53 将静态资源嵌入到go文件中,用于单个二进制编译+使用http。文件系统+符号链接。
2080 将静态文件嵌入到Go可执行文件中。
20 将外部模板文件嵌入到Go代码中,以创建单个文件二进制文件。
648 生成一个vfsdata。静态实现给定虚拟文件系统的go文件。

科学与数据分析

用于科学计算和数据分析的库。

name star desc tag   
3 assocentity 返回单词到给定实体的平均距离。
- 为成对比较提供了一个 Bradley-Terry 模型。
579 简单的图表绘制库。支持多种图形类型。
73 用于机器学习和统计的数据模型(类似于 pandas)。
40 简单的浮点算术表达式求值器。
265 提供指数加权移动平均算法。
40 Go 的二维几何。
625 Go数字信号处理。
11 用Go语言编写的数学函数,不包括在math pkg中。
5 用“Go”语言编写的图论算法。
5 用于 Go 编程语言的复数库。
13 Go 实现熵度量。
126 数据流的近似直方图。
2917 Gonum是一组用于Go编程语言的数字库。它包含用于矩阵、统计、优化等的库。
1205 gonum/plot提供了一个API,用于在Go中构建和绘制绘图。
597 纯Go图论库(数据结构,算法可视化)。
1301 提供线性代数,FFT,几何,NURBS,数值方法,概率,优化,微分方程,等等。
9 GoStats是一个开放源码的GoLang库,主要用于机器学习领域的数学统计,它涵盖了大多数统计度量函数。
231 基本图形算法库。
10 常微分方程(ODE)求解器,支持扩展状态和基于信道的迭代停止条件。
196 2D几何类型,支持剪切、GeoJSON和Mapbox矢量平铺。
48 加权 PageRank 算法在Go中的实现。
5 微型线性插值库。
9 实现了针对16进制数 Pi 的“bailee - borwein - plouffe”算法。
3 二次函数求根算法库。
68 Go 稀疏矩阵格式的线性代数支持科学和机器学习应用程序,兼容gonum矩阵库。
1335 包含Golang标准库中缺少的公共函数的统计软件包。
1313 通用图形工具,用于处理数据流。
65 TextRank在Golang中的实现,支持扩展特性(摘要、加权、短语提取)和多线程(goroutine)。
11 二维三角库。允许将线和多边形(都基于点)转换为gpu语言。

安全

用于帮助您的应用程序更安全的库。

name star desc tag   
1693 ACME(让我们用自动更新加密)客户端工具。
448 网络加密代理保护基于数据库的应用程序免受数据泄漏:强选择性加密,SQL注入预防,入侵检测系统。
72 使用常量时间密码比较生成Argon2密码散列。
- 让我们加密证书并启动TLS服务器。
246 一个驻留在内存中的,应用驱动的监控程序,受 fail2ban 的启发
1815 工具和库,以远程入侵RTSP流从监控摄像头。
6 用于生成tls证书的自定义工具。
131 YARA的 Go 语言接口,号称是 “对于恶意软件研究者(以及其他人)来说是模式匹配的瑞士军刀”
11 Argon2密码散列和验证设计为与现有Python和PHP实现兼容。
29 一个安全哈希和加密密码的偏执包。
- 基于规则的数据生成器,用于模糊和渗透测试。
5 JSON Web加密库。
3464 纯 Go ACME 客户端库及命令行工具
1211 一个用于处理内存中敏感值的纯Go库。
449 Go 实现NaCL API的集合。
225 不过时的密码哈希库。
1197 Go 语言 HTTP 中间件,为 Go 提供了一些安全功能
156 Scrypt 库,具有简单、易懂的 API,同时具有内置的自动校准功能
195 使用ssh密钥加密/解密。
7 使用围绕acme/autocert的高级包装器,SSL证书变得很容易。

序列化

用于二进制序列化的库和工具。

name star desc tag   
40 面向golang的BER和DER编码库。
60 用于 Go 语言生成 Cap'n Proto schemas 的生成器
5 从Go structs/interface生成TypeScript接口。对JSON RPC很有用。
7 用于将数据映射到结构中的Golang二进制解码器。
472 为Colfer二进制格式生成代码。
300 高性能、惯用的CSV记录编码和解码到本机Go结构。
6 用于Go的固定宽度文件解析器(编码和解码库)。
272 Go 语言用的 Cap'n Proto 库及解析器
1226 高性能、多功能、规范化编码解码以及 rpc 库, 用于 msgpack, cbor 和 json,支持基于运行时的 OR 码生成
2908 Go 语言的 Protocol Buffer 库。
5026 通过库和协议编译器插件使 Go 语言支持 Google的 protocol buffers.
5471 高性能,100% 兼容的“encoding/json” 替代品
2381 用于对原生键值对进行解码生成 Go 语言结构体
118 用于协同 PHP session 格式数据和 PHP 序列化/反序列化函数工作的go语言库
94 用于从静态结构体简单、动态的生成键值对的库

服务器应用程序

name star desc tag   
1582 内置支持Lua、Markdown、GCSS和Amber的HTTP/2 web服务器。
23007 Caddy是另一种HTTP/2 web服务器,易于配置和使用。
- Consul 是一个用于服务发现、监控和配置的工具
2799 为开发人员提供本地web服务器。
668 用于弹性中间层负载平衡和故障转移的注册表。
26252 为共享配置和服务发现提供高可用的键值存储。
787 Fider是一个收集和组织客户反馈的开放平台。
815 Flagr是一个开源特性标记和A/B测试服务。
984 一个用Go和Vue.js编写的自包含特性标志解决方案
709 用Go编写的XMPP服务器。
17158 Minio是一个分布式对象存储服务器。
5 Nginx日志解析器和Prometheus 导出。
- 一个实时分布式消息平台。
5 从PostgreSQL到Kafka的流数据库事件。
- 传递到负载平衡Riemann事件并/或将其转换为 Carbon。
3224 高性能PHP应用服务器,负载平衡器和进程管理器。
- 小型化、网络化、基于内存的键值存储

模板引擎

用于模板和词法分析的库和工具。

name star desc tag   
761 Ace 是一个 Go 语言的 HTML 模板引擎,受到了 Slim 和 Jade 的启发。 Ace 是对Gold的一种改进。
822 Amber是一个优雅的Go编程语言模板引擎,它的灵感来自HAML和Jade。
20 标记语言,通过css选择器实现了 html 框架 ,并可以通过 pkg html/template 等进行扩展
415 轻量级模板语言,允许您在Go中编写模板。模板被翻译成Go并编译。
13 对 html/template 进行了简单的封装,支持基于文件的模板可以利用其他模板文件进行扩展
292 简单快速的模板引擎。进行模板元素替换时,速度是比text/template快10倍。
3056 PDF 文档生成器,支持文本,绘图和图片
42 Goview是一个轻量级、极简的模板库,基于golang html/template构建Go web应用程序。
1199 Hero是一个方便、快速和强大的go模板引擎。
580 Jet模板引擎。
70 一个用于HTML 和其他文本文件的模板系统,使用go语言实现
83 Go 语言实现的 Shopify Liquid 模板.
967 Go 语言实现的 Mustache 模板语言
1484 类似 DjanGo 的模板引擎
1393 快速、强大且易用的模板引擎。将模板转化为 Go 语言并进行编译
338 使用 Go 语言实现的完整的 handlebars
696 Go 语言的 Razor 视图引擎
144 Go 语言实现的谷歌闭包模板(也就是 Soy templates) ,遵循官方规范。
64 使用 Go 语言实现的完整的 handlebars

测试

用于测试代码库和生成测试数据的库。

  • Testing Frameworks
name star desc tag   
13 基础断言库,用于对 Go 语言程序进行测试,提供了一些用于自定义断言的代码块
9 Go 语言 testing/iotest 包的扩展。
643 表达性强、多功能的、端到端的HTTP API 测试工具
6 分支测试框架,BDD兼容。
26 监控目录中的文件并对其进行测试
188 为测试生成假接口实现的工具。
32 用于在windows、linux和osx上测试cli应用程序的工具。
83 测试框架的简单快照测试插件。
84 清空数据库用于测试,受到database_cleaner 的启发
25 用于SQL、NoSQL、结构化文件的数据存储测试。
91 声明性端到端功能测试。
1 HTTP客户端测试框架。
249 REST API测试框架。
- Go的BDD测试框架。
195 在终端中查看测试覆盖率的工具。
1132 用于比较测试中的Go值的包。
289 变异测试的Go源代码。
56 极具灵活性的golang深度比较,扩展了go测试包。
328 记录并回放HTTP交互,以便进行快速、确定和准确的测试。
616 类似Mocha的测试框架。
- 更加高级的测试框架,用于替换 Gotest
- BDD 风格的测试框架,具有 web 界面和计时刷新功能
8 用于 Go 断言的可组合的类似 hamcrest 的 matchers。
743 类似 Cucumber 或 Behat 的 BDD 框架
253 对 Go 语言的路由框架进行 API 测试
7 类似于 YATSPEC 的Go BDD测试框架。
30 为针对模式测试JSON而创建的库。
- 类似 Rspec 的 matcher/assertion 库
111 用于 Go 编程语言的bdd风格的测试框架。
51 支持 BDD 语法 。对于任何使用过 rspec 等库的人来说应该非常熟悉。
9 轻量级测试套,为 Go1.7's Subtests 带来了setup/teardown 功能
118 一组包,用于增强go测试包并支持公共模式。
26 用于声明性 Matcher 对象的连贯框架,当将其应用于输入值时,将产生自描述结果。
1137 简洁的、声明式的、易用的端到端HTTP 及 REST API 测试
21 用于验证JSON有效负载已正确序列化的包。
49 帮助编写 RESTful API 集成测试的 Go 语言微型框架.。
8 行为驱动开发的惯用测试框架。
321 类似 Rails 的测试工具,用于测试数据库应用
8037 对标准测试包的扩展。
- 将markdown代码段转换为可测试的go代码。
7 在测试前从SQL文件生成测试数据,并在测试完成后清除数据。
5 简单而丰富多彩的测试工具。
62 用于单元测试Websocket http.Handler的Websocket客户机。
  • Mock
name star desc tag   
357 用于生成自包含 mock 对象的工具
1713 Mock SQL ,用于测试数据库交互
158 基于单事务的数据库驱动,主要用于测试目的
806 多功能、易用 HTTP mock
2795 用于Go编程语言的mock框架。
82 HTTP mock : 离线测试时记录和重放浏览器的动作
1431 使用可扩展中间件和易于使用的CLI记录和模拟REST/SOAP api的HTTP(S)代理。
574 轻松模拟来自外部资源的HTTP响应。
253 Go接口的模拟生成器。
22 Go http.ResponseWriter的模拟对象。
  • Fuzzing and delta-debugging/reducing/shrinking.
name star desc tag   
2862 随机测试系统。
529 用于生成随机值来初始化 Go 语言对象的库
211 通用模糊测试框架
  • Selenium and browser control tools.
name star desc tag   
351 用于Chrome调试协议的类型安全绑定,可与实现该协议的浏览器或其他调试目标一起使用。
3507 用于驱动和测试 Chrome, Safari, Edge, Android Webviews, 以及其他支持 Chrome 调试协议的产品
208 一个轻量级服务器,可以将 Selenium Wedriver 的请求路由或代理到多个 Selenium hubs
1214 Selenium hub 服务器的替代品,在容器中启动浏览器
  • Fail injection
name star desc tag   
381 为Golang实现failpoints。

文本处理

用于解析和操作文本的库。

  • Specific Formats
name star desc tag   
57 对文本进行对齐的通用应用程序。
34 用于CLI工具和机器人的占位符和通配符文本解析。
5 将bbCode转换为HTML,使您可以添加对自定义bbCode标记的支持。
3865 Markdown 解析器
1234 HTML 清理工具
7 解析缩进代码(python、pixy、scarlet等)并返回树结构。
8267 快速和优雅的 Scraping 框架。
550 一组用于Go的公共正则表达式。
286 Web抓取框架将网站转换为结构化数据。
23 DID(分散标识符)解析器和Stringer。
4 文档对象标识符(doi)解析器。
37 Editorconfig文件解析器和Go操作器。
7 libenca的最小cgo绑定。
3 软件包为编码器和解码器提供了通用接口。
50 将正则表达式计数并展开为所有匹配的字符串。
- GitHub 风格的 Markdown 渲染器 (使用 blackfriday) ,支持代码块高亮以及可点击的锚点
25 固定宽度的文本格式(带反射的编码器/解码器)。
1884 格式化程序,用于将时间、数字和内存大小转换为可读格式。
94 用于Go语言的NMEA解析器库。
210 函数获取字符或字符串的固定宽度。
28 生成漂亮的固定链接地址(slug),支持多种语言
604 使用带有查询支持和方便的cli工具的TOML格式库。
24 解析和格式化vCard。
41 用于Go的零宽度字符检测和删除。
1092 在Go中解析RSS和Atom feeds。
292 解析Graphviz DOT语言。
- 格式化二进制为字符串。
29 将人名解析为单独的名称部分。
145 声明式 HTML 编组,使用结构标签和 jQuery 语法 (使用 GoQuery).
7520 GoQuery 为 Go 语言带来了一组类似 jQuery 的语法和功能
35 根据正则表达式生成随机字符串
229 GNU gettext 工具
44 通过一个 unicode 文本来猜测该文本使用的语言
127 用于HTML的XPath查询包,允许您通过XPath表达式从HTML文档中提取数据或求值。
1133 包注入提供了一个基于反射的注入器。
2
328 将XML编码/解码为JSON或map[string]接口{};使用点符号路径和通配符提取值。替换x2j和j2x包。
69 SDP:会话描述协议[RFC 4566]。
1967 Shell解析器和格式化工具。
367 URL 友好的 slug 化工具,支持多种语言
26 字符串 slug 化的工具。
5 Atom 1.0和RSS 2.0的联合提要。
2756 TOML配置格式(带反射的编码器/解码器)。
  • Utility
name star desc tag   
15 一个基于 sanitization 的 Go 敏感词过滤器。
199 使用 Go 语言简单、美观的打印表格数据
12 通用大小写转换工具
6 字符串参数解析器,能够理解引用及反斜杠。
31 URL路径分割解析。
144 快速字符串排序算法。
- 从给定源生成一组标记。
3 关于键盘布局的其他建议。
17 将xml或json转换为struct。
458 从文本中提取url。

第三方api

用于访问第三方api的库。

name star desc tag   
39
985 Twitter 1.1 API 的 go 语言客户端
4996 AWS 提供的官方go语言 SDK
16 用于访问 BreweryDB API的 Go 语言库
66
41 CircleCI的API的客户端
57 Clarifai API的客户端。
14 Codeship API v2的客户端。
12 Coinpaprika API的客户端。
960 Discord Chat API的客户端。
166 Ethereum JSON RPC API的客户端。
765 支持 Facebook Graph API 的库
32 Firebase Cloud Messaging 的 Go 语言库
43 Google Adwords 非官方 API
26 Asterisk Manager Interface 的 Go 语言库
29 Google Cloud Messaging 库
305 Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs.
4734 访问GitHub REST API v3的库。
500 访问GitHub GraphQL API v4的库。
3 用于与Chronos作业调度程序进行交互的Go库
9 HackerNews API的小型Go客户端。
13 Go imgur的客户端库
568 Go Atlassian JIRA的客户端库
189 用于和 Mesosphere's Marathon PAAS 交互的 Go 语言库
16 MyAnimeList API的客户端库。
5 无任何依赖的Sophos UTM REST API客户端
8 SPTrans Olho Vivo API 的客户端。
- Telegraph 发布平台 API 客户端。
100 在Github上访问trends repository和developers的库。
17 Twitch v3 API 的客户端。
706 Twitter v1.1 api 的客户端。。
20 使用Unsplash.com API的客户端库。
38 xkcd API 的客户端。
29 Golyrics是一个从Wikia网站获取音乐歌词数据的Go库。
1 Go library MalShare API malshare.com
36 Go MusicBrainz WS2客户端库。
1909 为Go自动生成谷歌api。
12 简单的包装,方便的谷歌分析报告。
1763 谷歌云api Go 客户端库。
6
118 GoStorm是一个Go库,它实现了编写Storm spout和bolt所需的通信协议,这些协议用于与Storm shell通信。
110 这个项目为Hipchat API实现了一个golang客户端库。
113 一个用于通过XMPP与HipChat通信的golang包。
52
115 Medium的OAuth2 API 客户端。
57 用于访问Apache Mesos集群的客户端库。
713 用于Amazon S3兼容云存储的Minio Go库。
29 Mixpanel是一个库,用于跟踪事件并将Mixpanel概要文件更新从go应用程序发送到Mixpanel。
18 Go Patreon API库。
300 PayPal支付API的包装器。
1 Playlyfe Rest API Go SDK。
57 Go 包装的 Pushover API。
8 用于接入 statdns.com API 的库——RRDA API。通过HTTP协议进行 DNS查询。
19 一个用于通过 Shopify API 进行增删改查的 Go 语言库。
9 使用REST和用Go编写的V4签名的AWS S3库非常简单。
2393 Slack API。
10 对 Smite game API 的封装。
16 用于接入 Spotify WEB API 的 Go 语言库
14 用于与Steam服务器进行交互的库。
934 Stripe API 的 Go 语言客户端
14 textbelt.com txt messaging API 的go语言客户端。
12 能与themoviedb.org简易通信的golang包。
27 Go 在线翻译包。
100 Trello API的 Go 语言封装。
1 TripAdvisor API 的 Go 语言封装。
6 Tumblr v2 API 的 Go 语言封装。
35 运行时Robot v2 API 的 Go 语言封装和命令行客户端。
340 GitHub 和 Bitbucket 的Webhook接收器。
47 wit.ai HTTP API 客户端。
12 YNAB API 的 Go 语言封装。
5 Zooz API 的 Go 语言客户端。

公用事业公司

可以让你的生活变得更简单的实用工具.。

.envio.Reader

UUID

用于处理uuid的库。

name star desc tag   
20 生成和解析RFC4122兼容的V4 uuid。
3 一个小而有效的Go唯一字符串ID生成器。
14 使用嵌入元数据的紧凑、可排序和快速的惟一id。
1665 实现了ULID(普遍唯一的词典分类标识符)。
- 没有麻烦,安全,快速的唯一标识符与命令。
10 使用快速或加密质量的随机节点标识符生成、编码和解码UUIDs v1。
562 通用唯一标识符(UUID)的实现。支持uuid的创建和解析。积极维护satori uuid的fork。
283 一个非常快的唯一数字生成器,比UUID快10-135倍。

验证

库进行验证。

name star desc tag   
44 提供校验数字算法(Luhn, Verhoeff, Damm)和计算器(ISBN, EAN, JAN, UPC等)。
3525 用于字符串,数字,切片和结构的验证器和sanitizers。
711 用简单的规则验证Golang请求数据。深受Laravel请求验证的启发。
21 jio是一个json模式验证器,类似于joi。
1027 支持各种数据类型(结构、字符串、映射、片等)的验证,使用可配置和可扩展的验证规则,这些规则在通常的代码构造中指定,而不是在结构标签中指定。
92 Go 封装数据验证和过滤。支持验证映射、结构、请求(表单、JSON、url)。值,上载文件)数据和更多特性。
19 这个包提供了一个框架,用于为Go应用程序编写验证。
3456 Go 结构体及域验证,包括:跨域、跨结构体, Map, 切片和数组。

版本控制

用于版本控制的库。

name star desc tag   
69 用于GitHub webhook的可编写脚本的服务器和net/http中间件。
1353 libgit2 的 Go 语言接口。
4171 纯Go中高度可扩展的Git实现。
69 在Go中操作和检查VCS存储库。
519 从Git存储库历史中获得高级见解。
12 Hgo是一组Go包的集合,提供对本地Mercurial存储库的读取访问。

视频

用于操作视频的库。

name star desc tag   
523 FFmpeg av* 库的 Go 语言接口。
164 使用 Go 语言操作字幕(.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.)。
256 在GO中解析和演示MPEG传输流(.ts)。
36 苹果m3u8播放列表的解析器和生成器库。
771 FFmpeg的Comphrensive。
152 GStreamer的Go工具。
11 字幕格式支持 .srt、.ttml和.ass。
62 Go绑定libvlc 2.X/3.X/4。X(由VLC媒体播放器使用)。
27 用于Linux的视频捕捉库,用Go编写。

Web框架

全栈 web 框架。

name star desc tag   
- 可伸缩、高性能、快速开发的Go Web框架。
157 高性能的Go web框架,在Lighthouse中达到最高分。
328 一个理想的精细化的Go web框架。
7 非常简单和快速的网络框架 Go 。
21346 beego是一种用于 Go 编程语言的开源高性能web框架。
- 为 Go 语言带来堪比 Rails 的高生产效率!
14570 高性能、极简的Go web框架。
48 感觉更加自然的 web 框架。
153 简单快速的web框架,对REST API友好。
29534 Gin是一个用Go编写的web框架!它具有一个类似于martini的API,性能更好,速度快40倍。
2834 《纽约时报》使用的微服务工具包。
3328 设置RESTful JSON API的快速简便方法。
116 小型的 REST 框架。
3495 Goa为在Go中开发远程api和微服务提供了一种全面的方法。
71 一个非Sinatra快速HTTP框架,支持谷歌自定义方法、深度拦截器、递归等。
235 Golf 是一个快速、简单、轻量级的 Go 语言微型 web 框架。具有强大的功能且没有标准库以外的依赖。
314 web框架写的网站越快越好。
415 快速 Go web 框架,支持输入映射/验证以及依赖注入。
85 hiboot是一个高性能的web应用程序框架,支持自动配置和依赖注入。
2803 Macaron 是一个高效的模块化设计的web框架
339 ManGo 是一个模块化 web 应用框架,受到 Rack 和 PEP333 的启发。
56 创建微服务的框架,用Golang编写。
392 Neo是一个非常简单且快速的Web框架API。
21 现代的、最小的和高效的Go HTTP框架。
33 Patron是一个遵循最佳云实践的微服务框架,专注于提升开发效率。
29 用于快速编写基于资源的服务的REST框架。
- 框架,用于在数据库之上构建REST/GraphQL API,主要是通过代码进行配置。
11222 用于Go语言的高效web框架。
25 Rex 是一个用于进行模块化开发的库,基于Gorilla/mux 完全兼容大多数的 net/HTTP.
2 轻量级、开源的web框架,用于构建高性能、数据驱动的web应用程序。
817 微型的、支持插件的 web 框架。
994 用于构建 JSON web 服务的 Go 语言框架,受到 Dropwizard 的启发。
519 Sinatra启发了regexp/pattern mux和用于Go的web框架。
50 受到 Sinatra 启发的 Go 语言 web 框架。
2134 Go(Golang)的轻量级MVC框架。
39 一个面向人类的golang web框架,深受Koa的启发。
73 构建web应用程序的微框架;处理程序链接、中间件和上下文注入。与标准库兼容的HTTP处理程序(即http.HandlerFunc)。
50 快速微框架,旨在以快速和简单的方式构建REST api和web服务。
- Zerver是一个表现力强、模块化、功能完备的RESTful框架。

中间件

仿真中间件

name star desc tag   
13 用于服务器定时报头的HTTP客户机。
1207 轻松地向API添加CORS功能。
33 透明地将JSON输入作为标准表单POST处理。
743 添加/解析Server-Timing头。
785 简单的速度限制中间件。
88 使用Lightning Network(比特币)实现基于每个请求的api货币化中间件。
1238 限制速率的 HTTP 请求处理程序。
72 处理 X-Forwarded-For 头的中间件。

用于创建HTTP中间件的库

name star desc tag   
1822 用于连接中间件的库,简单无痛苦。
7 HTTP.Handler wrapper catenation (和chain具有相同的 API ).。
63 带有范围数据的处理程序包装器链接(基于网络/上下文的“中间件”)。
59 net/http的小型中间件包。
81 处理HTML、JSON、XML等响应的Go包。对于RESTful api非常有用。
289 golang的极简网络/http中间件。
208 用于net/http的轻量级中间件。
6310 符合语言习惯的 HTTP 中间件库。
1265 Go package用于方便地呈现JSON、XML和HTML模板响应。
168 简单、轻量级和更快的响应(JSON、JSONP、XML、YAML、HTML、文件)。
93 支持JWT、CORS、Statsd和Go 1.7上下文的小型Go中间件库(带有罐装中间件)。
536 使用中间件来存储关于web应用程序的各种信息。

路由器

httprouterfasthttp

Windows

name star desc tag   
85 Direct3D9 的 Go 语言接口。
550 为 Go 语言实现的 Win32 OLE。
1 从SDDL-string到用户友好的JSON的转换器。SDDL由四个部分组成:所有者、主群、DACL、SACL。

XML

用于操作XML的库和工具。

name star desc tag   
16 简单的命令行XML比较器,生成文件夹、文件和标记的差异。
15 XML来映射转换器编写的Golang。
6 基于libxml2的xmlwriter模块的过程性XML生成API。
161 Go的XPath包。
145 XQuery允许您使用XPath表达式从HTML/XML文档中提取数据。
252 从XML生成Go结构。
工具
  • Go 软件和插件。*

代码分析

name star desc tag   
165 检查 Go 项目最近的向下不兼容修改。
171 用于代码克隆检测的工具。
1319 Errcheck是一个用于检查Go程序中未检查错误的程序。
916 实时可视化跟踪 GC 数据。
95 checkstyle是一个类似于java checkstyle的检查工具。
280 go-cleanarch 的创建是为了验证 Clean 体系结构规则,比如 Go 项目中的依赖关系。
570 源代码检查工具。
181 找出项目中过期的依赖项。
45 显示过期包的终端应用。
370 基于 Web 的 Golang AST 可视化工具。
- GoCover.io 提供了任意 golang 包的代码覆盖率服务。
- 来修复(添加,删除) Go 中自动导入的工具。
- GolangCI 是一个针对 GitHub pull 请求的自动代码审查服务。服务是开源的,对开源项目是免费的。
3134 Go 源码的 linter。
- Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
- 添加 zero 返回声明,以匹配 func 返回类型。
- gosimple 是 Go 源代码的linter,专门用于简化代码。
241 用于显示包含 Go 包的存储库的状态的命令行工具,。
63 将 linters 作为测试的一部分。
631 用 Go 编写的 PHP 解析器。
- 用于大量静态分析检查,您可能已经从 c# 的 ReSharper 等工具中习惯了这些检查。
14 在源码中寻找没有直接单元测试的函数和方法。
257 在源码中删除不必要的类型转换。
- 对未使用的常量、变量、函数和类型的代码进行检查。
62 使用 tags 自动验证结构体字段。

编辑器插件

name star desc tag   
- JetBrains IDEs 的 Go 插件。
29 A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol.
945 在 GNU/Emacs 支持 GO。
1480 在 Atom 中添加自动完成,格式化,语法检查,高亮和审查。
4731 Autocompletion daemon for the Go programming language.
- 在 VS Code 中支持 Go 的基准分析。
3231 包含了可为文本编辑器 SublimeText 3 提供代码自动填充和其他类似IDE的功能的 Golang IDE 插件集合。
17 基于函数或方法的签名生成Go测试的Vim插件。
12 在 Theia IDE中支持 Go。
16 acme编辑器的IRC客户端。
80 在保存时突出显示语法错误的 Vim 插件。
10771 Go 开发会用到的 Vim 插件。
5091 Visual Studio代码的扩展(VS代码),它提供了对Go语言的支持。
166 Runs a command in an acme win on file changes.

Go 生成工具

name star desc tag   
27 灵活的 Go 数据类型。
944 优雅的 Go 泛型。
52 通过同步代码和文档来实现 design-by-contract 设计。
- Go中的易用的泛型。
2173 从源代码生成测试用例。
28 使用您自己的模板生成Go测试用例。
12 可生成用于切片的 Haskell。
168 将正则表达式转换为有限状态机,并输出 Go 源代码。
- 在浏览器中将 TOML 转换为 Go 类型。

Go 工具

name star desc tag   
96 将 go 命令包装成彩色的 go build 输出。
373 通过分析导入,将包依赖关系树可视化输出。
- 一个基于项目的易用的构建工具。
13 一个Yeoman生成器,用于启动新的 Go 项目。
- 一个为 Go 项目而生的构建系统和任务运行器。
1980 使用 dot format 可视化 Go 程序的调用图。
37 Bash completion for go and wgo。
3928 基于 Go 的Swagger 2.0实现。
156 实现了 Rusts 的 dbg! 宏,可以方便的在开发过程中快速、容易地调试。
3740 借助的 OctoLinker 浏览器扩展,可以高效的地浏览 GitHub go文件。
386 用文本装饰丰富 go test 的输出。
184 从服务器响应生成Go结构。

软件包

用Go编写的软件。

DevOps 工具

ProxyCommand

其他软件

name star desc tag   
- 基于终端的bash代码段搜索引擎。
72 基于Dropbox的博客引擎。
193 微型网络聊天服务器。
1786 Circuit 是一个可编程平台即服务(PaaS)和/或基础设施即服务(IaaS),用于管理、发现、同步和编排包含云应用程序的服务和主机。
6166 模拟坏的网络连接。
6395 使用 etcd 或 consul 的模板和数据管理本地应用程序配置文件。
97 个人 DDNS 客户端。
- 面向开发人员和系统管理员的分布式应用程序的开放平台。
816 集成了SaaS工具数据的现代wiki软件。
4944 基于命令行的谷歌驱动器客户端。
2679 跨平台网络和云备份工具。
495 通过WebRTC在两台计算机之间安全地传输文件,不需要任何第三方依赖。
877 App that displays updates for the Go packages in your GOPATH.
375 视频流 torrent 客户端。
2097 用 Go 编写的任天堂Game Boy彩色模拟器。
342 Gocc是一个用Go编写的编译器工具包。
423 一个动态DNS客户端工具,支持DNSPod & HE.net。
12 包含了 Go 使用手册文档的 Chrome 扩展。
- 功能齐全的跨平台 Go IDE。
- Http 流量复制工具,用于实时回放从生产环境到阶段/开发环境的流量。
- 快速、现代的静态网站引擎。
249 基于浏览器的IDE
275 Open source Pusher server implementation compatible with Pusher client libraries written in GO.
122 用于合并多个pcap文件的命令行实用程序。
- Cloud-agnostic的服务部署和编制 —— 支持EC2、Azure、Openstack、MAAS等。
640 使用操作转换的成对编程服务。
1796 与 Jupyter 可进行交互 Go 程序。它支持代码完成、代码检查以及与Go 100% 兼容性。
- 一个强大而优雅的文本编辑器。
5458 简单的、开源的、跨平台的Go IDE。
414 一份配置文件中便可伪造HTTP服务器与用户之间的行为。您还可以使服务器随机宕机,以帮助进行更实际的性能测试。
2195 命令行网络诊断工具。
20 基于加密管的简单的NaCL EC25519工具。
4126 任天堂娱乐系统(NES)模拟器。
- 用Go编写的Markdown预览器。
128 一个根据模板来运行命令和生成文件的简单小工具。
603 解析表达式语法,是Packrat解析器生成器的实现。
2857 一个小巧漂亮的博客平台。
7383 消除重复项备份程序。
- 一个应用容器,与其他容器格式(如Docker)兼容,并支持其他执行引擎(如KVM)。
768 一个非常快速准确的代码计数器,采用了复杂的计算和 COCOMO 预估。
8165 快速、简单、可伸缩的分布式文件系统,采用了O(1)磁盘查找。
401 通过http服务器执行shell命令(用于原型或远程控制)。
1805 强大的遥测框架。
15 当有人通过 Tsuru 部署任何应用程序时,会通知您的团队以及其他工具。
1987 Stack Up 是一个超级简单的部署工具 — 只面向Unix。
- 开放,分散的文件同步工具和协议。
17 测试你的终端。
3917 为自动化测试模拟网络和系统条件的代理。
- Extensible and open source Platform as a Service software.
594 高性能、可伸缩和可靠的 IPFIX、sFlow和 Netflow 收集器。
289 Sass 项目管理工具,使用sprite函数(如Compass)扩展语言。
资源

在哪里可以找到新的Go库。

基准

name star desc tag   
89 用来来比较不同Go版本之间的性能的框架。
19 强大的HTTP基准测试工具,包含了Аb,Wrk,Siege工具。收集统计和各种参数指标,并比较相关结果。
121 Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches
1257 HTTP请求路由器基准测试和比较。
989 web框架基准测试。
859 Go序列化方法的基准测试。
- Go语言常用基本操作的基准测试。
17 Go 基础操作的基准测试集合。其目的是将一些语言特性与其他特性进行比较。
48 为流行的 Go 数据库/SQL实用程序收集基准测试。
93 计算语言结构的速度的微观基准测试。
14 K / V 类型数据库基准测试。
913 天网 1M 线程微基准测试。
172 对比各种图像大小调整算法性能。

会议

E-Books

Gophers

聚会

在这里添加您所在城市/国家的群组(发送PR)

Twitter

网站

教程