docs | ||
LICENSE | ||
MAINTAINERS | ||
README.md |
Awesome Go
此项目是 awesome-go 中文版,最后一次同步时间 : 2019-07-29 10:26:36(每隔1天同步一次)
⭐项目地址 : yinggaozhen/awesome-go-cn⭐
精选了一系列很棒的Go框架、库和软件。灵感来自于awesome-python。
小图标说明 :
小图标 | 说明 |
---|---|
star数量 > 5000 的项目 | |
star数量 > 1000 的项目 | |
star数量 > 100 的项目 | |
最近一周有更新。可以基本判断当前库处于积极维护状态。 | |
最近一年没有更新。反应了此库的维护积极性不高,使用时需谨慎。 | |
此项目有中文文档。 |
贡献
你可以快速浏览贡献者名单contribution guidelines. 感觉所有为此项目付出的同学contributors; 你真棒!
如果您在看到一个包或项目不再维护或不适合,请往awesome-go提交Pull Request,本项目每隔一天与英文文档同步。感谢!
内容
-
- 音频和音乐
- 身份验证和OAuth
- Bot建设
- 命令行
- 配置
- 持续集成
- CSS预处理器
- 数据结构
- 数据库
- 数据库驱动程序
- 日期和时间
- 分布式系统
- 电子邮件
- 可嵌入的脚本语言
- 错误处理
- 文件
- 金融
- 表单
- 方法
- 游戏开发
- 代码生成与泛型
- 地理
- Go 编译器
- Goroutines
- GUI
- 硬件
- 图片
- 物联网
- 作业调度器
- JSON
- 日志记录
- 机器学习
- 消息
- 微软办公软件
- 杂项
- 自然语言处理
- 网络
- OpenGL
- ORM
- 包管理
- 查询语言
- 嵌入的资源
- 科学与数据分析
- 安全
- 序列化
- 模板引擎
- 测试
- 文本处理
- Third-party APIs
- 公用事业公司
- UUID
- 验证
- 版本控制
- 视频
- Web框架
- Windows
- XML
音频和音乐
用于操作音频的库。
name | star | desc | tag |
---|---|---|---|
EasyMIDI | 22 | EasyMidi是一个简单可靠的库,用于处理标准midi文件(SMF)。 | |
flac | 83 | 原生 Go FLAC解码器,将FLAC文件解码为字节片。 | |
flac | 101 | 原生 Go FLAC编码器/解码器,支持FLAC流。 | |
gaad | 57 | 原生 Go AAC位流解析器。 | |
go-sox | 93 | libsox 的 Go 语言实现接口。 | |
go_mediainfo | 24 | libmediainfo 的 Go 语言实现接口。 | |
gosamplerate | 8 | libsamplerate 的 Go 语言实现接口。 | |
id3v2 | 108 | 快速稳定的 ID3 解析及写入Go库。 | |
malgo | 70 | 迷你音频库。 | |
minimp3 | 25 | 轻量级MP3解码器库。 | |
mix | 98 | 基于序列的 Go 原生音乐混音器。 | |
mp3 | 89 | 原生 Go MP3解码器。 | |
music-theory | 253 | 基于 Go 的音乐理论模型。 | |
Oto | 429 | 多平台的 low-level 声音播放库。 | |
PortAudio | 300 | 基于 Go 的PortAudio audio I/O库。 | |
portmidi | 205 | PortMidi的 Go 语言实现接口。。 | |
taglib | 66 | taglib 的 Go 语言实现接口。。 | |
vorbis | 22 | “原生” Go Vorbis解码器(使用CGO,但没有依赖关系)。 | |
waveform | 248 | 通过音频流生成波形图像的包。 |
身份验证和OAuth
用于实现验证方案的库。
name | star | desc | tag |
---|---|---|---|
authboss | 1920 | web模块化认证系统。它试图删除尽可能多的模板文件和硬编码,以便每次新建一个新的web项目时,您都可以插入、配置并开始构建您的应用程序,而不必每次都构建一个身份验证系统。 | |
branca | 76 | 基于 Go 实现Branca令牌。 | |
casbin | 4877 | 支持ACL、RBAC、ABAC等访问控制模型的授权库。 | |
cookiestxt | 2 | 提供cookie .txt文件格式的解析器。 | |
go-jose | 1117 | 相当完整地实现了JOSE工作组的JSON Web令牌、JSON Web签名和JSON Web加密规范。 | |
go-oauth2-server | 1272 | 用 Golang 编写的独立且符合规范的OAuth2服务器。 | |
gologin | 1037 | 用于使用OAuth1和OAuth2身份验证提供者登录的可链处理程序。 | |
gorbac | 904 | 轻量级的基于角色的访问控制(RBAC)实现。 | |
goth | 2254 | 提供了 OAuth 和 OAuth2 的简单清晰易用的方法。可开箱即用处理多个提供程序。 | |
httpauth | 178 | HTTP身份验证中间件。 | |
jwt | 69 | 简单易用的JSON Web令牌实现(JWT)。 | |
jwt | 87 | 轻量级JSON Web令牌库。 | |
jwt-auth | 151 | JWT中间件,可用于Golang http服务器,提供了许多配置选项。 | |
jwt-go | 5908 | JSON Web令牌(JWT)。 | |
loginsrv | 807 | JWT登录微服务带有可插拔的后端服务,如OAuth2 (Github)、htpasswd、osiam。 | |
oauth2 | 2368 | goauth2的继任者。通用OAuth 2.0包,附带JWT、谷歌api、计算引擎和应用程序引擎支持。 | |
osin | 1536 | OAuth2服务器库。 | |
paseto | 237 | 平台无关的安全令牌(PASETO)。 | |
permissions2 | 352 | 用于跟踪用户、登录状态和权限的库。依赖于cookie安全和bcrypt。 | |
rbac | 27 | 最小的RBAC包。 | |
scs | 523 | HTTP服务器的会话管理器。 | |
securecookie | 32 | 高效安全的cookie编码/解码。 | |
session | 89 | web服务器会话管理(包括支持谷歌应用程序引擎 - GAE)。 | |
sessiongate-go | 8 | 使用SessionGate Redis模块进行会话管理。 | |
sessions | 47 | 非常简单,高性能,可深度定制的会话服务,主要用于的 go http 服务器。 | |
signedvalue | 7 | 与Tornado's 完全兼容的签名和时间戳字符串实现. create_signed_value ', ' decode_signed_value ',因此' set_secure_cookie '和' get_secure_cookie '。 | |
sjwt | 31 | 简单的jwt生成器和解析器。 |
Bot建设
用于构建和使用机器人的库。
name | star | desc | tag |
---|---|---|---|
go-chat-bot | 466 | 用 Go 编写的IRC, Slack和电报机器人。 | |
go-sarah | 136 | 此框架提供了聊天机器人相关的服务,包括LINE、Slack、Gitter等。 | |
go-tgbot | 85 | 由swagger文件、基于会话的路由器和中间件生成的纯Golang Telegram Bot API包装器。 | |
Golang CryptoTrading Bot | 217 | 基于控制台的,用于加密货币交易所的的交易机器人。 | |
govkbot | 24 | 简单的Go VK bot库。 | |
hanu | 108 | 用于编写Slack机器人的框架。 | |
Kelp | 156 | 官方交易和做市机器人为Stellar DEX。开箱即用的作品,用 Golang 编写,兼容集中交易和定制交易策略。 | |
margelet | 56 | 构建电报机器人的框架。 | |
micha | 10 | 基于 GO 实现的Telegram 机器人API库。 | |
slacker | 304 | 可简单创建Slack机器人的框架。 | |
slackscot | 10 | 另一个构建Slack机器人的框架。 | |
tbot | 216 | 带有类似于net/http API的Telegram bot服务器。 | |
telebot | 943 | 用Go编写的Telegram bot框架。 | |
telegram-bot-api | 1614 | 简单轻量级的Telegram bot客户端。 | |
Tenyks | 167 | 面向服务的IRC bot,使用Redis和JSON进行消息传递。 |
命令行
标准CLI
用于构建标准或基本命令行应用程序的库。
name | star | desc | tag |
---|---|---|---|
argparse | 104 | 命令行参数分析器,灵感来自Python的argparse模块。 | |
argv | 17 | 基于Base 语法,用于分隔命令行字符串并将其作为参数的 Go 语言库, | |
cli | 473 | 基于golang结构标签,功能丰富易于使用的命令行包。 | |
cli | 57 | 为 Go 构建命令接口提供简单而完整的API。 | |
cli-init | 868 | 一个简单就可开启构建Golang命令行的应用程序。 | |
climax | - | Alternative CLI with "human face", in spirit of Go command. | |
cmdr | 12 | 一个POSIX/GNU风格的、类似getopt的命令行UI Go库。 | |
cobra | 13125 | 现代Go CLI命令行交互工具。 | |
commandeer | 89 | 开发友好的CLI应用程序。 | |
complete | 610 | 使用 Go 语言编写的 bash 命令补全工具以及 Go 命令补全工具. | |
docopt.go | 1172 | 会让你满意的命令行参数解析器。 | |
env | 42 | 基于标记的结构化的环境配置。 | |
flag | 100 | 简单但功能强大的命令行选项解析库,用于支持Go子命令。 | |
flaggy | 446 | 一个健壮的、易用的标志包,具有出色的子命令支持。 | |
flagvar | 31 | 符合 Go 标准的“flag”标志参数类型包。 | |
go-arg | 654 | 基于结构的参数解析。 | |
go-commander | 15 | 用于简化CLI工作流的 Go 库。 | |
go-flags | 1502 | Go 命令行选项解析器。 | |
go-getoptions | 7 | Go 选择解析器,借鉴于Perl灵活性的GetOpt::Long。 | |
gocmd | 33 | 用于构建命令行应用程序。 | |
hiboot cli | - | 具有自动配置和依赖注入的cli应用程序框架。 | |
job | 49 | 工作,把你的短期指令当作长期任务。 | |
kingpin | 2523 | 支持子命令的命令行和标志解析器。 | |
liner | 580 | 类似readline-like的命令行接口库。 | |
mitchellh/cli | 994 | 用于实现命令行接口的Go库。 | |
mow.cli | 620 | 用于构建具有复杂标志和参数解析和验证的CLI应用程序。 | |
ops | 260 | Unikernel 构建器/协调器。 | |
pflag | 747 | 基于POSIX/GNU-style --flags实现的包,主要用于替换Go的falg包。 | |
readline | 1363 | 纯golang实现,在MIT许可下提供了GNU-Readline的大部分特性。 | |
sand | 5 | 用于创建解释器等的简单API。 | |
sflags | 88 | 基于结构的flag生成器,用于flag、urfave/cli、pflag、cobra、kingpin和其他库。 | |
strumt | 27 | 用于创建提示链。 | |
ts | 4 | 时间戳转换和比较工具。 | |
ukautz/clif | 97 | 简小的命令行接口框架。 | |
urfave/cli | 11297 | 可让你简单、快速和愉快的构建命令行应用(之前是codegangsta/cli)。 | |
wlog | 35 | 支持跨平台和并发的简单日志记录接口。 | |
wmenu | 84 | 为cli程序提供了简单上手的菜单,可提示用户作出选择。 |
高级控制台用户界面
用于构建控制台应用程序和控制台用户界面的库。
name | star | desc | tag |
---|---|---|---|
asciigraph | 1132 | 在命令行中构建轻量级ASCII线图╭┈╯,应用程序中没有其他依赖项。 | |
aurora | 625 | 支持fmt.Printf/Sprintf的ANSI终端颜色。 | |
cfmt | 67 | 提供上下文的fmt,灵感来自于bootstrap color classes。 | |
chalk | 304 | 美化终端/控制台输出。 | |
color | 3005 | 多功能包装,彩色终端输出。 | |
colourize | 16 | 在终端提供ANSI彩色文本。 | |
ctc | 9 | 不需要Print方法的非侵入性跨平台终端颜色库。 | |
go-ataman | 8 | 在终端提供ANSI彩色文本模板。 | |
go-colorable | 373 | 适用于windows的颜色编写器。 | |
go-colortext | 197 | 在终端中使用彩色文字。 | |
go-isatty | 343 | Go 实现的 isatty。 | |
go-prompt | 2311 | 构建一个强大的交互式提示,借鉴于python-prompt-toolkit | |
gocui | 5304 | 旨在创建控制台用户界面的极简Go库。 | |
gommon/color | - | 更换终端文本样式。 | |
gookit/color | 199 | 终端显色工具库,支持16种颜色,256种颜色,RGB显色输出,兼容Windows。 | |
mpb | 633 | 可在终端显示多进度条。 | |
progressbar | 565 | 基本线程安全的进度条,在每个操作系统工作。 | |
simpletable | 158 | 可在终端显示简易表格。 | |
tabby | 246 | 一个可在终端生成一个极简Golang表格轻量级库 | |
tabular | 29 | 不需要向API传递大量参数就可从命令行实用程序中打印ASCII表。 | |
termbox-go | 3465 | 基于文本的跨平台接口库。 | |
termdash | 802 | 此库是基于termbox-go实现的,借鉴于termui。 | |
termtables | 212 | 使用Ruby库terminal-tables的端口生成简单的ASCII表,并提供标记和HTML输出。 | |
termui | 8883 | 此库是基于termbox-go实现的,借鉴于blessed-contrib。 | |
uilive | 828 | 用于实时更新终端输出的库。 | |
uiprogress | 1532 | 在终端呈现进度条,可灵活配置的。 | |
uitable | 501 | 改善终端应用程序中表格数据的可读性。 |
配置
配置解析的库。
name | star | desc | tag |
---|---|---|---|
config | 189 | 云本地应用程序配置。将ENV绑定到结构体仅需两行代码。 | |
config | 210 | 带有环境变量和标记解析的JSON或YAML配置包装器。 | |
configure | 48 | 通过多个源提供配置,包括JSON、flags和环境变量。 | |
confita | 235 | 从多个后端级联加载配置到struct中。 | |
conflate | 8 | 合并来自任意url的多个JSON/YAML/TOML文件、针对JSON模式的验证以及模式中定义的默认值的应用程序。 | |
env | 857 | 解析环境变量并赋值到struct中(默认值)。 | |
envcfg | 89 | 对环境变量进行解析,并赋值到struct。 | |
envconf | 7 | 从环境配置中读取配置。 | |
envconfig | 145 | 从环境变量中读取配置。 | |
envh | 92 | 协助管理环境变量的Helpers。 | |
gcfg | 116 | 将ini的配置文件读入 Go structs中;支持用户定义的类型和子选项。 | |
go-up | 24 | 一个简单的配置库,具有递归占位符解析功能。 | |
goConfig | 107 | 将结构体解析为输入,并用来自命令行、环境变量和配置文件的参数填充该结构体的字段。 | |
godotenv | 2104 | Ruby 的 dotenv 库的 Go移植版(从.env文件加载环境变量)。 | |
gofigure | 57 | 让程序配置变得简单。 | |
gone/jconf | - | 模块化的JSON配置。保持配置结构及其配置的代码,并将解析委托给子模块,而不牺牲配置的完整序列化。 | |
gookit/config | 80 | 程序配置管理(load,get,set)。支持JSON, YAML, TOML, INI, HCL。支持多文件加载,数据覆盖合并。 | |
harvester | 39 | 一个易于使用的静态和动态配置包 | |
hjson | 171 | 更加人性化的JSON配置。轻松的语法,更少的错误,更多的注释。 | |
ingo | 24 | flag保存在类ini的配置文件中。 | |
ini | 1581 | 读和写INI文件。 | |
joshbetz/config | 193 | 一个可解析环境变量、JSON文件小巧的配置库,在SIGHUP时会自动重新加载。 | |
kelseyhightower/envconfig | 2396 | 管理来自环境变量的配置数据。 | |
koanf | 81 | 轻量级可扩展库,用于读取Go应用程序中的配置。内置支持JSON, TOML, YAML, env,命令行。 | |
konfig | 512 | 可组合、可观察和高性能的分布式配置管理。 | |
mini | 19 | 用于解析ini类型的配置文件。 | |
sprbox | 3 | 支持构建环境的工具箱工厂和其他不确定的配置解析器(如YAML、TOML、JSON和环境vars)。 | |
store | 241 | 轻量级配置管理器。 | |
viper | 9223 | 配置管理。 | |
xdg | 34 | 遵循XDG标准的跨平台包。 |
持续集成
用于帮助进行持续集成的工具。
name | star | desc | tag |
---|---|---|---|
drone | 18915 | Drone 是一个基于 Docker 的持续集成平台,用 Go 编写。 | |
duci | 44 | 一个简单的 ci 服务。 | |
gomason | 29 | 在一个干净的工作区中对你的 Go 二进制文件进行测试、构建、签名和发布。 | |
goveralls | 577 | Coveralls.io 是一个用 Go 编写,可持续对代码覆盖率进行检测的系统。 | |
overalls | 98 | 针对多package 的 Go 语言项目,可为类似 goveralls 这样的工具生成覆盖率报告。 | |
roveralls | 12 | 递归覆盖测试工具。 |
CSS预处理器
用于预处理CSS文件的库。
name | star | desc | tag |
---|---|---|---|
gcss | 423 | 纯Go编写的 CSS 预处理器。 | |
go-libsass | 130 | 采用 Go封装,100% 与 Sass 兼容的 libsass 项目。 |
数据结构
用 Go 实现的通用的数据结构和算法。
name | star | desc | tag |
---|---|---|---|
algorithms | 237 | 算法和数据结构。来源于CLRS。 | |
binpacker | 123 | 帮助用户构建自定义二进制流的二进制封装器和解包器 | |
bit | 55 | Go 语言集合数据结构。提供了额外的位操作功能。 | |
bitset | 479 | 实现了 bitsets 的 Go 包。 | |
bloom | 128 | 在Go中实现了Bloom过滤器。 | |
bloom | 39 | Golang Bloom过滤器的实现。 | |
boomfilters | 1130 | 用于处理连续的概率数据结构。 | |
concurrent-writer | 23 | 具备高并发能力,可替换 bufio.Writer。 | |
conjungo | 76 | 一个小型、强大和灵活的合并库。 | |
count-min-log | 43 | Go实现Count-Min-log sketch的功能 : 使用近似计数器进行近似计数(类似Count-Min sketch,但使用更少内存)。 | |
crunch | 19 | 打包实现缓冲区,以便轻松处理各种数据类型。 | |
cuckoofilter | 509 | 布谷鸟过滤器:一个用Go实现,可替代计数 bloom 过滤器。 | |
deque | 6 | 高度优化的双端队列。 | |
deque | 62 | 快速环缓冲区deque(双端队列)。 | |
dict | 9 | 实现类似 python dict的功能(dict)。 | |
encoding | 94 | 整形压缩库。 | |
go-adaptive-radix-tree | 87 | 自适应基数树。 | |
go-datastructures | 5112 | 可靠的、高性能的和线程安全的数据结构的集合。 | |
go-ef | 11 | 实现了 Elias-Fano 编码。 | |
go-geoindex | 310 | 基于内存的地理索引。 | |
go-mcache | 34 | 基于内存的实现了高性能的key:value存储库。指针缓存。 | |
go-rquad | 99 | 区域四叉树具有高效的点定位和邻域查找功能。 | |
goconcurrentqueue | 26 | 并行FIFO队列。 | |
gods | 6255 | 数据结构。容器、集合、列表、堆栈、地图、BidiMaps、树、HashSet等。 | |
golang-set | 1154 | 线程安全和非线程安全的高性能集。 | |
goset | 16 | 一个有用的Go集合实现。 | |
goskiplist | 193 | 基于 Go 的跳表实现。 | |
gota | 868 | 实现了数据帧,序列以及数据噪音。 | |
hide | 7 | ID type with marshalling to/from hash to prevent sending IDs to clients. | |
hilbert | 180 | 用于映射空间填充曲线(例如 Hilbert 曲线和 Peano 曲线)和数值。 | |
hyperloglog | 660 | HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. | |
levenshtein | 32 | Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. | |
levenshtein | 55 | 实现在Go中计算levenshtein距离。 | |
mafsa | 273 | 实现了 MA-FSA ,包含最小完美哈希。 | |
merkletree | 144 | 实现了merkle树,提供了对数据结构内容的有效和安全的验证。 | |
mspm | 7 | 用于信息检索的多字符串模式匹配算法。 | |
null | 5 | 对空的 Go 数据类型也可以进行JSON进行解析/反解析。 | |
parsefields | 3 | 用于解析类似json的日志的工具,用于收集惟一的字段和事件。 | |
pipeline | 15 | 实现了 fan-in 和 fan-out 的管道功能。 | |
ptrie | - | 前缀树的一种实现。 | |
ring | 86 | 高性能、线程安全的bloom过滤器。 | |
roaring | 650 | 实现了压缩 bitsets 的Go包。 | |
set | 6 | 使用LinkedHashMap在Go中实现简单的set数据结构。 | |
skiplist | 99 | 高性能的 Go 跳表实现。 | |
skiplist | 64 | 在Go中实现了跳表。 | |
timedmap | 1 | 实现了有生命周期的键值对Map。 | |
treap | 7 | 使用树堆进行持久、快速有序的映射。 | |
trie | 418 | 在Go中实现Trie。 | |
ttlcache | 95 | 基于内存的LRU算法实现。 | |
typ | 9 | 从复杂结构中获取值,支持空类型、安全的类型转换。 | |
willf/bloom | 663 | 实现Bloom过滤器。 |
数据库
数据库。
name | star | desc | tag |
---|---|---|---|
badger | 6229 | 快速 K/V 存储。 | |
bcache | 27 | 基于内存的最终一致的分布式缓存。 | |
BigCache | 2436 | 高效的键/值缓存为千兆字节的数据。 | |
bolt | 9943 | K/V 数据库。 | |
buntdb | 2431 | 基于内存的K/V,快速,可嵌入的数据库,可自定义索引和空间支持。 | |
cache | 14 | 基于内存的 K/V 存储:带生命周期的值存储,0个依赖项,<100 LoC, 100%覆盖率。 | |
cache2go | 1004 | 基于内存的 K/V 缓存,支持超时的自动失效。 | |
clusteredBigCache | 29 | BigCache 支持集群和独立且生命周期存储项。 | |
cockroach | 16729 | 可伸缩、区域备份、事务性数据存储。 | |
couchcache | 40 | 由 Couchbase服务 支持的RESTful缓存微服务。 | |
CovenantSQL | 869 | 区块链领域的一个SQL数据库。 | |
dgraph | 10107 | 可伸缩、分布式、低延迟、高吞吐量的图形数据库。 | |
diskv | 745 | 支持磁盘备份的可持久化 K/V 存储。 | |
eliasdb | 531 | 无其他依赖项,支持REST API,短语搜索和sql类似的查询语言的事务图数据库。 | |
fastcache | 481 | 基于内存的快速线程安全的缓存,可缓存大量的条目。最大限度地减少GC开销。 | |
GCache | 889 | 支持过期缓存、LFU、LRU和ARC的缓存库。 | |
go-cache | 2867 | 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序。 | |
goleveldb | 3160 | 在Go中实现LevelDB key/value数据库。 | |
gorocksdb | 8 | 用 Go 对RocksDB实现了封装。 | |
groupcache | 7633 | Groupcache是一个缓存和缓存填充库,在许多情况下,它是memcached的替代品。 | |
influxdb | 17010 | 可伸缩的数据存储,用于指标衡量、事件和实时分析。 | |
ledisdb | 3065 | Ledisdb是一种高性能的NoSQL,类似于基于LevelDB的Redis。 | |
levigo | 364 | 实现了对LevelDB封装。 | |
moss | 715 | Moss是一个用100% Go编写的简单LSM键值存储引擎。 | |
nutsdb | 874 | Nutsdb是一个用纯Go编写的简单、快速、可嵌入、持久的键/值存储。它支持完全序列化的事务和许多数据结构,如列表、集合、排序集。 | |
piladb | 171 | 基于堆栈数据结构的轻量级RESTful数据库引擎。 | |
prometheus | 25379 | 用于监控系统和时序的数据库。 | |
pudge | 218 | 使用Go的标准库编写的快速和简单的键/值存储。 | |
rqlite | 4680 | 基于SQLite的轻量级分布式关系数据库。 | |
Scribble | 58 | 小型平面文件JSON存储。 | |
slowpoke | 86 | 具有持久性的键值存储。 | |
tempdb | 13 | 用于临时数据存放的 K/V 存储。 | |
tidb | 19920 | TiDB是一个分布式SQL数据库。灵感来自谷歌F1的设计。 | |
tiedot | 2363 | 属于你的NoSQL数据库。 | |
Vasto | 146 | 分布式高性能键值存储。可做磁盘备份。最终一致。高可用。能够在不中断服务的情况下增长或收缩。 | |
VictoriaMetrics | 979 | 开源,快速,可伸缩的时间序列数据库。支持PromQL。 |
数据库迁移。
name | star | desc | tag |
---|---|---|---|
avro | 5 | 发现SQL schemas并将其转换为AVRO schemas。 | |
darwin | 83 | 用于数据库 schema 升级的库。 | |
go-fixtures | 20 | 类似 Django fixture,用于 Go 建立内置数据库/sql库。 | |
go-pg-migrations | 23 | 用Go -pg/pg编写的迁移包。 | |
gondolier | 26 | 使用结构修饰的数据库迁移库。 | |
goose | 118 | 数据库迁移工具。您可以通过创建增量SQL或Go脚本来管理数据库的升级。 | |
gormigrate | 328 | 面向Gorm ORM的数据库 schema 迁移辅助程序。 | |
migrate | 2573 | 基于CLI的数据库迁移库。 | |
migrator | 31 | 非常简单的 Go 数据库迁移库。 | |
pravasan | 24 | 简易的迁移工具-目前只支持MySQL,但计划很快支持Postgres, SQLite, MongoDB等。 | |
soda | - | 数据库迁移、创建、ORM等。用于MySQL、PostgreSQL和SQLite。 | |
sql-migrate | 1400 | 数据库迁移工具。允许使用go-bindata将迁移嵌入到应用程序中。 |
数据库工具。
name | star | desc | tag |
---|---|---|---|
chproxy | 301 | ClickHouse数据库的HTTP代理。 | |
clickhouse-bulk | 133 | 收集小的 insterts 并向 ClickHouse 服务器发送大请求。 | |
datagen | 7 | 一个快速的数据生成器,支持多表感知和多行DML。 | |
dbbench | 30 | 数据库基准测试工具,支持多个数据库和脚本。 | |
go-mysql | 1862 | Go 工具集,用于处理MySQL协议和复制。 | |
go-mysql-elasticsearch | 2372 | 自动将MySQL数据同步到Elasticsearch中。 | |
kingshard | 4577 | kingshard 是基于 Golang 的MySQL高性能代理。 | |
myreplication | 141 | MySql二进制日志复制监听器。支持基于语句和行的复制。 | |
octillery | 52 | 用于数据库分表(支持每个ORM或原生SQL)。 | |
orchestrator | 3012 | MySQL复制拓扑管理器和可视化工具。 | |
pgweb | 5968 | 基于web的PostgreSQL数据库浏览器。 | |
prep | 24 | 在不更改代码的情况下使用准备好的SQL语句。 | |
pREST | 2079 | 基于PostgreSQL database的RESTful API服务。 | |
rwdb | 10 | rwdb为多个数据库服务器的设置提供读取副本功能。 | |
vitess | 8402 | vitess提供了可以为大规模web服务扩展MySQL数据库提供便利的服务和工具。 |
SQL查询生成器,用于构建和使用SQL的库。
name | star | desc | tag |
---|---|---|---|
Dotsql | 437 | Go library帮助您将sql文件保存在一个地方,并轻松地使用它们。 | |
gendry | 754 | 非入侵的SQL构建器和强大的数据绑定器。 | |
godbal | 50 | 数据库抽象层(dbal)。支持SQL builder,轻松获取结果。 | |
goqu | 630 | 常用的SQL生成器和查询库。 | |
igor | 77 | PostgreSQL的抽象层,支持高级功能和类似gorm的语法。 | |
ormlite | - | 包含一些类似orm的特性和sqlite数据库的辅助程序的轻量级包 | |
ozzo-dbx | 435 | Powerful data retrieval methods as well as DB-agnostic query building capabilities. | |
scaneo | 149 | 生成用于将数据库行转换为任意结构体的 Go 代码。 | |
sqrl | 176 | SQL查询生成器,从Squirrel fork而来,并再此基础上对性能做了优化。 | |
Squalus | - | Go SQL中间层,能使得执行查询更加容易。 | |
Squirrel | 2287 | 帮助您构建SQL查询的Go库。 | |
xo | 2170 | 基于现有的schema定义和自定义查询生成 Go 代码,基于支持PostgreSQL、MySQL、SQLite、Oracle和Microsoft SQL Server。 |
数据库驱动程序
用于连接和操作数据库的库。
- Relational Databases
name | star | desc | tag |
---|---|---|---|
avatica | 32 | Apache Avatica/Phoenix SQL驱动程序。 | |
bgc | 12 | BigQuery 的数据存储连接。 | |
firebirdsql | 103 | Firebird RDBMS SQL驱动程序。 | |
go-adodb | 92 | Microsoft ActiveX对象数据库驱动程序。 | |
go-mssqldb | 1018 | 微软MSSQL驱动程序。 | |
go-oci8 | 404 | Oracle 驱动程序。 | |
go-sql-driver/mysql | 8057 | MySQL驱动程序。 | |
go-sqlite3 | 3417 | SQLite3驱动程序。 | |
gofreetds | 91 | 基于FreeTDS封装的微软MSSQL Go 驱动。 | |
goracle | 234 | 基于 ODPI-C 的 Oracle 驱动程序 | |
pgx | 1893 | PostgreSQL驱动,支持比现有database/sql更多的特性。 | |
pq | 5148 | 纯 Go 的Postgres驱动。 |
- NoSQL Databases
name | star | desc | tag |
---|---|---|---|
aerospike-client-go | 304 | Aerospike 客户端。 | |
arangolite | 65 | 轻量级的 ArangoDB 驱动。 | |
asc | 4 | Aerospike 的数据存储连接器。 | |
dynago | 64 | 满足 principle of least surprise 的 DynamoDB 客户端。 | |
forestdb | 29 | 基于 Go 的 ForestDB 接口实现。 | |
go-couchbase | 292 | Couchbase客户端。 | |
go-couchdb | 51 | 基于 Go 的 Yet another CouchDB 的 Http 接口封装。 | |
go-pilosa | 31 | Pilosa客户端。 | |
go-rejson | 89 | 实现了基于 Redigo 客户端的redislabs' ReJSON 模块。可简单地将结构体存储为JSON对象并对其进行操作。 | |
gocb | 290 | 官方Couchbase Go SDK。 | |
gocql | - | Apache Cassandra 的 Go 驱动。 | |
godis | 58 | 由GoLang实现的redis客户端,灵感来自jedis。 | |
godscache | 6 | 谷歌云平台Go Datastore包的封装,它采用了memcached添加缓存。 | |
gomemcache | - | memcache客户端库。 | |
gorethink | 1454 | RethinkDB 驱动。 | |
goriak | 24 | Riak KV 驱动。 | |
mgo | 1626 | (已停止维护) MongoDB驱动。 | |
mongo-go-driver | 3043 | 官方的 MongoDB 驱动。 | |
neo4j | 24 | Neo4j Rest API实现。 | |
Neo4j-GO | 72 | Neo4j REST 客户端。 | |
neoism | 357 | Golang 的 Neo4j 客户端。 | |
redeo | 258 | 与 redis 协议兼容的 TCP 服务器/服务。 | |
redigo | 6230 | Redigo 是基于 Go 的Redis 客户端。 | |
redis | 6434 | 基于 Go 的 Redis 客户端。 | |
xredis | 9 | 类型安全,可定制,清晰和易用的Redis客户端。 |
- Search and Analytic Databases.
name | star | desc | tag |
---|---|---|---|
bleve | 5814 | 基于 Go 的现代文本索引库。 | |
elastic | 4105 | Elasticsearch 客户端。 | |
elasticsql | 386 | 将 SQL 转换为 elasticsearch dsl。 | |
elastigo | 951 | Elasticsearch 客户端。 | |
go-elasticsearch | 1548 | 官方 Elasticsearch 客户端。 | |
goes | 24 | 实现了与 Elasticsearch 交互的库。 | |
riot | 4672 | 基于 Go 的 开源、分布式、简单高效的搜索引擎。 | |
skizze | 68 | 面向概率数据结构的服务和存储。 |
- Multiple Backends.
name | star | desc | tag |
---|---|---|---|
cachego | 111 | 基于多个驱动程序的缓存组件。 | |
cayley | 12666 | 图形数据库,支持多个后端。 | |
dsc | 13 | 面向 SQL、NoSQL、结构化文件的数据存储连接。 | |
gokv | 80 | 可扩展的简单的 K/V 存储(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB等等)。 |
日期和时间
用于处理日期和时间的库。
name | star | desc | tag |
---|---|---|---|
carbon | 334 | 简单的时间扩展,包含了许多使用方法,从 PHP Carbon 库移植的。 | |
date | 27 | 增加处理日期、日期范围、时间跨度、时间段和time-of-day。 | |
dateparse | 890 | 可以解析很多格式不固定的日期字符串。 | |
durafmt | 238 | 轻量级、可让time.Duration更加易读的库。 | |
feiertage | 22 | 用于计算德国公共假期的函数,比如复活节、感恩节等 | |
go-persian-calendar | 62 | 太阳历实现。 | |
go-sunrise | 13 | 计算指定位置的日出和日落时间。 | |
goweek | 18 | 用于处理以星期实体单位的库。 | |
iso8601 | 68 | 不用正则表达式有效解析 ISO8601 日期时间。 | |
kair | 10 | 用于处理日期和时间的 golang 库。 | |
now | 2165 | now 是时间有关的工具类。 | |
NullTime | 9 | 可以允许 time.Time 为null。 | |
strftime | 5 | C99-compatible strftime formatter。 | |
timespan | 60 | 用于处理时间间隔相关的库,可定义开始时间和持续时间。 | |
timeutil | 168 | 面向 Golang 的时间库,集成了很多有用的扩展(Timedelta, Strftime, ...)。 | |
tuesday | 7 | Ruby-compatible Strftime function。 |
分布式系统
协助构建分布式系统的包。
name | star | desc | tag |
---|---|---|---|
celeriac | 52 | 用于对 Celery worker、任务、事件进行交互和监控的库。 | |
consistent | 187 | Consistent hashing with bounded loads。 | |
dht | 126 | BitTorrent Kademlia DHT的实现。 | |
digota | 298 | 基于 grpc 的电子商务微服务。 | |
dot | - | 基于 transformation/OT 的分布式同步。 | |
doublejump | 39 | 实现了谷歌的jump consistent hash。 | |
dragonboat | 2503 | 一个功能齐全,高性能的库集。 | |
drmaa | 24 | 符合 DRMAA 标准的集群调度程序作业提交库。 | |
dynamolock | - | DynamoDB-backed 分布式锁定实现。 | |
dynatomic | 8 | 基于 DynamoDB 的 原子计数器的库。 | |
emitter-io | 1917 | 高性能、分布式、安全和低延迟的发布-订阅平台,使用MQTT、Websockets和love构建。 | |
flowgraph | 18 | flow-based programming package。 | |
gleam | 2078 | 使用纯Go和Luajit编写的快速、可伸缩的分布式map/reduce系统,结合了Go的高并发性和Luajit的高性能,可以独立运行或分布式运行。 | |
glow | 2515 | 全部用 Go 实现,易用、可伸缩,可用于分布式大数据处理,Map-Reduce, DAG执行。 | |
go-health | 475 | 用于在服务中启用异步依赖项健康检查的库。 | |
go-jump | 253 | 提供了谷歌的 “Jump” 一致哈希函数接口。 | |
go-kit | 14346 | 支持服务发现、负载平衡、插件式传输、请求跟踪等功能的Microservice toolkit。 | |
gorpc | 551 | 简单、快速和可伸缩的RPC库。 | |
grpc-go | 9000 | gRPC的Go语言实现。 | |
hprose | 999 | 支持25+种语言RPC库。 | |
jaeger | 8584 | 分布式跟踪系统。 | |
jsonrpc | 113 | jsonrpc 包,实现了 JSON-RPC 2.0。 | |
jsonrpc | 98 | JSON-RPC 2.0 HTTP客户端。 | |
KrakenD | 1730 | 具有中间件的高性能API网关框架。 | |
micro | 6530 | 可插拔的微服务 toolkit 和分布式系统平台。 | |
NATS | 6259 | 轻量级、高性能消息传递系统,可用于微服务、物联网(IoT)和云。 | |
outboxer | 5 | 实现了 outbox pattern Go 库。 | |
pglock | - | postgresql 的分布式锁定实现。 | |
raft | 2822 | Raft consensus协议的实现。 by HashiCorp。 | |
raft | - | Raft consensus协议的实现。 by CoreOS。 | |
redis-lock | 147 | 基于redis的分布式锁简易实现。 | |
resgate | - | 用于构建REST、实时和RPC API的实时API网关,其中所有客户端都是无缝同步的。 | |
ringpop-go | 571 | 可伸缩的,容错、应用分层的的Go应用程序。 | |
rpcx | 3747 | 分布式可插拔的RPC服务框架,如阿里巴巴Dubbo。 | |
sleuth | 299 | 用于HTTP服务之间进行无中心p2p自动发现和RPC通信的库(使用ZeroMQ)。 | |
tendermint | 3114 | 一个高性能中间件,可将任何语言的状态机转换为 Byzantine Fault 状态机。使用 Tendermint 一致性及区块链协议。 | |
torrent | 2824 | BitTorrent 客户端。 |
电子邮件
实现了电子邮件创建和发送。
name | star | desc | tag |
---|---|---|---|
chasquid | - | 用Go编写的SMTP服务器。 | |
douceur | 158 | 在HTML邮件中支持CSS内联。 | |
1090 | 一个强大和灵活的电子邮件库。 | ||
go-dkim | 46 | DKIM库,用于签署 & 验证电子邮件。 | |
go-imap | 726 | 用于客户端和服务器的IMAP库。 | |
go-message | 104 | 用于Internet消息格式化和邮件消息的流媒体库。 | |
go-premailer | 35 | 在HTML邮件中支持CSS内联。 | |
Gomail | - | 一个非常简单和强大的邮件发送库。 | |
Hectane | 168 | 轻量级的SMTP客户机,提供了HTTP API。 | |
hermes | 1612 | 可生成干净的、响应式的HTML电子邮件。 | |
MailHog | 5129 | 电子邮件和SMTP测试工具,对外提供了 web 和 API 接口。 | |
SendGrid | 517 | SendGrid 的 Go语言库,用于发送电子邮件。 | |
smtp | 50 | SMTP服务器协议状态机。 |
可嵌入的脚本语言
在go代码中嵌入其他语言。
name | star | desc | tag |
---|---|---|---|
agora | 321 | 基于 Go 的动态类型,可嵌入的编程语言。 | |
anko | 922 | 用Go编写的解释器。 | |
binder | 29 | Lua接口,基于gopher-lua。 | |
expr | 689 | 一个可以计算表达式的引擎。 | |
gentee | 25 | 嵌入式脚本编程语言。 | |
gisp | 429 | LISP 的 Go 接口。 | |
go-duktape | 651 | 支持 Duktape JavaScript 引擎。 | |
go-lua | 1662 | 用 Go 实现的 Lua 5.2 VM接口。 | |
go-php | 674 | PHP 的 Go 接口。 | |
go-python | 906 | CPython C-API 的 Go 接口。 | |
golua | 441 | Lua C 的 Go 接口。 | |
gopher-lua | 2945 | 用 Go 实现的 Lua 5.1 虚拟机和编译器。 | |
gval | 134 | 一种用Go编写的高度可定制的表达式语言。 | |
ngaro | 19 | 嵌入式 Ngaro VM实现,支持在 Retro 中运行脚本。 | |
otto | 4710 | 用 Go 编写的 JavaScript 解释器。 | |
purl | 27 | 嵌入 Go 的 Perl 5.18.2。 | |
tengo | 1291 | 字节码编译的脚本语言。 |
错误处理
处理错误的库。
name | star | desc | tag |
---|---|---|---|
errlog | 145 | 用于定位抛出错误的源代码(以及一些其他快速调试特性)。可插入到任何 logger 的位置。 | |
errors | 4839 | 可让你很简单的进行错误处理。 | |
errorx | 549 | 一个功能丰富的错误包,可进行堆栈跟踪、组装异常信息以及其他。 | |
go-multierror | 719 | 可将一系列的错误作为一个整体来显示。 | |
tracerr | 495 | 可展示错误的堆栈跟踪信息和源码片段。 | |
werr | 11 | 对错误异常进行了捕获封装,封装信息包含了调用它的文件、行和堆栈。 |
文件
处理文件和文件系统的库。
name | star | desc | tag |
---|---|---|---|
afero | 2210 | 文件系统的抽象系统。 | |
checksum | 6 | 生成大型文件的消息摘要(如 MD5 和 SHA256)。 | |
flop | 8 | 文件操作库,是GNU cp的镜像。 | |
go-csv-tag | 46 | 使用 tag 加载 csv 文件。 | |
go-decent-copy | 11 | 拷贝文件。 | |
go-exiftool | 2 | ExifTool 的 Go 实现,这个著名的库用于从文件(图片、PDF、office,…)中提取尽可能多的元数据(EXIF、IPTC,…)。 | |
go-gtfs | 15 | 加载gtfs文件。 | |
notify | 492 | 文件系统事件通知库,具有类似于os/signal的简单API,。 | |
opc | 57 | 加载Open Packaging Conventions (OPC)文件。 | |
pdfcpu | 940 | PDF处理器。 | |
skywalker | 48 | 可以轻松地并发地遍历文件系统。 | |
stl | - | 采用并行读取算法的进行读取和写入STL(立体光刻)文件的模块。 | |
tarfs | 35 | tar文件的实现 FileSystem 接口。 | |
vfs | 22 | 一组可插拔的、可扩展的和自定义的文件系统功能,用于跨越许多文件系统类型,如os、S3和GCS。 |
金融
会计和财务软件包。
name | star | desc | tag |
---|---|---|---|
accounting | 486 | 货币和货币格式。 | |
currency | 8 | 高性能、准确的货币计算软件包。 | |
decimal | 1587 | 任意精度定点的十进制数。 | |
go-finance | 535 | 综合金融市场数据。 | |
go-finance | 42 | 用于货币时间价值(年金)、现金流、利率转换、债券和折旧计算的金融函数库。 | |
go-money | 612 | Fowler 货币模式的实现。 | |
ofxgo | 61 | 查询 OFX 服务器和/或解析响应。 | |
orderbook | 68 | 限购单匹配引擎。 | |
techan | 156 | 拥有先进的市场分析和交易策略的技术分析库。 | |
transaction | 55 | 嵌入式事务数据库,可多线程模式运行。 | |
vat | 61 | 增值税编号验证 & 欧盟增值税税率。 |
表单
用于处理表单的库。
name | star | desc | tag |
---|---|---|---|
bind | 23 | 将表单数据与任意 Go 变量进行绑定。 | |
binding | 753 | 将来自 net/HTTP 请求的表单、JSON 数据绑定到结构体。 | |
conform | 172 | 控制用户输入。基于struct tags可对数据进行修剪、清理和擦除。 | |
form | 348 | 将 url 中的数据解析到 Go 变量中,以及将 Go 语言变量编码进 url。支持 Dual Array 及 Full map。 | |
formam | 122 | 将表单的值解码为 struct。 | |
forms | 105 | 与框架无关的库,用于解析和验证支持多部分表单和文件的表单/JSON数据。 | |
gorilla/csrf | 431 | 用于Go web应用程序和服务的CSRF保护。 | |
nosurf | 970 | CSRF保护中间件。 |
方法
在Go中支持函数式编程的包。
name | star | desc | tag |
---|---|---|---|
fpGo | 107 | 提供函数式编程功能。 | |
fuego | 38 | Functional Experiment in Go。 | |
go-underscore | 1067 | 常用辅助方法集合。 |
游戏开发
很棒的游戏开发库。
name | star | desc | tag |
---|---|---|---|
Azul3D | 426 | 用Go编写的 3D 游戏引擎。 | |
Ebiten | 1842 | 很简单的 2D 游戏库。 | |
engo | 1076 | 开源 2D 游戏引擎。它遵循 Entity-Component-System 范式。 | |
g3n | 740 | 3D游戏引擎。 | |
GarageEngine | 308 | 用 OpenGL 编写的 2D 游戏引擎。 | |
glop | 77 | Glop (Game Library Of Power) 是一个相当简单的跨平台游戏库。 | |
go-astar | 325 | 实现了A*路径查找算法。 | |
go-collada | 12 | 处理Collada文件。 | |
go-sdl2 | 1152 | 实现了Simple DirectMedia Layer。 | |
go3d | 164 | 以性能为主的2D/3D数学相关包。 | |
gonet | 1047 | 实现了游戏服务器骨架。 | |
goworld | 1172 | 可伸缩的游戏服务器引擎,具有 space-entity 框架和 hot-swapping 功能。 | |
Leaf | 3039 | 轻量级游戏服务器框架。 | |
nano | 977 | 轻量级、方便、高性能的基于golang的游戏服务器框架。 | |
Oak | 623 | 纯 Go 实现的游戏引擎。 | |
Pitaya | 298 | 可伸缩的游戏服务器框架,支持集群和客户端库的iOS, Android, Unity。 | |
Pixel | 2424 | 手工制作的 2D 游戏库。 | |
raylib-go | 379 | 实现了 raylib,一个简单易用的库,用于学习视频游戏编程。 | |
termloop | 1021 | 基于终端的 Go 游戏引擎,建立在 Termbox 之上。 |
代码生成与泛型
增强语言的工具,例如通过代码生成支持泛型。
name | star | desc | tag |
---|---|---|---|
efaceconv | 43 | 代码生成工具,可以不通过内存分配就可以高效的将interface{}转换为不可变类型,。 | |
gen | 1031 | 用于生成泛型等类似方法的功能代码生成工具。 | |
generis | 18 | 提供泛型、free-form 宏、条件编译和HTML模板的代码生成工具。 | |
go-enum | 85 | 从代码注释中生成枚举。 | |
go-linq | 1791 | 提供类似 .NET LINQ 的查询方法。 | |
goderive | 737 | 从输入类型来派生函数。 | |
gotype | 20 | Golang 源码解析,用法类似reflect(反射)。 | |
GoWrap | 261 | 使用简单模板为 Go 接口生成装饰器。 | |
interfaces | 185 | 用于生成接口定义的命令行工具。 | |
jennifer | 1261 | 不使用模板生成任意 Go 代码。 | |
pkgreflect | 85 | 用于包作用域反射的 Go 预处理器。 |
地理
地理工具和服务器
name | star | desc | tag |
---|---|---|---|
geocache | 110 | 基于内存缓存的的地理位置的应用程序。 | |
geoserver | 25 | 基于geoserver REST API的 geoserver 实例。 | |
gismanager | 19 | 将你的 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver。 | |
osm | 66 | 用于读取、写入和处理 OpenStreetMap 数据和 APIs。 | |
pbf | 15 | 基于Golang 的 OpenStreetMap PBF 编码器/解码器。 | |
S2 geometry | 883 | S2 geometry 库。 | |
Tile38 | 6304 | 具有空间索引和实时地理定位功能的地理定位数据库。 |
Go 编译器
可将 Go 转换为其他语言的编译工具。
name | star | desc | tag |
---|---|---|---|
c4go | 149 | 将 C 代码转换为 Go 代码。 | |
f4go | 11 | 将 FORTRAN 77 转换为 Go代码。 | |
gopherjs | 8510 | 将 Go 编译成 JavaScript。 | |
llgo | 990 | 基于 llvm 的编译器。 | |
tardisgo | 392 | Golang 转换为 Haxe,再转换为 CPP/CSharp/Java/JavaScript 的编译器. |
Goroutines
管理和处理 Goroutines 的工具。
name | star | desc | tag |
---|---|---|---|
ants | 1843 | 一个高性能的协程池。 | |
artifex | 12 | 简单的内存作业队列。 | |
async | 21 | 一种异步执行函数的安全方法,在出现 panic 时恢复它们。 | |
breaker | 34 | 灵活的机制,可以使执行流可中断。 | |
cyclicbarrier | 36 | 基于 Go 的 CyclicBarrier 实现。 | |
go-floc | 167 | 轻松编排 goroutines。 | |
go-flow | 103 | 控制 goroutines 的执行顺序。 | |
go-tools/multithreading | 5 | 轻量级的协程池库,可以通过简单的API来管理。 | |
go-trylock | 4 | 支持 read-write 锁。 | |
gollback | 26 | 异步简单的函数实用程序,用于管理闭包和回调的执行。 | |
GoSlaves | 75 | 简单异步的协程池。 | |
goworker | 2242 | 基于 go 的后台 worker。 | |
gpool | 56 | manages a resizeable pool of context-aware goroutines to bound concurrency | |
grpool | 494 | 轻量级协程池。 | |
Hunch | 9 | Hunch 提供了诸如 All、First、Retry、Waterfall 等功能,这使得异步流控制更加直观。 | |
oversight | - | 完整的实现了Erlang supervision trees。 | |
parallel-fn | 24 | 并行运行函数。 | |
pool | 477 | 有限消费者协程或无限协程池,可用于更加简单的处理和取消协程 | |
queue | 1 | 提供类似队列组可访问性 sync.WaitGroup 的功能。帮助你节流和限制协程、等待所有协程结束以及更多功能。 | |
routine | 2 | go routine control with context, support: Main, Go, Pool and some useful Executors. | |
semaphore | 74 | 信号量模式实现,可根据通道和上下文进行具备超时功能的锁定/解锁操作。 | |
semaphore | 72 | 基于 CAS 的可快速调整的信号量实现(比基于通道的信号量实现更快)。 | |
stl | 8 | 基于软件事务内存(STM)并发控制机制的软件事务锁。 | |
threadpool | 17 | Golang 的 threadpool 实现。 | |
tunny | 1331 | golang 的协程池。 | |
worker-pool | 43 | 一个简单的 Go 异步工作池。 | |
workerpool | 132 | 限制任务执行并发数,而不是队列中的任务数量的协程池,。 |
GUI
用于构建GUI应用程序的库。
工具包
name | star | desc | tag |
---|---|---|---|
app | 2944 | 用于创建包含了 GO, HTML 和 CSS 的应用程序。支持 MacOS, Windows 正在开发中。 | |
fyne | 6219 | 为 Go 而设计的跨平台的本地GUIs,使用EFL呈现。支持 : Linux, macOS, Windows。 | |
go-astilectron | 2645 | 使用 GO 和 HTML/JS/CSS (电子驱动)进行构建跨平台 GUI 应用程序。 | |
go-gtk | - | 实现了 GTK 的 Go接口。 | |
go-sciter | 1443 | 实现了 Sciter 的 Go 接口 : 用于现代桌面 UI 开发的可嵌入HTML/CSS/脚本引擎。可跨平台。 | |
gotk3 | 761 | 实现了 GTK3 的 Go接口。 | |
gowd | 207 | 跨平台、快速、简单的桌面UI开发,采用了GO, HTML, CSS和NW.js实现。 | |
qt | 5995 | 实现了 Qt 的 Go接口(支持Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)。 | |
ui | 6917 | 跨平台的 Platform-native GUI 库。 | |
Wails | - | Mac, Windows, Linux桌面应用程序,主要基于含有内置的OS HTML渲染器的HTML UI。 | |
walk | 3675 | Windows应用程序库。 | |
webview | 4622 | 跨平台webview窗口,具有简单的双向JavaScript绑定(Windows / macOS / Linux)。 |
交互
name | star | desc | tag |
---|---|---|---|
go-appindicator | 1 | 实现了 libappindicator3 C库 的 Go接口。 | |
gosx-notifier | 494 | OSX 桌面通知库。 | |
mac-activity-tracker | 1 | 用于通知计算机上的任何(可插入的)活动的 OSX 库。 | |
mac-sleep-notifier | - | OSX 睡眠/唤醒通知。 | |
robotgo | 4414 | 实现跨平台的GUI系统自动化。包含了控制鼠标、键盘等功能。 | |
systray | 777 | 跨平台 Go 库,可在通知区放置图标和菜单。 | |
trayhost | 159 | 跨平台 Go 库,可用于在主机操作系统的任务栏中放置图标。 |
硬件
硬件交互相关的库、工具和教程。
See go-hardware for a comprehensive list.
图片
图像处理相关的库。
name | star | desc | tag |
---|---|---|---|
bild | 2030 | 纯Go语言实现的图像处理算法合集。 | |
bimg | 784 | 使用libvips实现的快速高效的图像处理包。 | |
cameron | 31 | 一个Go语言的头像生成器。 | |
darkroom | 21 | An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. | |
geopattern | 1011 | 由字符串创建漂亮图案的图片生成器。 | |
gg | 1899 | 纯Go语言实现的2D渲染。 | |
gift | 1207 | 图像处理包。 | |
gltf | 37 | 一个高效、健壮的glTF 2.0文件读取、写入和验证器。 | |
go-cairo | 85 | cairo图形库的Go binding。 | |
go-gd | 49 | GD库的Go binding。 | |
go-nude | 286 | Go语言实现的裸照检测工具。 | |
go-opencv | 1089 | OpenCV库的Go bindings。 | |
go-webcolors | 24 | Python下webcolors库的Go语言调用。 | |
gocv | 2426 | 使用OpenCV 3.3+实现的计算机视觉(ComputerVision)的Go语言包。 | |
goimagehash | 210 | 图像哈希处理的Go语言包。 | |
goimghdr | 26 | Go语言实现的imghdr模块用于确定文件的图像类型。 | |
govatar | 310 | 生成有趣头像的库和CMD工具。 | |
image2ascii | 289 | 将图像转换为ASCII码。 | |
imagick | 970 | ImageMagick下MagickWand的C API的Go binding。 | |
imaginary | 2580 | 用于图像大小调整的快速、简单的HTTP微服务。 | |
imaging | 2502 | 简单的Go图像处理包。 | |
img | 129 | 图像处理工具的集合。 | |
ln | 2457 | Go实现的3D线艺术(3D Line Art)渲染。 | |
mergi | 70 | 用于图像处理(合并、裁剪、调整大小、水印、动画)的工具和Go库。 | |
mort | 365 | Go语言实现的图像存储和处理服务器。 | |
mpo | 6 | MPO三维照片的解码和转换工具。 | |
picfit | 1062 | Go实现的图像调整服务器。 | |
pt | 1766 | Go实现的路径跟踪(path tracing)引擎。 | |
resize | 2122 | Go实现的使用常用的插值法(interpolation methods)调整图像大小的库。 | |
rez | 189 | 纯Go语言和SIMD实现的图像大小调整。 | |
smartcrop | 1250 | 为任意图片寻找合适的位置进行图片裁剪。 | |
steganography | 25 | 纯Go实现的LSB隐写(LSB steganography)的库。 | |
stegify | 487 | Go实现的LSB隐写(LSB steganography),能够隐藏任何文件到一个图像中。 | |
svgo | 1326 | Go实现的SVG生成库。 | |
tga | 23 | tga包是一个TARGA图像的解码、编码器。 |
物联网
物联网设备编程库。
name | star | desc | tag |
---|---|---|---|
connectordb | 167 | 自我量化和物联网的开源平台。 | |
devices | 225 | 一套用于物联网设备的库,实验性地用于x/exp/io。 | |
eywa | 36 | Eywa是一个用于跟踪连接的设备连接管理器。 | |
flogo | 1115 | Flogo是一个面向物联网边缘应用和集成的开源框架。 | |
gatt | 812 | Gatt是一个用于构建低能耗蓝牙外围设备的Go语言包。 | |
gobot | - | Gobot是一个用于机器人、物理计算和物联网的框架。 | |
huego | 109 | 一个包含广泛的Philips Hue客户端的Go语言库。 | |
iot | - | IoT是一个实现谷歌物联网核心设备的简单框架。 | |
mainflux | 581 | 工业物联网消息和设备管理服务器。 | |
periph | - | 外围设备I/O与低级板(low-level board)设备接口。 | |
sensorbee | 178 | 轻量级物联网流处理引擎。 |
作业调度器
用于作业调度的库。
name | star | desc | tag |
---|---|---|---|
clockwerk | - | 使用简单、流畅的语法调度作业的Go语言库。 | |
clockwork | 76 | Go实现的简单直观的作业调度库。 | |
go-cron | 177 | 一个Go实现的简单的定时任务库。可以在不同的时间间隔(每秒一次到在每年在特定的日期执行)执行闭包或函数。主要用于web应用和长时间运行的守护进程。 | |
gron | 625 | 使用简单的Go API定义基于时间的任务。 之后Gron的调度程序将运行它们。 | |
JobRunner | 567 | 智能和功能丰富的cron作业调度程序(包含任务队列和实时监控)。 | |
jobs | 451 | 持久和灵活的后台作业库。 | |
leprechaun | 37 | 支持webhook、crons和经典调度的作业调度程序。 | |
scheduler | 291 | Cronjobs让调度变得很简单。 |
JSON
用于JSON处理的库。
name | star | desc | tag |
---|---|---|---|
ajson | 12 | 为Go语言开发的包含JSONPath支持的抽象JSON。 | |
gjo | 59 | 用于创建JSON对象的小工具。 | |
GJSON | 4840 | 使用一行代码获取JSON的值。 | |
go-jsonerror | 7 | Go-JsonError允许我们轻松创建符合JsonApi规范的json响应错误。 | |
go-respond | 22 | 用于处理常见的HTTP JSON响应的Go语言库。 | |
gojq | 140 | Go语言实现的JSON请求。 | |
gojson | 2023 | 从JSON自动生成Go的结构(struct)定义。 | |
JayDiff | 39 | 用Go编写的JSON比对工具。 | |
JSON-to-Go | - | 将JSON转换为Go的结构(struct)。 | |
jsonapi-errors | 5 | 基于JSON API错误引用的Go bindings。 | |
jsonf | 55 | 用于高亮展示和查询JSON的控制台工具。 | |
jsongo | 92 | 使用Fluent API来更容易地创建Json对象。 | |
jsonhal | 9 | 让自定义结构(struct)转化为JSON兼容的HAL(Hypertext Application Language)返回数据的简单Go包。 | |
kazaam | 131 | 用于任意JSON文档转换的API。 | |
mp | 33 | 简单的cli电子邮件解析器。它目前接受stdin并输出JSON。 |
日志记录
用于生成和处理日志文件的库。
name | star | desc | tag |
---|---|---|---|
distillog | 18 | distilled日志记录(可以将其视为stdlib +日志)。 | |
glg | 51 | glg是一个简单而快速的Go日志库。 | |
glo | 8 | 参照PHP的Monolog实现的具有相同日志等级的Go日志库。 | |
glog | 2295 | 为Go提供了多等级日志记录。 | |
go-cronowriter | 19 | 基于当前日期和时间的自动日志文件写入工具,类似cronolog。 | |
go-log | 10 | Go实现的简单且可配置的日志工具,并带有多等级、日志格式化和日志写入工具。 | |
go-log | 24 | 支持多等级和多处理程序的日志库。 | |
go-log | 34 | Log4j的Go语言。 | |
go-logger | 233 | 简单的日志程序的 Go 程序,与级别处理程序。 | |
gologger | 39 | 为Go提供方便简单的日志操作; 在彩色控制台,简单控制台,文件或Elasticsearch上。 | |
gomol | 15 | 为Go实现可多方式输出、结构化日志, 并可扩展日志输出方式。 | |
gone/log | - | 快速、可扩展、功能齐全、std-lib源兼容的日志库。 | |
journald | 18 | Go实现systemd Journal的原生API用于日志记录。 | |
log | 4 | 一个O(1)日志系统,允许您将一个日志连接到多个日志写入(例如stdout、文件和TCP连接)。 | |
log | 728 | Go的结构化日志包。 | |
log | 266 | Go的简单、可配置和可伸缩的结构化日志。 | |
log | 22 | Go的结构化日志接口,清晰地将日志facade与其实现(implementation)分离开来。 | |
log-voyage | 82 | 用Go编写的功能齐全的日志写入saas。 | |
log15 | 882 | 简单、强大的日志操作。 | |
logdump | 9 | 用于多等级级日志记录的包。 | |
logex | 32 | 由标准日志库封装的Go日志库,支持跟踪和多等级。 | |
logger | 135 | Go的精简日志库。 | |
logmatic | 6 | Go的彩色日志记录器,带有可配置的日志级别。 | |
logo | 4 | Go的日志工具,可配置的日志写入器。 | |
logrus | 11817 | Go的结构化日志操作 。 | |
logrusly | 26 | logrus的插件,将错误信息发送到Loggly。 | |
logutils | 247 | Go的用于更好地进行日志操作的实用程序,继承了标准日志库。 | |
logxi | 334 | 12-factor app的日志程序,快速且让人高兴地使用。 | |
lumberjack | 1428 | 简单的滚动日志,io.WriteCloser的实现。 | |
mlog | 18 | 简单的go日志模块,有5个级别,可选循环(rotation)日志文件记录功能和stdout/stderr输出。 | |
onelog | 330 | Onelog是一个非常简单但非常高效的JSON日志程序。它是所有场景中速度最快的JSON日志程序。而且,它是配置要求最低的日志记录器之一。 | |
ozzo-log | 110 | 支持日志多等级、分类和过滤的高性能日志记录。可以发送过滤后的日志消息到各种目标(如控制台,网络,邮件)。 | |
rollingwriter | 96 | RollingWriter是一个自动循环的io.Writer的实现,带有多种策略以提供日志文件循环(rotation)。 | |
seelog | 1345 | 具有灵活调度、过滤和格式化的日志功能。 | |
spew | 3284 | 为Go数据结构实现一个漂亮的printer用于帮助调试。 | |
stdlog | 43 | Stdlog是一个面向对象的库,提供了多等级日志记录。它对cron任务非常有用。 | |
tail | 1532 | 努力模拟实现BSD的tail的特性的Go包。 | |
xlog | 7 | 插件架构和灵活的日志系统,带有多级别、多日志目标和自定义日志格式。 | |
xlog | 128 | 针对'net/context`实现的结构化的记录器,用于HTTP处理程序。 | |
zap | 7359 | 快速、结构化、多等级的日志记录。 | |
zerolog | 2187 | Zero-allocation JSON日志记录。 |
机器学习
机器学习库。
name | star | desc | tag |
---|---|---|---|
bayesian | 628 | Go的朴素贝叶斯分类。 | |
CloudForest | 643 | 快速、灵活、多线程集成的决策树,用于机器学习。 | |
eaopt | 619 | 一个进化优化(evolutionary optimization)库。 | |
evoli | 8 | 遗传算法(Genetic Algorithm)和粒子群优化(Particle Swarm Optimization)库。 | |
fonet | 33 | 一个用Go编写的深度神经网络库。 | |
go-cluster | 21 | Go实现的k-modes和k-prototypes聚类算法。 | |
go-deep | 216 | 一个功能丰富的神经网络库 。 | |
go-fann | 99 | 快速人工神经网络(FANN)库的Go bindings。 | |
go-galib | 171 | 用Go编写的遗传算法库。 | |
go-pr | 57 | Go编写的模式识别包。 | |
gobrain | 382 | 用 Go 编写的神经网络库。 | |
godist | 24 | 各种概率分布,以及相关的method。 | |
goga | 78 | Go的遗传算法库。 | |
GoLearn | 6638 | 通用机器学习库。 | |
golinear | 39 | Go实现的liblinear bindings。 | |
GoMind | 6 | 一个简单的神经网络库。 | |
goml | 1011 | 在线机器学习。 | |
goRecommend | 142 | 用Go编写的推荐算法库。 | |
gorgonia | 2677 | 基于图形(graph-based)的计算库,如Theano:它为构建各种机器学习和神经网络算法提供了基本框架。 | |
gorse | 526 | 基于协同过滤(Collaborative Filtering )的高性能推荐系统包。 | |
goscore | 35 | 为预言模型标记语言(PMML)实现的评分API。 | |
gosseract | 862 | 使用c++的Tesseract库实现的OCR。 | |
libsvm | 63 | 基于LIBSVM 3.14实现。 | |
mlgo | 5 | 这个项目的用于在Go中提供最精简的机器学习算法。 | |
neat | 55 | 即插即用的并行Go框架,用于增强拓扑的神经进化(NeuroEvolution of Augmenting Topologies)。 | |
neural-go | 61 | 多层感知器网络在Go中的实现,使用反向传播算法进行训练。 | |
ocrserver | 220 | 一个简单的OCR API服务器,非常容易地使用Docker和Heroku部署。 | |
onnx-go | 147 | Go Interface, 用于开放式神经网络交换(Open Neural Network Exchange)。 | |
probab | 10 | 概率分布函数。贝叶斯推理。使用Go写的。 | |
regommend | 246 | 推荐和协同过滤引擎。 | |
shield | 124 | 贝叶斯文本分类器,具有灵活的tokenizers和存储后端。 | |
tfgo | 1179 | 易于使用的Tensorflow bindings:简化了官方Tensorflow Go bindings的使用。在Go中定义计算图形,在Python中加载和执行训练的模型。 | |
Varis | 24 | Go实现的神经网络。 |
消息
实现消息传递系统的库。
name | star | desc | tag |
---|---|---|---|
APNs2 | 2038 | HTTP / 2苹果消息推送provider——发送推送消息到iOS, tvOS, Safari和OSX应用。 | |
Beaver | 717 | 一个实时消息服务器,可用于在web和手机app端构建一个可伸缩的应用内通知,多人游戏,聊天应用。 | |
Benthos | 1993 | 一系列协议之间的消息流桥接。 | |
Bus | 114 | 内部通信的最小消息总线实现。 | |
Centrifugo | 3661 | 实时消息(Websockets或SockJS)服务器。 | |
Commander | 21 | 高级事件驱动的消费者/生产者(consumer/producer),支持各种“方言”,如Apache Kafka。 | |
dbus | 355 | D-Bus的Go bindings。 | |
drone-line | 60 | 使用二进制、docker或Drone CI发送Line通知。 | |
emitter | 309 | 使用Go的方式发出事件, 带有通配符、谓词、取消可能性和许多其他优点。 | |
event | 27 | 观察者模式的实现。 | |
EventBus | 552 | 具有异步兼容性的轻量级事件总线。 | |
gaurun-client | 8 | 用Go编写的Gaurun客户端。 | |
Glue | 316 | 健壮的Go和Javascript Socket库(替代Socket.io)。 | |
go-notify | 47 | 原生的freedesktop通知规范实现。 | |
go-nsq | 1452 | NSQ的官方Go包。 | |
go-socket.io | 2868 | go的socket.io库,一个实时应用程序框架。 | |
go-vitotrol | 11 | 用于Viessmann Vitotrol web服务的客户端库。 | |
Gollum | 767 | 一个n:m多路复用器(n:m multiplexer),收集不同来源的消息并将其广播到一组目的地。 | |
golongpoll | 425 | HTTP longpoll服务器库,使web发布-订阅变得简单。 | |
goose | 36 | 服务器在Go中发送事件。 | |
gopush-cluster | 1834 | gopush-cluster是一个gopush服务器集群。 | |
gorush | 3688 | 使用APNs2和谷歌GCM推送通知服务器。 | |
guble | 138 | 使用推送通知服务(谷歌Firebase云消息、苹果推送通知服务、SMS)的消息服务器, 支持websockets,REST API,并具有分布式操作和消息持久性。 | |
hub | 24 | 适用于Go应用程序的消息/事件中心,使用publish/subscribe模式,并支持别名(类似rabbitMQ exchanges)。 | |
jazz | 6 | 一个简单的RabbitMQ抽象层,用于队列管理和消息的发布和消费。 | |
machinery | 3346 | 基于分布式消息传递的异步任务/作业队列。 | |
mangos | 1534 | Nanomsg(“可伸缩协议”)的纯go实现,具有传输互操作性。 | |
melody | 1550 | 处理websocket session的极简框架,包括广播和自动ping/pong处理。 | |
Mercure | 1483 | 使用Mercure协议分派服务器发送(server-sent)更新的服务器和库(构建在服务器发送事件之上)。 | |
messagebus | 64 | messagebus是一个Go的简单异步消息总线,非常适合在执行事件sourcing、CQRS和DDD时用作事件总线。 | |
NATS Go Client | 2384 | 轻量级和高性能的发布-订阅(publish-subscribe)和分布式队列消息传递系统——这是一个Go库。 | |
nsq-event-bus | 50 | 一个围绕NSQ topic和channel的小工具。 | |
oplog | 94 | 用于REST api的通用oplog/replication系统。 | |
pubsub | 273 | 简单的pubsub的go包。 | |
rabbus | 61 | amqp exchanges和队列上的一个小工具。 | |
rabtap | 72 | RabbitMQ的瑞士军刀cli应用。 | |
RapidMQ | 54 | RapidMQ是用于管理本地消息队列的轻量且可靠的库。 | |
redisqueue | 1 | 基于Redis streams的队列的生产者和消费者。 | |
rmqconn | - | RabbitMQ重新连接。amqp.Connection和amqp.Dial之上的Wrapper。允许在强制调用Close()方法关闭连接之前重新连接。 | |
sarama | 4583 | Apache Kafka的Go库。 | |
Uniqush-Push | 1098 | Redis支持的统一推送服务, 用于服务端向移动设备的消息通知。 | |
zmq4 | 773 | ZeroMQ的Go interface第4版。也可用于第3版和第2版。 |
微软办公软件
name | star | desc | tag |
---|---|---|---|
unioffice | 1684 | 用于创建和处理Office Word (.docx)、Excel (.xlsx)和Powerpoint (.pptx)文档的纯go库。 |
Microsoft Excel
用于操作Microsoft Excel的库。
name | star | desc | tag |
---|---|---|---|
excelize | 4411 | 用于读写Microsoft Excel™(XLSX)文件的Go语言库。 | |
go-excel | 46 | 一个简单轻便的阅读器,可以将类关系型数据库(relate-db-like)的excel作为表来读取。 | |
goxlsxwriter | 12 | libxlsxwriter的Go binding, 用于编写XLSX (Microsoft Excel)文件。 | |
xlsx | 3345 | 用以简化在Go程序中读取使用最新版本Microsoft Excel的XML格式文件的库。 | |
xlsx | 67 | 在Go程序以快速和安全的方式读取/更新现有的Microsoft Excel文件。 |
杂项
依赖注入
用于处理依赖项注入的库。
name | star | desc | tag |
---|---|---|---|
alice | 33 | Go的外挂的依赖注入容器。 | |
dig | 895 | 一个基于反射的Go依赖注入工具包。 | |
fx | 714 | 基于依赖注入的Go应用程序框架(构建在dig之上)。 | |
gocontainer | 9 | 简单的依赖注入容器。 | |
inject | 25 | 一个基于反射的依赖注入容器,具有简单的接口。 | |
linker | 5 | A reflection based dependency injection and inversion of control library with components lifecycle support. | |
wire | 19 | 适用于Go的严格运行时依赖注入(Strict Runtime Dependency Injection)。 |
项目布局
用于组织项目的非正式模式集。
name | star | desc | tag |
---|---|---|---|
go-sample | 22 | 带有实际代码的Go应用程序项目的示例布局。 | |
golang-standards/project-layout | 8921 | Go生态系统中历史和新兴的项目布局模式集合。 | |
scaffold | 23 | 快速生成Go项目布局的脚手架。让您专注于已实现的业务逻辑。 |
字符串
处理字符串的库。
name | star | desc | tag |
---|---|---|---|
strutil | 62 | 字符串处理工具。 | |
xstrings | 617 | 从其他语言移植的有用字符串函数合集。 |
这些库之所以放在这里,是因为不适合放在其他分类。
name | star | desc | tag |
---|---|---|---|
anagent | 11 | Go语言的最小化,可插入的evloop/timer处理程序, 带有依赖注入。 | |
antch | 140 | 一个快速、强大和可扩展的web爬虫框架。 | |
archiver | 2476 | 用于生成和解压.zip和.tar.gz文档的库和命令。 | |
autoflags | 24 | 从struct字段自动定义命令行flag的Go包。 | |
avgRating | 9 | 根据威尔逊得分排序算法(Wilson Score Equation)计算平均分和评分。 | |
banner | 230 | 在Go应用程序中添加漂亮的横幅(banner)。 | |
base64Captcha | 622 | base64Captcha支持数字,字母,算术,音频和混合模式的验证码。 | |
battery | 135 | 跨平台、标准化的电池信息库。 | |
bitio | 92 | 高度优化的位级读写器。 | |
browscap_go | 29 | 用于Browser Capabilities Project的Go库。 | |
captcha | 42 | captcha包为验证码生成提供了一个易于使用的、unopinionated的API。 | |
conv | 341 | conv包提供了跨Go类型(Go types)的快速和直观的转换。 | |
datacounter | 27 | 用于readers/writer/http.ResponseWriter的计数器。 | |
ffmt | 126 | 美化数据,使其更适合人查看。 | |
ghorg | 23 | GitHub一个组织中所有的仓库复制到一个目录中。 | |
go-commons-pool | 665 | Go语言的通用对象池。 | |
go-openapi | - | 用于解析和使用开放api模式(open-api schemas)的包的集合。 | |
go-resiliency | 849 | Go语言弹性模式(resiliency pattern)。 | |
go-unarr | 67 | 用于RAR、TAR、ZIP和7z文件的解压缩库。 | |
gofakeit | 413 | 用go编写的随机数据生成器。 | |
gommit | 72 | 分析git提交消息,确保它们遵循已定义的格式。 | |
gopsutil | 3893 | 用于检索进程和系统利用率(CPU、内存、磁盘等)的跨平台的库。 | |
gosh | 17 | 提供Go统计处理程序,结构和测量方法。 | |
gosms | 1226 | Go编写的私人的本地短信网关,可以用来发送短信。 | |
gotoprom | 15 | 为Prometheus客户端提供类型安全的指标(metric)构建工具库。 | |
gountries | 209 | 获取国家和细节数据的包。 | |
health | 360 | 易于使用,可扩展的健康检查库。 | |
healthcheck | 81 | 用于RESTful服务的强制的(opinionated)并发健康检查HTTP处理程序。 | |
hostutils | 8 | 一个用于打包和解包FQDNs列表的go语言库。 | |
indigo | 51 | 分布式唯一ID生成器, 使用Sonyflake并由Base58编码。 | |
lk | 120 | 一个简单的版权许可证库。 | |
llvm | 409 | 用于在纯Go中与LLVM IR交互的库。 | |
metrics | 4 | 用于instrumentation和Prometheus exposition的库。 | |
morse | 50 | 实现字符串与摩尔斯电码转换的库。 | |
numa | 2 | NUMA是一个用go编写的实用程序库。它可以帮助我们编写一些NUMA-AWARED代码。 | |
pdfgen | 33 | 通过Json请求生成PDF的HTTP服务。 | |
persian | 33 | 一些适用于波斯语的Go工具库。 | |
sandid | 12 | 能沟让地球上的每一粒沙子都有自己的ID。 | |
shellwords | 7 | 一个Go库,实现了依照UNIX Bourne shell的关键词解析规则进行字符串操纵。 | |
shortid | 447 | 分布式地生成超短、唯一、非顺序、URL友好的id。 | |
stats | 121 | Monitors Go MemStats + 诸如如内存,Swap和CPU的系统状态统计,并通过UDP发送到任何你想记录的地方 | |
turtle | 73 | Go的Emojis库。 | |
url-shortener | 17 | 一个现代的、强大的、健壮的URL转短链接微服务,带有mysql支持。 | |
VarHandler | - | 用于生成http输入和输出处理模板。 | |
xdg | 20 | FreeDesktop.org (xdg)规范在Go中的实现。 | |
xkg | 40 | X Keyboard Grabber(键盘事件捕获) |
自然语言处理
用于处理人类语言的库。
name | star | desc | tag |
---|---|---|---|
getlang | 73 | 快速自然语言检测包。 | |
go-eco | 4 | 相似、不相似和距离矩阵;多样性、公平性和不平等度量;物种丰富度估计;coenocline模型。 | |
go-i18n | - | 软件包和用于处理本地化文本的附带工具。 | |
go-mystem | 23 | CGo绑定到Yandex。Mystem -俄罗斯形态学分析仪。 | |
go-nlp | 79 | 用于处理离散概率分布的实用程序和用于进行NLP工作的其他工具。 | |
go-pinyin | 520 | 中文汉字到汉语拼音的转换。 | |
go-stem | 52 | 波特词干算法的实现。 | |
go-unidecode | 56 | Unicode文本的ASCII音译。 | |
go2vec | 30 | 用于word2vec嵌入式的阅读器和实用程序函数。 | |
gojieba | 814 | 这是一个Go实现的jieba,这是一个中文分词算法。 | |
golibstemmer | 15 | Go 绑定斯诺鲍libstemmer库,包括波特2。 | |
gotokenizer | 6 | 一种基于字典和双字母格朗语言模型的记号赋予器。(现在只支持中文分割) | |
gounidecode | 67 | 用于Go的Unicode音译器(也称为unidecode)。 | |
gse | 1065 | 高效的文本分割;支持英语、汉语、日语等。 | |
icu | 19 | Cgo绑定用于icu4c C库的检测和转换功能。保证与版本50.1兼容。 | |
kagome | 413 | JP形态学分析仪编写的纯Go。 | |
libtextcat | 10 | 用于libtextcat C库的Cgo绑定。保证与版本2.2兼容。 | |
MMSEGO | 59 | 这是一个 Go 实现的MMSEG,这是一个中文分词算法。 | |
nlp | 353 | 从字符串中提取值并用nlp填充结构。 | |
nlp | 216 | 支持LSA(潜在语义分析)的Go自然语言处理库。 | |
paicehusk | 25 | Golang实现了Paice/外壳阻塞算法。 | |
petrovich | 22 | 彼得罗维奇是一个图书馆,它把俄语名字的词形变化成特定的语法格。 | |
porter | 8 | 这是Martin Porter在C语言中实现的Porter词干分析算法的一个相当简单的移植。 | |
porter2 | 33 | 非常快的波特2史坦默。 | |
prose | 2039 | 用于支持标记化、词性标记、名称实体提取等文本处理的库。 | |
RAKE.go | 45 | 快速自动关键字提取算法(RAKE)的Go端口。 | |
segment | 46 | Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29 | |
sentences | 260 | 句子标记器:将文本转换为句子列表。 | |
shamoji | 10 | shamoji是用Go编写的word过滤包。 | |
snowball | 24 | 滚雪球柄端口(cgo包装)为 Go 。提供词干提取功能Snowball native。 | |
stemmer | 47 | 用于Go编程语言的Stemmer包。包括英语和德语词根。 | |
textcat | 60 | Go package支持基于n-gram的文本分类,支持utf-8和原始文本。 | |
whatlanggo | 350 | Go的自然语言检测包。支持84种语言和24种脚本(书写系统,如拉丁语、西里尔语等)。 | |
when | 926 | 带有可插入规则的自然EN和RU语言日期/时间解析器。 |
网络
用于处理各种网络层的库。
name | star | desc | tag |
---|---|---|---|
arp | 194 | 实现了arp协议,如RFC 826中所述。 | |
buffstreams | 232 | 通过TCP传输协议缓冲区数据。 | |
canopus | 133 | CoAP客户端/服务器实现(RFC 7252)。 | |
cidranger | 387 | 快速得 IP 到 CIDR 查找。 | |
dhcp6 | 62 | 实现了一个DHCPv6服务器,如RFC 3315所述。 | |
dns | 3775 | 用于 DNS 的库。 | |
ether | 62 | 一个用于发送和接收以太网帧的跨平台 Go 库。 | |
ethernet | 185 | 实现了对IEEE 802.3以太网II帧和IEEE 802.1Q VLAN标签的编组和解组。 | |
fasthttp | 9246 | 一个快速HTTP实现,比net/http快10倍。 | |
fortio | 862 | 负载测试库和命令行工具,高级的echo服务器和web UI。允许指定一组每秒查询的负载,并记录延迟直方图和其他有用的统计数据,并将它们作图。支持Tcp、Http、gRPC。 | |
ftp | 521 | 实现了RFC 959中描述的ftp客户端。 | |
gmqtt | 82 | Gmqtt是一个灵活、高性能的MQTT代理库,它完全实现了MQTT协议V3.1.1。 | |
gNxI | 98 | 一组基于 gNMI 和 gNOI 协议的网络管理工具。 | |
go-getter | 723 | 通过URL来下载文件或目录。 | |
go-stun | 331 | 实现了 STUN 客户端(RFC 3489和RFC 5389)。 | |
gobgp | 1666 | 基于 Go 的 BGP 实现。 | |
golibwireshark | 15 | 用于解码 pcap 文件和分析解剖数据。 | |
gopacket | 2858 | Go library for packet processing with libpcap bindings. | |
gopcap | 353 | 用 Go 实现了对 libpcap 的封装。 | |
goshark | 9 | 用于解码IP包,创建用于分析的数据结构包。 | |
gosnmp | 433 | 用于执行 SNMP 操作的原生 Go 库。 | |
gotcp | 411 | 用于快速编写 tcp 应用程序。 | |
grab | 545 | 用于管理文件下载。 | |
graval | 24 | FTP服务器框架。 | |
HTTPLab | 3401 | HTTPLabs 允许你检查 HTTP 请求和伪造响应。 | |
iplib | 24 | 用于处理IP地址的库(net)。借鉴于python 的 ipaddress和ruby ipaddr | |
jazigo | 123 | Jazigo是一个用Go编写的工具,用于检索多个网络设备的配置。 | |
kcp-go | 2237 | 快速可靠的ARQ协议。 | |
kcptun | 10629 | 基于KCP协议的非常简单和快速udp隧道。 | |
lhttp | 512 | 强大的websocket框架,可以让你更容易的构建IM服务器。 | |
linkio | 44 | 网络链路速度模拟,主要用于接口的读/写。 | |
llb | 8 | 一个非常简单、快速的代理服务器后端。可用于快速重定向到预定义域,具有零内存分配和快速响应。 | |
mdns | 547 | 简单mDNS(Multicast DNS)客户端/服务器库。 | |
mqttPaho | - | Paho Go客户端提供了一个 MQTT 客户端库,用于通过TCP、TLS或WebSockets连接到MQTT代理。 | |
NFF-Go | 655 | 用于快速开发云计算和裸机网络功能的框架(原YANFF)。 | |
packet | 27 | 通过TCP和UDP发送数据包。它可以缓冲消息和热交换连接。 | |
peerdiscovery | 359 | 基于UDP组播的跨平台本地对等点发现库。 | |
portproxy | 42 | Simple TCP proxy which adds CORS support to API's which don't support it. | |
publicip | 18 | 包publicip返回面向公共的IPv4地址(internet出口)。 | |
quic-go | 2872 | 在纯Go中实现了QUIC协议。 | |
raw | 302 | Package raw支持在设备驱动程序级别读取和写入网络接口的数据。 | |
sftp | 732 | Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. | |
ssh | 1102 | 用于构建SSH服务器的高级API(封装密码/ SSH)。 | |
sslb | 113 | 它是一个超级简单的负载平衡器,只是一个实现某种性能的小项目。 | |
stun | 270 | Go实现的RFC 5389 STUN协议。 | |
tcp_server | 282 | Go 图书馆建设tcp服务器更快。 | |
tspool | 6 | TCP库使用工作池来提高性能并保护服务器。 | |
utp | 149 | Go uTP微传输协议的实现。 | |
water | 833 | 简单TUN / TAP图书馆。 | |
webrtc | 2171 | WebRTC API的纯Go实现。 | |
winrm | 210 | Go WinRM客户端远程执行Windows机器上的命令。 | |
xtcp | 81 | TCP服务器框架具有同时全双工通信,优雅关机,自定义协议。 |
HTTP客户端
用于发出HTTP请求的库。
name | star | desc | tag |
---|---|---|---|
gentleman | 675 | 功能齐全的插件驱动HTTP客户端库。 | |
goreq | 98 | 基于gorequest的增强简化HTTP客户机。 | |
grequests | 1408 | 一个 Go “克隆”的伟大和著名的请求库。 | |
heimdall | 1067 | 具有重试和hystrix功能的增强http客户机。 | |
pester | 326 | 使用重试、后退和并发执行HTTP客户机调用。 | |
rq | 26 | golang stdlib HTTP客户端更好的接口。 | |
sling | 991 | Sling是一个用于创建和发送API请求的Go HTTP客户端库。 |
OpenGL
用于在Go中使用OpenGL的库。
name | star | desc | tag |
---|---|---|---|
gl | 639 | OpenGL 的 Go 接口实现(通过glow生成)。 | |
glfw | 729 | GLFW 3 的 Go 接口实现。 | |
goxjs/gl | 131 | 跨平台的OpenGL 接口实现(OS X, Linux, Windows,浏览器,iOS, Android)。 | |
goxjs/glfw | 58 | 跨平台 glfw 库,可用于创建 OpenGL 上下文并接收事件。 | |
mathgl | 289 | 完全基于 Go 实现的数学软件包,专门用于处理三维数学。借鉴于 GLM。 |
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
name | star | desc | tag |
---|---|---|---|
beego orm | - | 强大的orm框架。支持: pq/mysql/sqlite3。 | |
go-firestorm | 1 | 一个轻量级的ORM。用于Google/Firebase Cloud Firestore。 | |
go-pg | 2943 | 用于 PostgreSQL 的ORM。侧重于 PostgreSQL 的特性和性能。 | |
go-queryset | 446 | 基于 GORM 100% 类型安全的 ORM。可支持 MySQL, PostgreSQL, Sqlite3, SQL Server。 | |
go-sqlbuilder | 232 | 一个灵活而强大的SQL字符串构建器库。 | |
go-store | 93 | 简单且快速的 Redis 键值存储库。 | |
GORM | 14537 | 一个出色的 ORM 库。主要目标是对开发人员友好。 | |
gorp | 3073 | 基于 Go 的关系持久性 ORM-ish 库。 | |
grimoire | 112 | 基于 golang 的数据库访问层和验证库。(支持: MySQL, PostgreSQL和SQLite3)。 | |
lore | 4 | Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. | |
Marlow | 63 | 从项目结构生成ORM。 | |
pop/soda | 673 | 数据库迁移、创建、ORM等。用于MySQL、PostgreSQL和SQLite。 | |
QBS | 539 | Stands for Query By Struct. A Go ORM. | |
reform | 792 | 基于非空接口和代码生成的 ORM。 | |
SQLBoiler | 2252 | ORM 生成器。根据数据库 schema 生成一个功能强大且运行速度快的ORM。 | |
upper.io/db | 1840 | 对外提供统一的接口用于访问不同的存储介质,例如PostgreSQL, MySQL, SQLite, MSSQL, QL、MongoDB.。 | |
Xorm | 5153 | 基于 Go 的简单而强大的ORM。 | |
Zoom | 239 | 基于 Redis 的快速数据存储和查询引擎。 |
包管理
用于管理依赖和包的官方工具
name | star | desc | tag |
---|---|---|---|
go modules | - | Modules 是源码的版本控制和交换的单位。go命令直接支持处理模块,包括记录和解决对其他模块的依赖关系。 |
包管理的官方实验工具
name | star | desc | tag |
---|---|---|---|
dep | 12538 | Go 的依赖管理工具,需要 Go 1.9+ | |
vgo | - | Go 命令版本管理 |
用于包和依赖项管理的非官方库。
name | star | desc | tag |
---|---|---|---|
gigo | 197 | 类似pip的golang依赖工具,支持私有存储库和散列。 | |
glide | 7772 | 轻松管理您的 golang 第三方包。受Maven、Bundler和Pip等工具的启发。 | |
godep | 5650 | godep是go的依赖工具,它通过修复包的依赖关系来帮助构建可重复的包。 | |
gom | 1350 | Go Manager - bundle for Go。 | |
goop | 777 | Go 的简单依赖管理器,灵感来自Bundler。 | |
gop | 50 | 在GOPATH之外构建和管理Go应用程序。 | |
gopm | 2350 | 包管理器。 | |
govendor | 4725 | 包管理器。使用 vendor 文件的 Go vendor 工具。 | |
gpm | 1205 | 基本的 Go 依赖管理器。 | |
johnny-deps | 214 | 使用Git的最小依赖版本。 | |
mvn-golang | 87 | 插件,为自动加载Golang SDK,依赖关系管理和启动Maven项目基础设施中的构建环境提供了方法。 | |
nut | 245 | vendor 依赖。 | |
VenGO | 115 | 创建和管理可导出的隔离go虚拟环境。 |
查询语言
name | star | desc | tag |
---|---|---|---|
gojsonq | 855 | 一个用来查询JSON数据的Go包。 | |
graphql | 51 | graphql解析器+工具集 | |
graphql | 2754 | 关注易用性的GraphQL服务器。 | |
graphql-go | 5176 | 为Go实现GraphQL。 | |
jsonql | 201 | Golang中的JSON查询表达式库。 | |
jsonslice | 23 | 使用高级过滤器查询Jsonpath。 | |
rql | 111 | 用于REST API的资源查询语言。 |
嵌入的资源
name | star | desc | tag |
---|---|---|---|
esc | 467 | 将文件嵌入到Go程序中并提供http文件系统接口。 | |
fileb0x | 418 | 一个可定制的工具用来在Go中嵌入文件 | |
go-embed | 14 | 生成go代码,将资源文件嵌入到库或可执行文件中。 | |
go-resources | 154 | 嵌入到Go中的普通资源。 | |
go.rice | 1642 | go.rice 是一个Go包,它使处理html、js、css、图像和模板等资源变得非常容易。 | |
packr | 2089 | 将静态文件嵌入到Go二进制文件中的简单方法。 | |
statics | 53 | 将静态资源嵌入到go文件中,用于单个二进制编译+使用http。文件系统+符号链接。 | |
statik | 2082 | 将静态文件嵌入到Go可执行文件中。 | |
templify | 19 | 将外部模板文件嵌入到Go代码中,以创建单个文件二进制文件。 | |
vfsgen | 648 | 生成一个vfsdata。静态实现给定虚拟文件系统的go文件。 |
科学与数据分析
用于科学计算和数据分析的库。
name | star | desc | tag |
---|---|---|---|
assocentity | 3 | assocentity 返回单词到给定实体的平均距离。 | |
bradleyterry | - | 为成对比较提供了一个 Bradley-Terry 模型。 | |
chart | 580 | 简单的图表绘制库。支持多种图形类型。 | |
dataframe-go | 74 | 用于机器学习和统计的数据模型(类似于 pandas)。 | |
evaler | 40 | 简单的浮点算术表达式求值器。 | |
ewma | 265 | 提供指数加权移动平均算法。 | |
geom | 40 | Go 的二维几何。 | |
go-dsp | 625 | Go数字信号处理。 | |
go-fn | 11 | 用Go语言编写的数学函数,不包括在math pkg中。 | |
go-gt | 5 | 用“Go”语言编写的图论算法。 | |
gocomplex | 5 | 用于 Go 编程语言的复数库。 | |
goent | 13 | Go 实现熵度量。 | |
gohistogram | 126 | 数据流的近似直方图。 | |
gonum | 2927 | Gonum是一组用于Go编程语言的数字库。它包含用于矩阵、统计、优化等的库。 | |
gonum/plot | 1205 | gonum/plot提供了一个API,用于在Go中构建和绘制绘图。 | |
goraph | 597 | 纯Go图论库(数据结构,算法可视化)。 | |
gosl | 1302 | 提供线性代数,FFT,几何,NURBS,数值方法,概率,优化,微分方程,等等。 | |
GoStats | 9 | GoStats是一个开放源码的GoLang库,主要用于机器学习领域的数学统计,它涵盖了大多数统计度量函数。 | |
graph | 232 | 基本图形算法库。 | |
ode | 10 | 常微分方程(ODE)求解器,支持扩展状态和基于信道的迭代停止条件。 | |
orb | 196 | 2D几何类型,支持剪切、GeoJSON和Mapbox矢量平铺。 | |
pagerank | 48 | 加权 PageRank 算法在Go中的实现。 | |
piecewiselinear | 5 | 微型线性插值库。 | |
PiHex | 9 | 实现了针对16进制数 Pi 的“bailee - borwein - plouffe”算法。 | |
rootfinding | 3 | 二次函数求根算法库。 | |
sparse | 68 | Go 稀疏矩阵格式的线性代数支持科学和机器学习应用程序,兼容gonum矩阵库。 | |
stats | 1337 | 包含Golang标准库中缺少的公共函数的统计软件包。 | |
streamtools | 1313 | 通用图形工具,用于处理数据流。 | |
TextRank | 65 | TextRank在Golang中的实现,支持扩展特性(摘要、加权、短语提取)和多线程(goroutine)。 | |
triangolatte | 11 | 二维三角库。允许将线和多边形(都基于点)转换为gpu语言。 |
安全
用于帮助您的应用程序更安全的库。
name | star | desc | tag |
---|---|---|---|
acmetool | 1694 | ACME(让我们用自动更新加密)客户端工具。 | |
acra | 449 | 网络加密代理保护基于数据库的应用程序免受数据泄漏:强选择性加密,SQL注入预防,入侵检测系统。 | |
argon2pw | 72 | 使用常量时间密码比较生成Argon2密码散列。 | |
autocert | - | 让我们加密证书并启动TLS服务器。 | |
BadActor | 246 | 一个驻留在内存中的,应用驱动的监控程序,受 fail2ban 的启发 | |
Cameradar | 1818 | 工具和库,以远程入侵RTSP流从监控摄像头。 | |
certificates | 6 | 用于生成tls证书的自定义工具。 | |
go-yara | 131 | YARA的 Go 语言接口,号称是 “对于恶意软件研究者(以及其他人)来说是模式匹配的瑞士军刀” | |
goArgonPass | 11 | Argon2密码散列和验证设计为与现有Python和PHP实现兼容。 | |
goSecretBoxPassword | 29 | 一个安全哈希和加密密码的偏执包。 | |
Interpol | - | 基于规则的数据生成器,用于模糊和渗透测试。 | |
jwc | 5 | JSON Web加密库。 | |
lego | 3467 | 纯 Go ACME 客户端库及命令行工具 | |
memguard | 1397 | 一个用于处理内存中敏感值的纯Go库。 | |
nacl | 450 | Go 实现NaCL API的集合。 | |
passlib | 225 | 不过时的密码哈希库。 | |
secure | 1198 | Go 语言 HTTP 中间件,为 Go 提供了一些安全功能 | |
simple-scrypt | 156 | Scrypt 库,具有简单、易懂的 API,同时具有内置的自动校准功能 | |
ssh-vault | 195 | 使用ssh密钥加密/解密。 | |
sslmgr | 7 | 使用围绕acme/autocert的高级包装器,SSL证书变得很容易。 |
序列化
用于二进制序列化的库和工具。
name | star | desc | tag |
---|---|---|---|
asn1 | 40 | 面向golang的BER和DER编码库。 | |
bambam | 60 | 用于 Go 语言生成 Cap'n Proto schemas 的生成器 | |
bel | 5 | 从Go structs/interface生成TypeScript接口。对JSON RPC很有用。 | |
binstruct | 7 | 用于将数据映射到结构中的Golang二进制解码器。 | |
colfer | 471 | 为Colfer二进制格式生成代码。 | |
csvutil | 300 | 高性能、惯用的CSV记录编码和解码到本机Go结构。 | |
fwencoder | 6 | 用于Go的固定宽度文件解析器(编码和解码库)。 | |
go-capnproto | 272 | Go 语言用的 Cap'n Proto 库及解析器 | |
go-codec | 1227 | 高性能、多功能、规范化编码解码以及 rpc 库, 用于 msgpack, cbor 和 json,支持基于运行时的 OR 码生成 | |
gogoprotobuf | 2917 | Go 语言的 Protocol Buffer 库。 | |
goprotobuf | 5036 | 通过库和协议编译器插件使 Go 语言支持 Google的 protocol buffers. | |
jsoniter | 5488 | 高性能,100% 兼容的“encoding/json” 替代品 | |
mapstructure | 2385 | 用于对原生键值对进行解码生成 Go 语言结构体 | |
php_session_decoder | 118 | 用于协同 PHP session 格式数据和 PHP 序列化/反序列化函数工作的go语言库 | |
structomap | 94 | 用于从静态结构体简单、动态的生成键值对的库 |
服务器应用程序
name | star | desc | tag |
---|---|---|---|
algernon | 1582 | 内置支持Lua、Markdown、GCSS和Amber的HTTP/2 web服务器。 | |
Caddy | 23043 | Caddy是另一种HTTP/2 web服务器,易于配置和使用。 | |
consul | - | Consul 是一个用于服务发现、监控和配置的工具 | |
devd | 2800 | 为开发人员提供本地web服务器。 | |
discovery | 668 | 用于弹性中间层负载平衡和故障转移的注册表。 | |
etcd | 26282 | 为共享配置和服务发现提供高可用的键值存储。 | |
Fider | 788 | Fider是一个收集和组织客户反馈的开放平台。 | |
Flagr | 815 | Flagr是一个开源特性标记和A/B测试服务。 | |
flipt | 983 | 一个用Go和Vue.js编写的自包含特性标志解决方案 | |
jackal | 710 | 用Go编写的XMPP服务器。 | |
minio | 17177 | Minio是一个分布式对象存储服务器。 | |
nginx-prometheus | 5 | Nginx日志解析器和Prometheus 导出。 | |
nsq | - | 一个实时分布式消息平台。 | |
psql-streamer | 5 | 从PostgreSQL到Kafka的流数据库事件。 | |
riemann-relay | - | 传递到负载平衡Riemann事件并/或将其转换为 Carbon。 | |
RoadRunner | 3231 | 高性能PHP应用服务器,负载平衡器和进程管理器。 | |
yakvs | - | 小型化、网络化、基于内存的键值存储 |
模板引擎
用于模板和词法分析的库和工具。
name | star | desc | tag |
---|---|---|---|
ace | 761 | Ace 是一个 Go 语言的 HTML 模板引擎,受到了 Slim 和 Jade 的启发。 Ace 是对Gold的一种改进。 | |
amber | 822 | Amber是一个优雅的Go编程语言模板引擎,它的灵感来自HAML和Jade。 | |
damsel | 20 | 标记语言,通过css选择器实现了 html 框架 ,并可以通过 pkg html/template 等进行扩展 | |
ego | 415 | 轻量级模板语言,允许您在Go中编写模板。模板被翻译成Go并编译。 | |
extemplate | 13 | 对 html/template 进行了简单的封装,支持基于文件的模板可以利用其他模板文件进行扩展 | |
fasttemplate | 293 | 简单快速的模板引擎。进行模板元素替换时,速度是比text/template快10倍。 | |
gofpdf | 3062 | PDF 文档生成器,支持文本,绘图和图片 | |
goview | 43 | Goview是一个轻量级、极简的模板库,基于golang html/template构建Go web应用程序。 | |
hero | 1199 | Hero是一个方便、快速和强大的go模板引擎。 | |
jet | 580 | Jet模板引擎。 | |
kasia.go | 70 | 一个用于HTML 和其他文本文件的模板系统,使用go语言实现 | |
liquid | 83 | Go 语言实现的 Shopify Liquid 模板. | |
mustache | 967 | Go 语言实现的 Mustache 模板语言 | |
pongo2 | 1485 | 类似 DjanGo 的模板引擎 | |
quicktemplate | 1394 | 快速、强大且易用的模板引擎。将模板转化为 Go 语言并进行编译 | |
raymond | 338 | 使用 Go 语言实现的完整的 handlebars | |
Razor | 696 | Go 语言的 Razor 视图引擎 | |
Soy | 144 | Go 语言实现的谷歌闭包模板(也就是 Soy templates) ,遵循官方规范。 | |
velvet | 64 | 使用 Go 语言实现的完整的 handlebars |
测试
用于测试代码库和生成测试数据的库。
- Testing Frameworks
name | star | desc | tag |
---|---|---|---|
assert | 13 | 基础断言库,用于对 Go 语言程序进行测试,提供了一些用于自定义断言的代码块 | |
badio | 9 | Go 语言 testing/iotest 包的扩展。 | |
baloo | 643 | 表达性强、多功能的、端到端的HTTP API 测试工具 | |
biff | 6 | 分支测试框架,BDD兼容。 | |
bro | 26 | 监控目录中的文件并对其进行测试 | |
charlatan | 188 | 为测试生成假接口实现的工具。 | |
commander | 32 | 用于在windows、linux和osx上测试cli应用程序的工具。 | |
cupaloy | 83 | 测试框架的简单快照测试插件。 | |
dbcleaner | 84 | 清空数据库用于测试,受到database_cleaner 的启发 | |
dsunit | 25 | 用于SQL、NoSQL、结构化文件的数据存储测试。 | |
endly | 91 | 声明性端到端功能测试。 | |
flute | 1 | HTTP客户端测试框架。 | |
frisby | 250 | REST API测试框架。 | |
ginkgo | - | Go的BDD测试框架。 | |
go-carpet | 195 | 在终端中查看测试覆盖率的工具。 | |
go-cmp | 1134 | 用于比较测试中的Go值的包。 | |
go-mutesting | 291 | 变异测试的Go源代码。 | |
go-testdeep | 55 | 极具灵活性的golang深度比较,扩展了go测试包。 | |
go-vcr | 329 | 记录并回放HTTP交互,以便进行快速、确定和准确的测试。 | |
goblin | 616 | 类似Mocha的测试框架。 | |
gocheck | - | 更加高级的测试框架,用于替换 Gotest | |
GoConvey | - | BDD 风格的测试框架,具有 web 界面和计时刷新功能 | |
gocrest | 8 | 用于 Go 断言的可组合的类似 hamcrest 的 matchers。 | |
godog | 745 | 类似 Cucumber 或 Behat 的 BDD 框架 | |
gofight | 253 | 对 Go 语言的路由框架进行 API 测试 | |
gogiven | 7 | 类似于 YATSPEC 的Go BDD测试框架。 | |
gomatch | 30 | 为针对模式测试JSON而创建的库。 | |
gomega | - | 类似 Rspec 的 matcher/assertion 库 | |
GoSpec | 111 | 用于 Go 编程语言的bdd风格的测试框架。 | |
gospecify | 51 | 支持 BDD 语法 。对于任何使用过 rspec 等库的人来说应该非常熟悉。 | |
gosuite | 9 | 轻量级测试套,为 Go1.7's Subtests 带来了setup/teardown 功能 | |
gotest.tools | 118 | 一组包,用于增强go测试包并支持公共模式。 | |
Hamcrest | 26 | 用于声明性 Matcher 对象的连贯框架,当将其应用于输入值时,将产生自描述结果。 | |
httpexpect | 1137 | 简洁的、声明式的、易用的端到端HTTP 及 REST API 测试 | |
jsonassert | 21 | 用于验证JSON有效负载已正确序列化的包。 | |
restit | 49 | 帮助编写 RESTful API 集成测试的 Go 语言微型框架.。 | |
testcase | 8 | 行为驱动开发的惯用测试框架。 | |
testfixtures | 322 | 类似 Rails 的测试工具,用于测试数据库应用 | |
Testify | 8051 | 对标准测试包的扩展。 | |
testmd | - | 将markdown代码段转换为可测试的go代码。 | |
testsql | 7 | 在测试前从SQL文件生成测试数据,并在测试完成后清除数据。 | |
Tt | 5 | 简单而丰富多彩的测试工具。 | |
wstest | 62 | 用于单元测试Websocket http.Handler的Websocket客户机。 |
- Mock
name | star | desc | tag |
---|---|---|---|
counterfeiter | 357 | 用于生成自包含 mock 对象的工具 | |
go-sqlmock | 1718 | Mock SQL ,用于测试数据库交互 | |
go-txdb | 158 | 基于单事务的数据库驱动,主要用于测试目的 | |
gock | 807 | 多功能、易用 HTTP mock | |
gomock | 2802 | 用于Go编程语言的mock框架。 | |
govcr | 82 | HTTP mock : 离线测试时记录和重放浏览器的动作 | |
hoverfly | 1433 | 使用可扩展中间件和易于使用的CLI记录和模拟REST/SOAP api的HTTP(S)代理。 | |
httpmock | 576 | 轻松模拟来自外部资源的HTTP响应。 | |
minimock | 256 | Go接口的模拟生成器。 | |
mockhttp | 22 | Go http.ResponseWriter的模拟对象。 |
- Fuzzing and delta-debugging/reducing/shrinking.
name | star | desc | tag |
---|---|---|---|
go-fuzz | 2865 | 随机测试系统。 | |
gofuzz | 530 | 用于生成随机值来初始化 Go 语言对象的库 | |
Tavor | 211 | 通用模糊测试框架 |
- Selenium and browser control tools.
name | star | desc | tag |
---|---|---|---|
cdp | 351 | 用于Chrome调试协议的类型安全绑定,可与实现该协议的浏览器或其他调试目标一起使用。 | |
chromedp | 3514 | 用于驱动和测试 Chrome, Safari, Edge, Android Webviews, 以及其他支持 Chrome 调试协议的产品 | |
ggr | 208 | 一个轻量级服务器,可以将 Selenium Wedriver 的请求路由或代理到多个 Selenium hubs | |
selenoid | 1216 | Selenium hub 服务器的替代品,在容器中启动浏览器 |
- Fail injection
name | star | desc | tag |
---|---|---|---|
failpoint | 381 | 为Golang实现failpoints。 |
文本处理
用于解析和操作文本的库。
- Specific Formats
name | star | desc | tag |
---|---|---|---|
align | 57 | 对文本进行对齐的通用应用程序。 | |
allot | 34 | 用于CLI工具和机器人的占位符和通配符文本解析。 | |
bbConvert | 5 | 将bbCode转换为HTML,使您可以添加对自定义bbCode标记的支持。 | |
blackfriday | 3871 | Markdown 解析器 | |
bluemonday | 1235 | HTML 清理工具 | |
codetree | 7 | 解析缩进代码(python、pixy、scarlet等)并返回树结构。 | |
colly | 8293 | 快速和优雅的 Scraping 框架。 | |
commonregex | 551 | 一组用于Go的公共正则表达式。 | |
dataflowkit | 287 | Web抓取框架将网站转换为结构化数据。 | |
did | 23 | DID(分散标识符)解析器和Stringer。 | |
doi | 4 | 文档对象标识符(doi)解析器。 | |
editorconfig-core-go | 37 | Editorconfig文件解析器和Go操作器。 | |
enca | 7 | libenca的最小cgo绑定。 | |
encdec | 3 | 软件包为编码器和解码器提供了通用接口。 | |
genex | 51 | 将正则表达式计数并展开为所有匹配的字符串。 | |
github_flavored_markdown | - | GitHub 风格的 Markdown 渲染器 (使用 blackfriday) ,支持代码块高亮以及可点击的锚点 | |
go-fixedwidth | 25 | 固定宽度的文本格式(带反射的编码器/解码器)。 | |
go-humanize | 1888 | 格式化程序,用于将时间、数字和内存大小转换为可读格式。 | |
go-nmea | 94 | 用于Go语言的NMEA解析器库。 | |
go-runewidth | 210 | 函数获取字符或字符串的固定宽度。 | |
go-slugify | 28 | 生成漂亮的固定链接地址(slug),支持多种语言 | |
go-toml | 604 | 使用带有查询支持和方便的cli工具的TOML格式库。 | |
go-vcard | 24 | 解析和格式化vCard。 | |
go-zero-width | 41 | 用于Go的零宽度字符检测和删除。 | |
gofeed | 1095 | 在Go中解析RSS和Atom feeds。 | |
gographviz | 293 | 解析Graphviz DOT语言。 | |
gommon/bytes | - | 格式化二进制为字符串。 | |
gonameparts | 29 | 将人名解析为单独的名称部分。 | |
goq | 145 | 声明式 HTML 编组,使用结构标签和 jQuery 语法 (使用 GoQuery). | |
GoQuery | 7525 | GoQuery 为 Go 语言带来了一组类似 jQuery 的语法和功能 | |
goregen | 35 | 根据正则表达式生成随机字符串 | |
gotext | 229 | GNU gettext 工具 | |
guesslanguage | 44 | 通过一个 unicode 文本来猜测该文本使用的语言 | |
htmlquery | 127 | 用于HTML的XPath查询包,允许您通过XPath表达式从HTML文档中提取数据或求值。 | |
inject | 1133 | 包注入提供了一个基于反射的注入器。 | |
ltsv | 2 | 用于Go的高性能LTSV(标签为Tab Separeted Value)阅读器。 | |
mxj | 329 | 将XML编码/解码为JSON或map[string]接口{};使用点符号路径和通配符提取值。替换x2j和j2x包。 | |
sdp | 69 | SDP:会话描述协议[RFC 4566]。 | |
sh | 1975 | Shell解析器和格式化工具。 | |
slug | 368 | URL 友好的 slug 化工具,支持多种语言 | |
Slugify | 26 | 字符串 slug 化的工具。 | |
syndfeed | 5 | Atom 1.0和RSS 2.0的联合提要。 | |
toml | 2762 | TOML配置格式(带反射的编码器/解码器)。 |
- Utility
name | star | desc | tag |
---|---|---|---|
gofuckyourself | 15 | 一个基于 sanitization 的 Go 敏感词过滤器。 | |
gotabulate | 199 | 使用 Go 语言简单、美观的打印表格数据 | |
kace | 12 | 通用大小写转换工具 | |
parseargs-go | 6 | 字符串参数解析器,能够理解引用及反斜杠。 | |
parth | 31 | URL路径分割解析。 | |
radix | 144 | 快速字符串排序算法。 | |
Tagify | - | 从给定源生成一组标记。 | |
TySug | 3 | 关于键盘布局的其他建议。 | |
xj2go | 17 | 将xml或json转换为struct。 | |
xurls | 458 | 从文本中提取url。 |
第三方api
用于访问第三方api的库。
name | star | desc | tag |
---|---|---|---|
amazon-product-advertising-api | 39 | Amazon Product Advertising API的客户端库。 | |
anaconda | 985 | Twitter 1.1 API 的 go 语言客户端 | |
aws-sdk-go | 5000 | AWS 提供的官方go语言 SDK | |
brewerydb | 16 | 用于访问 BreweryDB API的 Go 语言库 | |
cachet | 66 | 使用客户端库Cachet(开源状态页系统)。 | |
circleci | 41 | CircleCI的API的客户端 | |
clarifai | 57 | Clarifai API的客户端。 | |
codeship-go | 14 | Codeship API v2的客户端。 | |
coinpaprika-go | 12 | Coinpaprika API的客户端。 | |
discordgo | 965 | Discord Chat API的客户端。 | |
ethrpc | 168 | Ethereum JSON RPC API的客户端。 | |
766 | 支持 Facebook Graph API 的库 | ||
fcm | 32 | Firebase Cloud Messaging 的 Go 语言库 | |
gads | 43 | Google Adwords 非官方 API | |
gami | 26 | Asterisk Manager Interface 的 Go 语言库 | |
gcm | 29 | Google Cloud Messaging 库 | |
geo-golang | 305 | Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs. | |
github | 4742 | 访问GitHub REST API v3的库。 | |
githubql | 500 | 访问GitHub GraphQL API v4的库。 | |
go-chronos | 3 | 用于与Chronos作业调度程序进行交互的Go库 | |
go-hacknews | 9 | HackerNews API的小型Go客户端。 | |
go-imgur | 13 | Go imgur的客户端库 | |
go-jira | 569 | Go Atlassian JIRA的客户端库 | |
go-marathon | 189 | 用于和 Mesosphere's Marathon PAAS 交互的 Go 语言库 | |
go-myanimelist | 16 | MyAnimeList API的客户端库。 | |
go-sophos | 5 | 无任何依赖的Sophos UTM REST API客户端 | |
go-sptrans | 8 | SPTrans Olho Vivo API 的客户端。 | |
go-telegraph | - | Telegraph 发布平台 API 客户端。 | |
go-trending | 100 | 在Github上访问trends repository和developers的库。 | |
go-twitch | 17 | Twitch v3 API 的客户端。 | |
go-twitter | 707 | Twitter v1.1 api 的客户端。。 | |
go-unsplash | 20 | 使用Unsplash.com API的客户端库。 | |
go-xkcd | 38 | xkcd API 的客户端。 | |
golyrics | 30 | Golyrics是一个从Wikia网站获取音乐歌词数据的Go库。 | |
gomalshare | 1 | Go library MalShare API malshare.com | |
GoMusicBrainz | 36 | Go MusicBrainz WS2客户端库。 | |
1910 | 为Go自动生成谷歌api。 | ||
google-analytics | 12 | 简单的包装,方便的谷歌分析报告。 | |
google-cloud | 1766 | 谷歌云api Go 客户端库。 | |
google-email-audit-api | 6 | 谷歌G Suite Email Audit API 的客户端。 | |
gostorm | 118 | GoStorm是一个Go库,它实现了编写Storm spout和bolt所需的通信协议,这些协议用于与Storm shell通信。 | |
hipchat | 110 | 这个项目为Hipchat API实现了一个golang客户端库。 | |
hipchat (xmpp) | 113 | 一个用于通过XMPP与HipChat通信的golang包。 | |
igdb | 52 | Internet Game Database API 客户端。 | |
Medium | 114 | Medium的OAuth2 API 客户端。 | |
megos | 57 | 用于访问Apache Mesos集群的客户端库。 | |
minio-go | 713 | 用于Amazon S3兼容云存储的Minio Go库。 | |
mixpanel | 29 | Mixpanel是一个库,用于跟踪事件并将Mixpanel概要文件更新从go应用程序发送到Mixpanel。 | |
patreon-go | 18 | Go Patreon API库。 | |
paypal | 300 | PayPal支付API的包装器。 | |
playlyfe | 1 | Playlyfe Rest API Go SDK。 | |
pushover | 57 | Go 包装的 Pushover API。 | |
rrdaclient | 8 | 用于接入 statdns.com API 的库——RRDA API。通过HTTP协议进行 DNS查询。 | |
shopify | 19 | 一个用于通过 Shopify API 进行增删改查的 Go 语言库。 | |
simples3 | 9 | 使用REST和用Go编写的V4签名的AWS S3库非常简单。 | |
slack | 2396 | Slack API。 | |
smite | 10 | 对 Smite game API 的封装。 | |
spotify | 16 | 用于接入 Spotify WEB API 的 Go 语言库 | |
steam | 14 | 用于与Steam服务器进行交互的库。 | |
stripe | 935 | Stripe API 的 Go 语言客户端 | |
textbelt | 14 | textbelt.com txt messaging API 的go语言客户端。 | |
TheMovieDb | 12 | 能与themoviedb.org简易通信的golang包。 | |
translate | 27 | Go 在线翻译包。 | |
Trello | 101 | Trello API的 Go 语言封装。 | |
TripAdvisor | 1 | TripAdvisor API 的 Go 语言封装。 | |
tumblr | 6 | Tumblr v2 API 的 Go 语言封装。 | |
uptimerobot | 35 | 运行时Robot v2 API 的 Go 语言封装和命令行客户端。 | |
webhooks | 340 | GitHub 和 Bitbucket 的Webhook接收器。 | |
wit-go | 47 | wit.ai HTTP API 客户端。 | |
ynab | 12 | YNAB API 的 Go 语言封装。 | |
zooz | 5 | Zooz API 的 Go 语言客户端。 |
公用事业公司
可以让你的生活变得更简单的实用工具.。
name | star | desc | tag |
---|---|---|---|
abutil | 51 | 常用 Go 语言工具的集合。 | |
apm | 129 | Go 语言进程管理工具具有HTTP API.。 | |
backscanner | 8 | 类似 bufio 的扫描器,但它以相反的顺序读取和返回行,从给定的位置开始,然后返回。 | |
blank | 1 | 验证或删除字符串中的空白。 | |
boilr | 929 | 非常快的CLI工具,用于从样板模板创建项目。 | |
chyle | 106 | 使用具有多种配置可能性的git存储库生成变更日志。 | |
circuit | 328 | 一个高效和功能齐全的 类似 Hystrix Go 实现断路器模式。 | |
circuitbreaker | 785 | 接通断路器。 | |
clockwork | 219 | 一个简单的假 clock 。 | |
command | 9 | 命令模式,支持线程安全的串行、并行调度。 | |
copy-pasta | 36 | 通用多工作站剪切板,使用类似 S3 的后端作为存储。 | |
ctop | 8780 | Top-like接口(例如htop), 用于容器数据收集。 | |
ctxutil | 7 | 上下文工具。 | |
dbt | 12 | 用于从中心可信存储库运行自更新签名二进制文件的框架。 | |
Death | 132 | 利用信号管理应用程序的关闭。 | |
Deepcopier | 209 | 结构体拷贝 | |
delve | 11929 | Go 语言调试器 | |
dlog | 15 | 编译时控制的日志,让你的 release 包变得更小而不需移除 debug 调用。 | |
ergo | 309 | 管理运行在不同端口上的多个本地服务变得很容易。 | |
evaluator | 14 | 基于 s-expression。它很简单,很容易扩展。 | |
fastlz | 12 | FastLz(免费,开源,可移植实时压缩库) 的一个封装 | |
filetype | 939 | 通过数字签名来推测文件类型。 | |
filler | 14 | 使用“fill”标签填充结构的小工具。 | |
filter | 11 | 提供Go数据的过滤、清理和转换。 | |
fzf | 22972 | 用Go编写的命令行模糊查找器。 | |
gaper | 39 | 当Go项目崩溃或一些人看到文件更改时,构建并重新启动该项目。 | |
generate | 19 | 针对一个路径或环境变量,递归的执行 Go generate,可以通过正则表达式来进行过滤。 | |
ghokin | 12 | 没有外部依赖的gherkin (cucumber, behat…)并行格式化程序。 | |
git-time-metric | 713 | git-time-metric - 。 | |
go-astitodo | 45 | 解析你 Go 语言代码中的 TODOs(待办事项)。 | |
go-bind-plugin | 159 | Go:generate 工具,用于构建 Go 语言插件(1.8 only),并对导出的符号进行包装。 | |
go-bsdiff | 81 | 纯Go bsdiff和bspatch库和CLI工具。 | |
go-dry | 431 | DRY(don't repeat yourself)库。 | |
go-funk | 1156 | 现代 Go 语言工具库,提供了很多有用的工具 (map, find, contains, filter, chunk, reverse, ...) | |
go-health | 63 | 健康包简化了向服务中添加健康检查的方式。 | |
go-httpheader | 14 | 用于将结构体编码进 http 头的 Go 语言库 | |
go-problemdetails | 2 | 打包处理问题细节。 | |
go-rate | 292 | Go 限速器。 | |
go-sitemap-generator | 104 | 用Go编写的XML站点地图生成器。 | |
go-torch | 3634 | 为 Go 语言程序生成火焰图。 | |
go-trigger | 180 | Go 语言全局事件触发器,通过 id 和触发器,在程序的任何地方注册事件。 | |
goback | 40 | 一个 Go 语言的简单的指数补偿包。 | |
godaemon | 403 | 用于编写守护进程的工具 | |
godropbox | 3741 | 用于编写 Go 语言服务/应用的库,来自 Dropbox.。 | |
gohper | 248 | 多种能够帮助你进行软件开发的工具和模块。 | |
golarm | 34 | 告警(支持系统事件)。 | |
golog | 43 | 简单、轻量级的命令后工具,用于对你的计划任务进行跟踪。 | |
gopencils | 423 | 小而简单的包,可以轻松地使用REST api。 | |
goplaceholder | 22 | 一个小巧的 Go 语言库用于生成占位图片。 | |
goreadability | 32 | 网页摘要提取器使用Facebook开放图形和arc90的可读性。 | |
goreleaser | 4471 | 尽可能快速的发布 Go 语言二进制文件。 | |
goreporter | 2481 | 进行代码静态分析,单元测试,代码检视并生成代码质量报告的工具 | |
goseaweedfs | 27 | conseilSeaweedFS 客户端,几乎具有全部的特性。 | |
gostrutils | 14 | 字符串操作和转换函数的集合。 | |
gotenv | 138 | 从 .env 或者任何 io.Reader 。 |
|
gpath | 29 | 用于简化结构体域访问的库。 | |
gubrak | 136 | 带有语法糖的Golang实用工具,就像lodash。 | |
handy | 45 | 许多实用程序和帮助程序,如字符串处理程序/格式化程序和验证器。 | |
htcat | 480 | 并行及流水线的 HTTP GET 工具。 | |
hub | 16869 | 封装了 git 命令,提供了额外的功能用于在终端中和 Github 进行交互。 | |
hystrix-go | 1995 | 实现 Hystrix 风格的、程序员预定义的 fallback 机制(熔断。 | |
immortal | 602 | *nix 跨平台 (与操作系统无关的)监控程序。 | |
intrinsic | 39 | 不需要编写任何汇编代码就能使用 x86 SIMD。 | |
jump | 650 | 通过学习你的习惯,可以帮助你更快地导航。 | |
koazee | 293 | 库的灵感来自于延迟计算和函数式编程,从而减少了使用数组的麻烦。 | |
lrserver | 100 | LiveReload 服务器。 | |
mc | 1099 | Minio Client 提供了一组工具,用于操作 Amazon S3 兼容云存储和文件系统。 | |
mergo | 845 | 用于将结构体和map合并进 Go 语言的工具。对于配置默认值,避免杂乱的if语句很有帮助。 | |
mimemagic | 42 | 纯粹 Go 超性能MIME嗅探库/实用程序。 | |
mimesniffer | 7 | 一个用于Go的MIME类型嗅探器。 | |
mimetype | 106 | 用于基于神奇数字的MIME类型检测的包。 | |
minify | 1854 | 用于HTML、CSS、JS、XML、JSON和SVG文件格式的快速缩小器。 | |
minquery | 50 | MongoDB / mgo.v2, 支持高效分页查询(用于继续列出我们停止的文档的游标)。 | |
mmake | 1446 | 现代 Make 工具 | |
moldova | 148 | 基于输入目标生成随机数据的工具 | |
mole | 1299 | cli应用程序可以轻松创建ssh隧道。 | |
mssqlx | 57 | 数据库客户端,用于主-从 (或主-主) 数据库,集成了简单的、轻量级的轮询调度负载均衡。 | |
multitick | 58 | 用于 aligned tickers 的多路复用 | |
myhttp | 34 | 简单的API,使HTTP GET请求与超时支持。 | |
netbug | 65 | 远程对你的服务进行性能分析 | |
okrun | 14 | Go 运行错误 steamroller。 | |
olaf | 1 | Twitter Snowflake 在Go中实现。 | |
onecache | 99 | 支持多个后端存储(Redis、Memcached、文件系统等)的缓存库。 | |
panicparse | 2139 | 将类似的协程分组并对调用栈进行着色 | |
peco | 5440 | 简单的交互过滤工具。 | |
pgo | 24 | 用于PHP社区的 Convenient 函数。 | |
pm | 71 | 进程(即goroutine)管理器与HTTP API。 | |
profile | 998 | Go的简单分析支持包。 | |
rclient | 27 | 可读、灵活、易于使用的REST api客户端。 | |
realize | 3142 | Go 语言构建系统,可以监控文件变化并重新加载。运行,构建,监控文件并支持自定义路径。 | |
repeat | 56 | 执行不同的后 backoff 策略,这对重新尝试操作和心跳非常有用。 | |
request | 356 | Go 语言版的 HTTP Requests for Humans™.。 | |
rerate | 12 | 基于 Redis 的速率计数器和限速器 | |
rerun | 154 | 当源代码发生更改时,重新编译和重新运行go应用程序。 | |
resty | 1940 | 简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发。 | |
retry | 152 | 基于上下文的功能机制,反复执行命令直到成功。 | |
retry | 2 | 一个简单但高度可配置的Go重试包。 | |
retry | 34 | 简单易用的重试机制包,为 Go 。 | |
retry | 10 | 一个相当简单的库,以确保您的工作可以完成。 | |
retry-go | 28 | 对 Go 来说,重试变得简单而容易。 | |
robustly | 134 | 有弹性的执行函数,遇到错误时捕获并重新运行。 | |
scan | 12 | 扫描golang的sql。行直接指向结构、片或基本类型。 | |
serve | 190 | 任何您需要的静态http服务器。 | |
silk | 4 | 阅读silk netflow文件。 | |
sliceconv | 2 | 基本类型之间的片转换。 | |
slicer | 3 | 使处理切片更容易。 | |
spinner | 778 | 一个 Go 语言软件包,提供多种选项,方便在终端中创建加载动画。 | |
sqlx | 6726 | 为内建的数据库/sql 软件包提供一组扩展。 | |
sslice | 4 | 创建一个总是排序的切片。 | |
Storm | 1343 | 一个简单又强大的用于 BoltDB 的工具 | |
structs | 12 | 简单来讲就是 "Make" 的替代品。 | |
Task | 1920 | 简单的“Go”的选择。 | |
toolbox | 92 | 切片, map, multimap, 结构体, 函数,数据转换工具。服务路由,宏求值和标记器。 | |
tracer | 8 | 简单、轻量级的跟踪。 | |
ugo | 20 | uGo 是一个切片工具箱,有着和 Go 语言一致的语法法。 | |
UNIS | 69 | Go 语言字符串处理函数的通用架构 。 | |
usql | 4662 | usql 是一个通用的命令行接口,用于操作 sql 数据库。 | |
util | 133 | 有用实用函数的集合。(字符串,并发,操作,…) | |
wuzz | 8249 | 用于HTTP检查的交互式cli工具。 | |
xferspdy | 68 | Xferspdy在golang中提供二进制diff和补丁库。 |
UUID
用于处理uuid的库。
name | star | desc | tag |
---|---|---|---|
goid | 20 | 生成和解析RFC4122兼容的V4 uuid。 | |
nanoid | 2 | 一个小而有效的Go唯一字符串ID生成器。 | |
sno | 15 | 使用嵌入元数据的紧凑、可排序和快速的惟一id。 | |
ulid | 1668 | 实现了ULID(普遍唯一的词典分类标识符)。 | |
uniq | - | 没有麻烦,安全,快速的唯一标识符与命令。 | |
uuid | 10 | 使用快速或加密质量的随机节点标识符生成、编码和解码UUIDs v1。 | |
uuid | 563 | 通用唯一标识符(UUID)的实现。支持uuid的创建和解析。积极维护satori uuid的fork。 | |
wuid | 283 | 一个非常快的唯一数字生成器,比UUID快10-135倍。 |
验证
库进行验证。
name | star | desc | tag |
---|---|---|---|
checkdigit | 44 | 提供校验数字算法(Luhn, Verhoeff, Damm)和计算器(ISBN, EAN, JAN, UPC等)。 | |
govalidator | 3530 | 用于字符串,数字,切片和结构的验证器和sanitizers。 | |
govalidator | 711 | 用简单的规则验证Golang请求数据。深受Laravel请求验证的启发。 | |
jio | 21 | jio是一个json模式验证器,类似于joi。 | |
ozzo-validation | 1029 | 支持各种数据类型(结构、字符串、映射、片等)的验证,使用可配置和可扩展的验证规则,这些规则在通常的代码构造中指定,而不是在结构标签中指定。 | |
terraform-validator | 6 | 一种规范和约定验证器。 | |
validate | 92 | Go 封装数据验证和过滤。支持验证映射、结构、请求(表单、JSON、url)。值,上载文件)数据和更多特性。 | |
validate | 19 | 这个包提供了一个框架,用于为Go应用程序编写验证。 | |
validator | 3458 | Go 结构体及域验证,包括:跨域、跨结构体, Map, 切片和数组。 |
版本控制
用于版本控制的库。
name | star | desc | tag |
---|---|---|---|
gh | 69 | 用于GitHub webhook的可编写脚本的服务器和net/http中间件。 | |
git2go | 1353 | libgit2 的 Go 语言接口。 | |
go-git | 4178 | 纯Go中高度可扩展的Git实现。 | |
go-vcs | 69 | 在Go中操作和检查VCS存储库。 | |
hercules | 519 | 从Git存储库历史中获得高级见解。 | |
hgo | 12 | Hgo是一组Go包的集合,提供对本地Mercurial存储库的读取访问。 |
视频
用于操作视频的库。
name | star | desc | tag |
---|---|---|---|
gmf | 523 | FFmpeg av* 库的 Go 语言接口。 | |
go-astisub | 164 | 使用 Go 语言操作字幕(.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.)。 | |
go-astits | 257 | 在GO中解析和演示MPEG传输流(.ts)。 | |
go-m3u8 | 37 | 苹果m3u8播放列表的解析器和生成器库。 | |
goav | 771 | FFmpeg的Comphrensive。 | |
gst | 152 | GStreamer的Go工具。 | |
libgosubs | 11 | 字幕格式支持 .srt、.ttml和.ass。 | |
libvlc-go | 62 | Go绑定libvlc 2.X/3.X/4。X(由VLC媒体播放器使用)。 | |
v4l | 27 | 用于Linux的视频捕捉库,用Go编写。 |
Web框架
全栈 web 框架。
name | star | desc | tag |
---|---|---|---|
aah | - | 可伸缩、高性能、快速开发的Go Web框架。 | |
Aero | 157 | 高性能的Go web框架,在Lighthouse中达到最高分。 | |
Air | 333 | 一个理想的精细化的Go web框架。 | |
Banjo | 7 | 非常简单和快速的网络框架 Go 。 | |
Beego | 21371 | beego是一种用于 Go 编程语言的开源高性能web框架。 | |
Buffalo | - | 为 Go 语言带来堪比 Rails 的高生产效率! | |
Echo | 14588 | 高性能、极简的Go web框架。 | |
Fireball | 49 | 感觉更加自然的 web 框架。 | |
Gem | 153 | 简单快速的web框架,对REST API友好。 | |
Gin | 29673 | Gin是一个用Go编写的web框架!它具有一个类似于martini的API,性能更好,速度快40倍。 | |
Gizmo | 2836 | 《纽约时报》使用的微服务工具包。 | |
go-json-rest | 3331 | 设置RESTful JSON API的快速简便方法。 | |
go-rest | 116 | 小型的 REST 框架。 | |
Goa | 3498 | Goa为在Go中开发远程api和微服务提供了一种全面的方法。 | |
Golax | 71 | 一个非Sinatra快速HTTP框架,支持谷歌自定义方法、深度拦截器、递归等。 | |
Golf | 235 | Golf 是一个快速、简单、轻量级的 Go 语言微型 web 框架。具有强大的功能且没有标准库以外的依赖。 | |
Gondola | 314 | web框架写的网站越快越好。 | |
gongular | 415 | 快速 Go web 框架,支持输入映射/验证以及依赖注入。 | |
hiboot | 86 | hiboot是一个高性能的web应用程序框架,支持自动配置和依赖注入。 | |
Macaron | 2808 | Macaron 是一个高效的模块化设计的web框架 | |
mango | 339 | ManGo 是一个模块化 web 应用框架,受到 Rack 和 PEP333 的启发。 | |
Microservice | 57 | 创建微服务的框架,用Golang编写。 | |
neo | 392 | Neo是一个非常简单且快速的Web框架API。 | |
nio | 21 | 现代的、最小的和高效的Go HTTP框架。 | |
patron | 33 | Patron是一个遵循最佳云实践的微服务框架,专注于提升开发效率。 | |
Resoursea | 29 | 用于快速编写基于资源的服务的REST框架。 | |
REST Layer | - | 框架,用于在数据库之上构建REST/GraphQL API,主要是通过代码进行配置。 | |
Revel | 11227 | 用于Go语言的高效web框架。 | |
rex | 25 | Rex 是一个用于进行模块化开发的库,基于Gorilla/mux 完全兼容大多数的 net/HTTP. | |
sawsij | 2 | 轻量级、开源的web框架,用于构建高性能、数据驱动的web应用程序。 | |
tango | 817 | 微型的、支持插件的 web 框架。 | |
tigertonic | 994 | 用于构建 JSON web 服务的 Go 语言框架,受到 Dropwizard 的启发。 | |
traffic | 519 | Sinatra启发了regexp/pattern mux和用于Go的web框架。 | |
uAdmin | 51 | 受到 Sinatra 启发的 Go 语言 web 框架。 | |
utron | 2134 | Go(Golang)的轻量级MVC框架。 | |
vox | 39 | 一个面向人类的golang web框架,深受Koa的启发。 | |
WebGo | 73 | 构建web应用程序的微框架;处理程序链接、中间件和上下文注入。与标准库兼容的HTTP处理程序(即http.HandlerFunc)。 | |
YARF | 50 | 快速微框架,旨在以快速和简单的方式构建REST api和web服务。 | |
Zerver | - | Zerver是一个表现力强、模块化、功能完备的RESTful框架。 |
中间件
仿真中间件
name | star | desc | tag |
---|---|---|---|
client-timing | 13 | 用于服务器定时报头的HTTP客户机。 | |
CORS | 1208 | 轻松地向API添加CORS功能。 | |
formjson | 33 | 透明地将JSON输入作为标准表单POST处理。 | |
go-server-timing | 743 | 添加/解析Server-Timing头。 | |
Limiter | 785 | 简单的速度限制中间件。 | |
ln-paywall | 88 | 使用Lightning Network(比特币)实现基于每个请求的api货币化中间件。 | |
Tollbooth | 1240 | 限制速率的 HTTP 请求处理程序。 | |
XFF | 72 | 处理 X-Forwarded-For 头的中间件。 |
用于创建HTTP中间件的库
name | star | desc | tag |
---|---|---|---|
alice | 1822 | 用于连接中间件的库,简单无痛苦。 | |
catena | 7 | HTTP.Handler wrapper catenation (和chain具有相同的 API ).。 | |
chain | 63 | 带有范围数据的处理程序包装器链接(基于网络/上下文的“中间件”)。 | |
go-wrap | 59 | net/http的小型中间件包。 | |
gores | 81 | 处理HTML、JSON、XML等响应的Go包。对于RESTful api非常有用。 | |
interpose | 289 | golang的极简网络/http中间件。 | |
muxchain | 208 | 用于net/http的轻量级中间件。 | |
negroni | 6312 | 符合语言习惯的 HTTP 中间件库。 | |
render | 1266 | Go package用于方便地呈现JSON、XML和HTML模板响应。 | |
renderer | 168 | 简单、轻量级和更快的响应(JSON、JSONP、XML、YAML、HTML、文件)。 | |
rye | 94 | 支持JWT、CORS、Statsd和Go 1.7上下文的小型Go中间件库(带有罐装中间件)。 | |
stats | 536 | 使用中间件来存储关于web应用程序的各种信息。 |
路由器
name | star | desc | tag |
---|---|---|---|
alien | 106 | 轻量级和快速http路由器从外层空间。 | |
bellt | 39 | 一个简单的Go HTTP路由器。 | |
Bone | 1218 | 闪电快速HTTP多路复用器。 | |
Bxog | 94 | 简单和快速的HTTP路由器 Go 。它可以处理不同难度、长度和嵌套的路径。他还知道如何根据接收到的参数创建URL。 | |
chi | 5992 | 小巧、快速、具有丰富表达力的 HTTP 路由,基于net/context.。 | |
fasthttprouter | 745 | 高性能路由器分叉从httprouter 。第一个路由器适合fasthttp 。 |
|
FastRouter | 19 | 一个快速,灵活的HTTP路由器写在Go。 | |
gocraft/web | 1394 | Mux和中间件包在Go中。 | |
Goji | 767 | 枸杞是一种简约的和灵活的与支持'net/context` HTTP请求多路复用器。 | |
GoRouter | 49 | GoRouter 是一个服务器/API 微型框架、HTTP 请求路由 router, 数据分选器,提供了支持net/context的中间件。 | |
gowww/router | 157 | 超快的HTTP 路由,完全兼容 net/HTTP.Handler 接口.。 | |
httprouter | 9660 | 高性能路由。使用这个库和标准http处理工具可以构建一个非常高性能大web框架。 | |
httptreemux | 384 | 高速,灵活,基于树的 HTTP 路由。受到了 httprouter 的启发。 | |
lars | 375 | 是一个轻量级、快速、可扩展、零分配的HTTP路由,用于创建定制化的框架。 | |
mux | 9604 | 强大的URL路由器和调度器为golang。 | |
ozzo-routing | 358 | 一个非常快的Go (golang) HTTP路由器,支持正则表达式路由匹配。完全支持构建RESTful api。 | |
pure | 85 | 是一个轻量级HTTP路由器,它坚持net/ HTTP“实现”的std。 | |
Siesta | 349 | 编写中间件和处理程序的可组合框架。 | |
vestigo | 251 | 高性能,独立,HTTP兼容的URL路由器的go web应用程序。 | |
violetear | 95 | HTTP路由器。 | |
xmux | 88 | 高性能mux基于httprouter 'net/context`支持。 | |
xujiajun/gorouter | 449 | 一个简单和快速的HTTP路由器 Go 。 |
Windows
name | star | desc | tag |
---|---|---|---|
d3d9 | 85 | Direct3D9 的 Go 语言接口。 | |
go-ole | 551 | 为 Go 语言实现的 Win32 OLE。 | |
gosddl | 1 | 从SDDL-string到用户友好的JSON的转换器。SDDL由四个部分组成:所有者、主群、DACL、SACL。 |
XML
用于操作XML的库和工具。
name | star | desc | tag |
---|---|---|---|
XML-Comp | 16 | 简单的命令行XML比较器,生成文件夹、文件和标记的差异。 | |
xml2map | 15 | XML来映射转换器编写的Golang。 | |
xmlwriter | 6 | 基于libxml2的xmlwriter模块的过程性XML生成API。 | |
xpath | 164 | Go的XPath包。 | |
xquery | 145 | XQuery允许您使用XPath表达式从HTML/XML文档中提取数据。 | |
zek | 252 | 从XML生成Go结构。 |
工具
- Go 软件和插件。*
代码分析
name | star | desc | tag |
---|---|---|---|
apicompat | 165 | 检查 Go 项目最近的向下不兼容修改。 | |
dupl | 171 | 用于代码克隆检测的工具。 | |
errcheck | 1319 | Errcheck是一个用于检查Go程序中未检查错误的程序。 | |
gcvis | 917 | 实时可视化跟踪 GC 数据。 | |
go-checkstyle | 95 | checkstyle是一个类似于java checkstyle的检查工具。 | |
go-cleanarch | 281 | go-cleanarch 的创建是为了验证 Clean 体系结构规则,比如 Go 项目中的依赖关系。 | |
go-critic | 571 | 源代码检查工具。 | |
go-mod-outdated | 181 | 找出项目中过期的依赖项。 | |
go-outdated | 45 | 显示过期包的终端应用。 | |
goast-viewer | 371 | 基于 Web 的 Golang AST 可视化工具。 | |
GoCover.io | - | GoCover.io 提供了任意 golang 包的代码覆盖率服务。 | |
goimports | - | 来修复(添加,删除) Go 中自动导入的工具。 | |
GolangCI | - | GolangCI 是一个针对 GitHub pull 请求的自动代码审查服务。服务是开源的,对开源项目是免费的。 | |
GoLint | 3135 | Go 源码的 linter。 | |
Golint online | - | Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. | |
goreturns | - | 添加 zero 返回声明,以匹配 func 返回类型。 | |
gosimple | - | gosimple 是 Go 源代码的linter,专门用于简化代码。 | |
gostatus | 241 | 用于显示包含 Go 包的存储库的状态的命令行工具,。 | |
lint | 63 | 将 linters 作为测试的一部分。 | |
php-parser | 633 | 用 Go 编写的 PHP 解析器。 | |
staticcheck | - | 用于大量静态分析检查,您可能已经从 c# 的 ReSharper 等工具中习惯了这些检查。 | |
tarp | 14 | 在源码中寻找没有直接单元测试的函数和方法。 | |
unconvert | 258 | 在源码中删除不必要的类型转换。 | |
unused | - | 对未使用的常量、变量、函数和类型的代码进行检查。 | |
validate | 62 | 使用 tags 自动验证结构体字段。 |
编辑器插件
name | star | desc | tag |
---|---|---|---|
Go plugin for JetBrains IDEs | - | JetBrains IDEs 的 Go 插件。 | |
go-language-server | 29 | A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol. | |
go-mode | 946 | 在 GNU/Emacs 支持 GO。 | |
go-plus | 1480 | 在 Atom 中添加自动完成,格式化,语法检查,高亮和审查。 | |
gocode | 4732 | Autocompletion daemon for the Go programming language. | |
goprofiling | - | 在 VS Code 中支持 Go 的基准分析。 | |
GoSublime | 3233 | 包含了可为文本编辑器 SublimeText 3 提供代码自动填充和其他类似IDE的功能的 Golang IDE 插件集合。 | |
gounit-vim | 17 | 基于函数或方法的签名生成Go测试的Vim插件。 | |
theia-go-extension | 12 | 在 Theia IDE中支持 Go。 | |
velour | 16 | acme编辑器的IRC客户端。 | |
vim-compiler-go | 81 | 在保存时突出显示语法错误的 Vim 插件。 | |
vim-go | 10785 | Go 开发会用到的 Vim 插件。 | |
vscode-go | 5097 | Visual Studio代码的扩展(VS代码),它提供了对Go语言的支持。 | |
Watch | 166 | Runs a command in an acme win on file changes. |
Go 生成工具
name | star | desc | tag |
---|---|---|---|
generic | 27 | 灵活的 Go 数据类型。 | |
genny | 952 | 优雅的 Go 泛型。 | |
gocontracts | 52 | 通过同步代码和文档来实现 design-by-contract 设计。 | |
gonerics | - | Go中的易用的泛型。 | |
gotests | 2178 | 从源代码生成测试用例。 | |
gounit | 29 | 使用您自己的模板生成Go测试用例。 | |
hasgo | 12 | 可生成用于切片的 Haskell。 | |
re2dfa | 168 | 将正则表达式转换为有限状态机,并输出 Go 源代码。 | |
TOML-to-Go | - | 在浏览器中将 TOML 转换为 Go 类型。 |
Go 工具
name | star | desc | tag |
---|---|---|---|
colorgo | 96 | 将 go 命令包装成彩色的 go build 输出。 | |
depth | 373 | 通过分析导入,将包依赖关系树可视化输出。 | |
gb | - | 一个基于项目的易用的构建工具。 | |
generator-go-lang | 13 | 一个Yeoman生成器,用于启动新的 Go 项目。 | |
gilbert | - | 一个为 Go 项目而生的构建系统和任务运行器。 | |
go-callvis | 1981 | 使用 dot format 可视化 Go 程序的调用图。 | |
go-pkg-complete | 37 | Bash completion for go and wgo。 | |
go-swagger | 3946 | 基于 Go 的Swagger 2.0实现。 | |
godbg | 156 | 实现了 Rusts 的 dbg! 宏,可以方便的在开发过程中快速、容易地调试。 | |
OctoLinker | 3747 | 借助的 OctoLinker 浏览器扩展,可以高效的地浏览 GitHub go文件。 | |
richgo | 385 | 用文本装饰丰富 go test 的输出。 | |
rts | 184 | 从服务器响应生成Go结构。 |
软件包
用Go编写的软件。
DevOps 工具
name | star | desc | tag |
---|---|---|---|
aptly | - | Debian存储库管理工具。 | |
aurora | 401 | 基于web的跨平台 Beanstalkd 队列服务器控制台。 | |
awsenv | 21 | 可以为 profile 加载Amazon (AWS)环境变量的轻量二进制文件。 | |
Blast | 168 | 一个用于API负载测试和批处理作业的简单工具。 | |
bombardier | 1728 | 快速跨平台 HTTP 基准测试工具。 | |
bosun | 2851 | 按照时间轴发出告警的框架。 | |
DepCharge | 9 | Helps orchestrating the execution of commands across the many dependencies in larger projects. | |
dogo | 216 | 监视源文件中的更改并自动编译和运行(restart)。 | |
drone-jenkins | 24 | 使用二进制文件、docker或 Drone CI 来触发下游Jenkins作业。 | |
drone-scp | 55 | 通过 SSH 进行文件拷贝。其中 SSH 通过二进制文件、docker 或 Drone CI触发。 | |
Dropship | 46 | 通过 cdn 部署代码的工具。 | |
easyssh-proxy | 99 | Golang package for easy remote execution through SSH and SCP downloading via ProxyCommand . |
|
fac | 1614 | 修复 git 合并冲突。 | |
gaia | 3733 | 可用于任何编程语言来构建强大的管道。 | |
Gitea | 15057 | 从 Gogs fork,完全由社区驱动。 | |
gitea-github-migrator | - | 将所有GitHub repositories、issues、milestones 和 labels 都迁移到 Gitea。 | |
go-furnace | 63 | 用Go编写的托管解决方案,可轻松地在AWS、GCP或DigitalOcean上部署应用程序。 | |
go-selfupdate | 665 | 允许你的 Go应用程序 进行自我更新。 | |
gobrew | 175 | gobrew 允许您轻松地在 go 的多个版本之间切换。 | |
godbg | 219 | 基于 web 的 gdb 前端应用程序。 | |
Gogs | - | 自托管的Git服务。 | |
gonative | 312 | 用原生 Go 创建一个跨平台的 Go 工具链。 | |
govvv | 384 | 可轻松地添加版本信息到 Go 二进制文件。 | |
gox | 3347 | 非常简单,没有多余的跨平台编译工具。 | |
goxc | 1625 | 专注于跨平台编译和打包的 Go 构建工具。 | |
grapes | 135 | 旨在轻松地通过ssh分发命令的轻量级工具。 | |
GVM | 4463 | GVM 提供了一个接口来管理 Go 版本。 | |
Hey | 6242 | 压力测试工具,可用来代替 ApacheBench (ab)。 | |
kala | 1355 | 简单、现代和高性能的作业调度程序。 | |
kcli | 78 | 用于检查kafka主题/分区/消息的命令行工具。 | |
kubernetes | 55872 | 来自谷歌的容器集群管理器。 | |
lstags | 219 | 提供了工具和API,可用来同步不同注册中心的Docker图像。 | |
lwc | 8 | UNIX wc命令的实时更新版本。 | |
manssh | 204 | manssh是一个命令行工具,可以方便地管理ssh别名配置。 | |
Moby | 54311 | Collaborative project for the container ecosystem to assemble container-based systems. | |
Mora | 266 | 用于访问 MongoDB 文档和元数据的 REST 服务器。 | |
ostent | 164 | 收集和显示系统指标,并可选 Graphite and/or fluxdb作为依赖。 | |
Packer | 9212 | 用于从一个源配置为多个平台创建相同的机器图像。 | |
Pewpew | 201 | 灵活的 HTTP 命令行压测工具。 | |
Pomerium | 493 | Pomerium是一个可识别身份的访问代理。 | |
Rodent | 30 | 管理Go版本、项目和跟踪依赖项。 | |
s3gof3r | 994 | 小型实用程序/库,针对大型对象在Amazon S3中的高速传输进行了优化。 | |
Scaleway-cli | 536 | 从命令行管理 BareMetal 服务器(与使用Docker一样容易)。 | |
script | 906 | 让DevOps编写类shell和系统管理任务变得更加容易。 | |
sg | 5 | 可测试一组HTTP极限(如ab),可以在每个调用之间使用响应代码和数据,根据之前的响应来确定特定的服务器压力。 | |
skm | 548 | SKM是一个简单而强大的SSH密钥管理器,它可以帮助您轻松地管理多个SSH密钥! | |
StatusOK | 1158 | 监视您的网站和REST api。当服务器宕机或响应时间超过预期时,通过Slack、电子邮件获得通知。 | |
traefik | 23592 | 反向代理和负载均衡器,支持多个后端。 | |
Vegeta | 12087 | HTTP负载测试工具和库。超过9000 ! | |
webhook | 4064 | 允许用户创建在服务器上执行命令的 HTTP hooks。 | |
Wide | - | 为使用 Golang 的团队提供基于 web 的 IDE。 | |
winrm-cli | 67 | 在Windows机器上远程执行命令的Cli工具。 |
其他软件
name | star | desc | tag |
---|---|---|---|
borg | 1418 | 基于终端的bash代码段搜索引擎。 | |
boxed | 72 | 基于Dropbox的博客引擎。 | |
Cherry | 193 | 微型网络聊天服务器。 | |
Circuit | 1786 | Circuit 是一个可编程平台即服务(PaaS)和/或基础设施即服务(IaaS),用于管理、发现、同步和编排包含云应用程序的服务和主机。 | |
Comcast | 6166 | 模拟坏的网络连接。 | |
confd | 6398 | 使用 etcd 或 consul 的模板和数据管理本地应用程序配置文件。 | |
DDNS | 97 | 个人 DDNS 客户端。 | |
Docker | - | 面向开发人员和系统管理员的分布式应用程序的开放平台。 | |
Documize | 820 | 集成了SaaS工具数据的现代wiki软件。 | |
drive | 4950 | 基于命令行的谷歌驱动器客户端。 | |
Duplicacy | 2681 | 跨平台网络和云备份工具。 | |
gfile | 496 | 通过WebRTC在两台计算机之间安全地传输文件,不需要任何第三方依赖。 | |
Go Package Store | 877 | App that displays updates for the Go packages in your GOPATH. | |
go-peerflix | 375 | 视频流 torrent 客户端。 | |
GoBoy | 2097 | 用 Go 编写的任天堂Game Boy彩色模拟器。 | |
gocc | 342 | Gocc是一个用Go编写的编译器工具包。 | |
GoDNS | 425 | 一个动态DNS客户端工具,支持DNSPod & HE.net。 | |
GoDocTooltip | 12 | 包含了 Go 使用手册文档的 Chrome 扩展。 | |
GoLand | - | 功能齐全的跨平台 Go IDE。 | |
Gor | 11309 | Http 流量复制工具,用于实时回放从生产环境到阶段/开发环境的流量。 | |
hugo | - | 快速、现代的静态网站引擎。 | |
ide | 249 | 基于浏览器的IDE | |
ipe | 275 | Open source Pusher server implementation compatible with Pusher client libraries written in GO. | |
joincap | 122 | 用于合并多个pcap文件的命令行实用程序。 | |
Juju | - | Cloud-agnostic的服务部署和编制 —— 支持EC2、Azure、Openstack、MAAS等。 | |
Leaps | 640 | 使用操作转换的成对编程服务。 | |
lgo | 1799 | 与 Jupyter 可进行交互 Go 程序。它支持代码完成、代码检查以及与Go 100% 兼容性。 | |
limetext | - | 一个强大而优雅的文本编辑器。 | |
LiteIDE | 5468 | 简单的、开源的、跨平台的Go IDE。 | |
mockingjay | 414 | 一份配置文件中便可伪造HTTP服务器与用户之间的行为。您还可以使服务器随机宕机,以帮助进行更实际的性能测试。 | |
myLG | 2195 | 命令行网络诊断工具。 | |
naclpipe | 20 | 基于加密管的简单的NaCL EC25519工具。 | |
nes | 4126 | 任天堂娱乐系统(NES)模拟器。 | |
orange-cat | 177 | 用Go编写的Markdown预览器。 | |
Orbit | 128 | 一个根据模板来运行命令和生成文件的简单小工具。 | |
peg | 605 | 解析表达式语法,是Packrat解析器生成器的实现。 | |
Pipe | 2874 | 一个小巧漂亮的博客平台。 | |
restic | 7398 | 消除重复项备份程序。 | |
rkt | 8732 | 一个应用容器,与其他容器格式(如Docker)兼容,并支持其他执行引擎(如KVM)。 | |
scc | 768 | 一个非常快速准确的代码计数器,采用了复杂的计算和 COCOMO 预估。 | |
Seaweed File System | 8183 | 快速、简单、可伸缩的分布式文件系统,采用了O(1)磁盘查找。 | |
shell2http | 402 | 通过http服务器执行shell命令(用于原型或远程控制)。 | |
snap | 1803 | 强大的遥测框架。 | |
Snitch | 15 | 当有人通过 Tsuru 部署任何应用程序时,会通知您的团队以及其他工具。 | |
Stack Up | 1989 | Stack Up 是一个超级简单的部署工具 — 只面向Unix。 | |
syncthing | - | 开放,分散的文件同步工具和协议。 | |
term-quiz | 17 | 测试你的终端。 | |
toxiproxy | 3919 | 为自动化测试模拟网络和系统条件的代理。 | |
tsuru | - | Extensible and open source Platform as a Service software. | |
vFlow | 595 | 高性能、可伸缩和可靠的 IPFIX、sFlow和 Netflow 收集器。 | |
wellington | 289 | Sass 项目管理工具,使用sprite函数(如Compass)扩展语言。 |
资源
在哪里可以找到新的Go库。
基准
name | star | desc | tag |
---|---|---|---|
autobench | 89 | 用来来比较不同Go版本之间的性能的框架。 | |
go-benchmark-app | 19 | 强大的HTTP基准测试工具,包含了Аb,Wrk,Siege工具。收集统计和各种参数指标,并比较相关结果。 | |
go-benchmarks | 121 | Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches | |
go-http-routing-benchmark | 1258 | HTTP请求路由器基准测试和比较。 | |
go-web-framework-benchmark | 992 | web框架基准测试。 | |
go_serialization_benchmarks | 859 | Go序列化方法的基准测试。 | |
gocostmodel | 52 | Go语言常用基本操作的基准测试。 | |
golang-micro-benchmarks | 17 | Go 基础操作的基准测试集合。其目的是将一些语言特性与其他特性进行比较。 | |
golang-sql-benchmark | 48 | 为流行的 Go 数据库/SQL实用程序收集基准测试。 | |
gospeed | 93 | 计算语言结构的速度的微观基准测试。 | |
kvbench | 14 | K / V 类型数据库基准测试。 | |
skynet | 913 | 天网 1M 线程微基准测试。 | |
speedtest-resize | 172 | 对比各种图像大小调整算法性能。 |
会议
- Capital Go - 华盛顿特区。,美国。
- dotGo - 巴黎,法国。
- GoCon - 东京,日本。
- GoDays - 德国柏林。
- GoLab - 佛罗伦萨,意大利。
- GolangUK - 伦敦,英国。
- GopherChina - 上海,中国。
- GopherCon - 美国丹佛。
- GopherCon Australia - 澳大利亚悉尼。
- GopherCon Brazil - 弗洛,BR。
- GopherCon Europe - 雷克雅未克,冰岛。
- GopherCon India - 印度浦那。
- GopherCon Israel - 特拉维夫,以色列。
- GopherCon Russia - 莫斯科,俄罗斯。
- GopherCon Singapore - 新加坡枫树商贸城。
- GopherCon Vietnam - 越南胡志明市。
- GothamGo - 美国纽约市。
- GoWayFest - 白俄罗斯明斯克。
E-Books
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go 101 - 一本关注 Go 语法/语义和各种细节的书。
- Go Bootcamp
- Go Succinctly - in Persian.
- GoBooks - 一份精选的 Go 书籍清单。
- Learning Go
- Network Programming With Go
- The Go Programming Language
- The Golang Standard Library by Example (Chinese)
- Web Application with Go the Anti-Textbook
- Writing A Compiler In Go
- Writing An Interpreter In Go
Gophers
- Free Gophers Pack - 由 Maria Letta 提供的与 Gopher 有关的图片包,其中包含了插图,表情文字。
- Go-gopher-Vector - 与 Go gopher 相关的媒介数据[。ai . svg)。
- gopher-logos - 可爱的 gopher 标识。
- gopher-stickers
- gopher-vector
- gophericons
- gopherize.me - Gopherize自己。
- gophers - 阿什莉·麦克纳马拉的歌斐艺术品。
- gophers - Free gophers.
- gophers - 随机gopher图形。
- gophers - Gopher amigurumi玩具图案。
聚会
- Basel Go Meetup
- Brisbane Gophers
- Canberra Gophers
- Go Language NYC
- Go London User Group
- Go Toronto
- Go User Group Atlanta
- GoBridge, San Francisco, CA
- GoJakarta
- Golang Amsterdam
- Golang Argentina
- Golang Baltimore, MD
- Golang Bangalore
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Bulgaria
- Golang Cardiff, UK
- Golang Copenhagen
- Golang DC, Arlington, VA
- Golang Dorset, UK
- Golang Gurgaon, India
- Golang Hamburg - Germany
- Golang Israel
- Golang Joinville - Brazil
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang Mountain View
- Golang New York
- Golang Paris
- Golang Pune
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Vancouver, BC
- Golang Казань
- Golang Москва
- Golang Питер
- GoSF - San Francisco, CA
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
在这里添加您所在城市/国家的群组(发送PR)
网站
- Awesome Go @LibHunt - 属于你的 Go 工具箱。
- Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
- awesome-awesomeness - 其他 awesome 系列的列表。
- CodinGame - 以小游戏互动完成任务的形式来学习 Go。
- Go Blog - 官方 Go 博客。
- Go Challenge - 通过解决问题并从 Go 专家那里得到反馈来学习 Go。
- Go Community on Hashnode - Hashnode上的Go社区。
- Go Forum - 讨论 Go 的论坛。
- Go In 5 Minutes - 5 minute screencasts focused on getting one thing done.
- Go Projects - wiki上的 Go 社区项目列表。
- Go Report Card - 为你的 Go 包生成一份报告单。
- gocryforhelp - 专门收集需要帮助的Go项目,这是你开启开源之路的好去处。
- godoc.org - 开源 Go 包的文档。
- Golang Flow - 发布更新、新闻、包等等。
- Golang News - 关于 Go 编程的链接和新闻。
- golang-graphics - 收藏的 Go 图像,图形和艺术作品。
- golang-nuts - Go 邮件列表。
- Google Plus Community - Google+社区 golang爱好者聚集地。
- Gopher Community Chat - 加入我们为Gophers设立的全新Slack社区(了解它是如何产生的)。
- Gophercises - 为 Go 初学者提供免费的代码训练。
- gowalker.org - Go API 文档。
- justforfunc - 致力于传授 Go 编程语言技巧和技巧的Youtube 频道,由Francesc Campoy @francesc主办。
- r/Golang - 与 Go 有关的新闻。
- studygolang - Go语言中文网
- Trending Go repositories on GitHub today - 寻找最新的 Go库 的好地方。
- TutorialEdge - Golang
教程
- 50 Shades of Go - Go 初学者经常遇到的陷阱、误区、错误
- A Guide to Golang E-Commerce - 教你如何用 Go 搭建一个电商平台 (包括demo)。
- A Tour of Go - 互动的 Go 之旅。
- Build web application with Golang - Golang电子书,主要讲述如何用 Golang 建立一个web应用程序。
- Building Go Web Applications and Microservices Using Gin - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
- Caching Slow Database Queries - 如何缓存数据库的慢查询。
- Canceling MySQL - 如何取消MySQL查询。
- Ethereum Development with Go - 一本讲述如何用 Go 进行以太开发的小册。
- Games With Go - 关于编程和游戏开发系列教学视频。
- Go By Example - 手把手教你 如何在 Go 应用程序中使用注释。
- Go Cheat Sheet - Go's reference card。
- Go database/sql tutorial - 数据库概论/ sql。
- Go Playground for iOS - 在你的移动设备上编辑你编辑和运行你的 Go 代码。
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golang for Node.js Developers - 引入示例讲述 Golang 与Node.js在学习上的差异。
- Golangbot - Go 编程教程。
- Hackr.io - Go社区投票选举出来的最好的在线 Go 教程。
- How to Use Godog for Behavior-driven Development in Go - 快速使用Godog —— 一个行为驱动开发的构建和测试应用程序框架。
- Learn Go with TDD - 学习使用测试驱动开发。
- Learning Golang - From zero to hero - 面向 Golang 初学者教程。
- package main - 关于 Go 编程的YouTube频道。
- The world’s easiest introduction to WebAssembly with Golang
- Working with Go - 由一个经验丰富的Go程序员群体编写的一系列Go学习范例。
- Your basic Go - 如何收集大量的教程。