Go Wiki:项目
索引和搜索引擎
这些网站提供 Go 包的索引和搜索引擎
- pkg.go.dev - 任何 Go 开源包的文档浏览器。
- godocs.io - 一个简单的包文档浏览器(gddo 的一个分支,gddo 是之前已停用的 godoc.org 使用的软件)
- go-hardware - 使用 Go 在非标准硬件上的精选资源列表。
- go-patterns - Go 中常用的模式和惯用法。
- Go Report Card - 任何 Go 项目的代码质量摘要。
- Sourcegraph - 源代码索引、分析和搜索。
- Codeseek.com - 包含大量 Go 博客的自定义搜索引擎。
已失效的项目
如果您在此列表中发现已失效或损坏的项目,请将其标记或在 #go-nuts IRC 频道中提及。
目录
- API 服务和工具
- 人工智能
- 天文学
- 构建工具
- 缓存
- 云计算
- 命令行选项解析器
- 命令行工具
- 压缩
- 并发和 Goroutine
- 配置文件解析器
- 控制台用户界面
- 持续集成
- 加密货币
- 密码学
- 数据库
- 数据处理
- 数据结构
- 日期
- 开发工具
- 分布式/网格计算
- 文档
- 编辑器
- 电子邮件
- 编码和字符集
- 错误处理
- 文件系统
- 游戏
- 地理信息系统 (GIS)
- 图形和音频
- GUI 和窗口小部件工具包
- 硬件
- 语言学
- 日志记录与监控
- 机器学习与人工智能
- 数学
- 微服务
- 其他
- 音乐
- 网络
- DNS
- FTP
- HTTP
- IMAP
- 即时通讯
- NNTP
- Protocol Buffers
- rsync
- Telnet
- VNC
- Websockets
- ZeroMQ
- 其他网络
- 操作系统接口
- 选项类型
- 其他随机玩具、实验和示例代码
- P2P 和文件共享
- 编程
- 资源嵌入
- RPC
- 扫描器和解析器生成器
- 安全性
- 仿真建模
- 排序
- 源代码管理
- 存储
- 字符串和文本
- 测试
- 源码转换器
- Unix
- 未分类
- 验证
- 版本控制
- 虚拟机和语言
- Web 应用程序
- Web 库
- Windows
API 服务和工具
GraphQL
- GraphJin - Postgres 的即时 GraphQL API。无需编写代码,将 GraphQL 编译为 SQL。
MTProto
- MTProto - 使用纯 Go 编写的 Telegram API 的完全原生实现。
人工智能
- langchaingo - LangChainGo 是一个用于开发由语言模型驱动的应用程序的框架。
- go-openai - OpenAI API 的 Go 绑定。
天文学
- go-fits - FITS (灵活图像传输系统) 格式图像和数据读取器
- astrogo/fitsio - 纯 Go FITS (灵活图像传输系统) 格式图像和数据读取器/写入器
- cosmo - 常规宇宙学(Friedmann-Lemaître-Robertson-Walker 度量)的宇宙距离和时间计算。
- gonova - libnova 的包装库 – 天体力学、天体测量和天体动力学库
- meeus - Jean Meeus 所著《天文学算法》的实现
- novas - 美国海军天文台矢量天体测量软件 (NOVAS) 的接口
- utdfgo - 航天器 UTDF 包读取器和解码器
构建工具
- beku - 一个用于管理用户环境(GOPATH 或 vendor 目录)中包的库和程序
- colorgo - 为 go build 输出添加颜色
- dogo - 监控源文件更改并自动编译和运行(重启)
- fileembed-go - 这是一个命令行实用工具,用于获取多个源文件并将其嵌入 Go 包中
- gb - 另一个 Go 构建工具,侧重于多包项目
- gg - 一个微小的多 Go 项目环境/构建管理工具。
- GG - 用 Go 编写的 Go 构建工具
- godag - Go 编译器集合的前端
- goenv - goenv 提供 Go 版本和 Go 工作空间管理工具
- gopei - Unix/Linux 下简单的 Go 编译器和 LiteIDE 安装器,添加了许多功能,如 GitHub 支持和演示器。
- go-pkg-config - pkg-config 的轻量级克隆
- goscons - 另一组用于 Go 的 SCons 构建器
- go-server - 敏捷服务器框架。
- gotgo - 一个用于实现“泛型”的实验性预处理器
- gows - Go 工作空间管理器
- goxc - 一个专注于交叉编译、打包、版本控制和分发的构建工具
- GVM - GVM 提供了一个管理 Go 版本的接口
- Realize - 一个带有文件监视器、输出流和实时重载的 Go 构建系统。使用自定义路径运行、构建和监视文件更改。
- SCons Go Tools - 一组构建器,使得在 SCons 中编译 Go 项目变得容易
- Task - 一个任务运行器 / Make 的简单替代品
缓存
- cache2go - 一个并发安全的缓存库,具有过期功能和访问计数器
- cache - LevelDB 风格的 Go LRU 缓存,支持非 GC 对象缓存。
- go-cache - 一个用于 Go 的内存键值存储/缓存库(类似于 Memcached),适用于单机应用程序
- golibs/cache - 一个微小的缓存包
- gomemcached - 用 Go 编写的 memcached 服务器
- gomemcache - 一个 memcached 客户端
- go-slab - 用于 Go 的 Slab 分配器。
- groupcache - 缓存和缓存填充库,在许多情况下旨在替代 memcached
- libmemcache - 实现 memcache 协议的快速客户端和服务端库
- memcached-bench - memcache 服务器的基准测试工具
- memcached - 快速 memcache 服务器,支持持久化和超出可用内存的缓存大小
- memcache - Go memcached 客户端,从 YouTube Vitess 分叉而来
- rend - 一个 memcached 代理,管理数据分块和 L1/L2 缓存
- YBC bindings - YBC 库的绑定,提供用于快速进程内 blob 缓存的 API
- g2cache - 一个协调本地和外部的两级缓存方案
云计算
- aws-sdk-go - Go 编程语言的 AWS SDK。
- Docker - Linux 容器运行时。由 dotCloud 开发。
- Enduro/X ASG 面向 Go 的应用服务器。为分布式事务处理提供应用服务器和中间件设施。支持基于微服务的应用架构。由 ATR Baltic 开发。
- flamingo - 一个轻量级云实例上下文管理器。
- gocircuit - 一个分布式操作系统,部署在数据中心多台机器的传统操作系统之上。它提供了一个干净且统一的抽象,将整个硬件集群视为一个单一的、整体的计算资源。由 Tumblr 开发。
- gosync - 一个用于在 S3 之间同步数据的包。
- juju - 编排工具(部署、配置和生命周期管理),由 Canonical 开发。
- Kubernetes - Google 的容器集群管理器。
- LXD 基于 liblxc 的守护程序,提供 REST API 来管理容器
- mgmt - 下一代配置管理工具(并行、事件驱动、分布式系统),由 @purpleidea(一位 Red Hat 员工)和 mgmt 社区开发。
- rclone - “云存储的 rsync” - 支持 Google Drive、Amazon Drive、S3、Dropbox、Backblaze B2、One Drive、Swift、Hubic、Cloudfiles、Google Cloud Storage、Yandex Files
- ShipBuilder - ShipBuilder 是一个极简主义的开源平台即服务,由 Jay Taylor 开发。
- swift - Swift / Openstack 对象存储 / Rackspace 云文件的 Go 语言接口
- Tsuru - Tsuru 是一个开源的多语言云计算平台即服务 (PaaS),由 Globo.com 开发。
命令行选项解析器
- argcfg - 使用反射从命令行参数填充结构体字段
- autoflags - 从配置结构体填充 Go 命令行应用标志
- carapace - spf13/cobra 的命令参数补全生成器。
- charli - 小巧、过程化、无反射的 CLI 工具包,带有帮助和补全功能。
- cobra - 适用于现代 Go CLI 交互的指挥官,支持命令和 POSIX/GNU 标志
- cli - 一个用于实现命令行接口的 Go 库。
- cmdline - 一个简单的解析器,支持短选项和长选项、默认值、参数和子命令。
- command - 为您的 CLI 添加子命令,提供帮助和使用指南。
- docopt.go - 在 Go 编程语言中实现 docopt。
- flaq - 命令行选项解析库,符合 POSIX/GNU 标准,支持结构体标签和 Go 的标志方法。
- getopt - 具有完整功能的传统 (BSD/POSIX getopt) Go 风格选项解析
- getopt - 另一个 Go 的 getopt 库。这个类似于 Python 的。
- gnuflag - GNU 兼容的标志解析;与标准库 flag 基本兼容。
- go-commander - 简化 Go 命令行接口的创建,支持命令和子命令,带有参数检查和上下文使用帮助。从“go”工具代码中分叉而来。
- go-flags - 用于 Go 的命令行选项解析器
- go-getoptions - 受 Perl GetOpt::Long 灵活性启发的 Go 选项解析器。
- goopt - 一个 getopt 克隆,用于解析命令行标志
- go-options - 用于 Go 的命令行解析库
mellium.im/cli
一个用于解析现代 CLI 应用程序的库,包括可能拥有自己标志的子命令和内置帮助系统。设计用于最小的 API。- options - 自文档化 CLI 选项解析器
- opts.go - 轻量级 POSIX 和 GNU 风格选项解析
- pflag - Go 标准库 flag 包的直接替代品,实现了 POSIX/GNU 风格的 –flags。
- subcommands - 一个并发、经过单元测试的子命令库
- uggo - 另一个提供类似 gnu 选项解析的选项解析器。这个库包装(嵌入)了 flagset。它还提供了初步的管道检测功能(例如 ls 命令在被管道连接时行为不同)。
- xflags - Go 的富有表达力的标志
- writ - 一个灵活的选项解析器,具有全面的测试覆盖。它旨在“直接工作”且不妨碍用户。
命令行工具
- amqp-message-remover - 根据正则表达式模式从 AMQP 队列中移除不需要的消息
- Arduino-cli - Arduino CLI 是一个一体化解决方案,提供构建器、开发板/库管理器、上传器、发现及许多其他使用任何 Arduino 兼容开发板和平台所需的工具。
- awless - 一个强大的 Amazon Web Services (AWS) 命令行接口。
- boilr - 一个极快的 CLI 工具,用于从样板模板创建项目。
- carapace-bin - 多 shell 多命令参数补全器。
- carapace-spec - 使用规范文件定义简单的补全。
- comb-go - 一个用 Golang 实现的 CLI 工具,用于管理 CloudComb 资源。
- coshell - GNU ‘parallel’ 的直接替代品。
- dasel - 使用命令行选择器查询和更新数据结构。与 jq / yq 类似,但支持 JSON、YAML、TOML 和 XML,且无运行时依赖。
- DevTodo2 - 一个小巧的命令行项目任务列表管理器。
- dsio - Google Cloud Datastore 的命令行工具。
- efs2 - 一个极其简单的配置管理工具,由简单的 shell 脚本驱动。
- enumeration - 简单的枚举代码生成。
- fzf - 一个命令行模糊查找器
- gich - 一个用 Go 编写的跨平台 which 实用工具
- gister - 从命令行管理您的 GitHub Gist
- git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪工具
- gmail2go - 简单的 Gmail 多账户命令行邮件检查器
- go-amqp-sniffer - 监听 AMQP 交换器并将消息流式传输到标准输出,格式为 mongoimport 兼容的 JSON
- gocreate - 从模板创建文件的命令行实用工具。
- godocdoc - 启动 godoc 并在浏览器中打开当前目录的项目文档。
- gojson - 用于操作 JSON 以在开发 Go 代码时使用的命令行工具。
- golor - golor 是一个用于 Golang 源代码着色的命令行工具
- GoNote - 命令行 SimpleNote 客户端。
- gopass - 具有 Git 同步功能的命令行密码管理器
- GoPasswordCreator - 一个小工具,用于创建随机密码
- Grozilla - 具有续传功能的下载实用工具。
- JayDiff - 用 Go 编写的 JSON diff 实用工具。
- jsonpp - 一个快速的命令行 JSON 美化打印器。
- lsp - 一个对人类更友好的
ls
替代品 - ltst - 直接在终端中查看您选择的最新新闻
- passhash - 用于创建安全密码哈希的命令行实用工具
- passman - 一个命令行密码管理器
- pdfcpu - PDF 处理器。
- pjs - 快速美化打印和搜索 JSON 数据结构。
- project - 一个非常简单的 CLI 工具,用于从样板模板设置新项目。
- redis-view - 一个树状工具,帮助您探索 Redis 服务器中的数据结构
- remote-torrent - 一个简单的工具,用于远程下载 Torrent 并通过 HTTP 以全速检索文件,不受 ISP Torrent 限制
- restic - 一个快速、高效且安全的备份程序
- runtemplate - 一个非常简单的命令行工具,用于执行 Go 模板,与
go generate
一起使用非常有用。 - runtemplate - 一个简单的工具,用于执行 Go 模板,支持为您的类型生成 Go 代码。
- sift - 一个快速强大的开源
grep
替代品 - tecla - 命令行编辑库
- Terracognita - 从现有云提供商读取(逆向 Terraform),并在 Terraform 配置上生成您的基础设施即代码。
- wlog - 一个简单的日志接口,支持跨平台颜色和并发。
- wmenu - 一个易于使用的 CLI 应用程序菜单结构,提示用户进行选择。
- mani - 帮助您管理多个代码仓库的 CLI 工具
压缩
- brotli - Brotli 算法的 Go 绑定。
- compress - gzip、zip、zlib、deflate 的更快的直接替代品。
- dgolzo - LZO 绑定。
- go-lzo - 纯 Go LZO 压缩/解压缩库,忠实地翻译了 C 代码库。
- dictzip - 用于读取和写入随机访问
dictzip
格式文件的读取器和写入器。 - fast-archiver - 另一种归档工具,对于大量小文件具有快速性能。
- gbacomp - 一个与 GBA BIOS 兼容的数据压缩/解压缩 Go 库。
- go-lz4 - 将 LZ4 无损压缩算法移植到 Go。
- go-lzss - LZSS 压缩算法在 Go 中的实现。
- go-sevenzip - sevenzip 包实现了对 7-zip 归档的访问(包装了 LZMA SDK 的 C 接口)。
- go-zip - 对 C 库 libzip 的包装,提供修改现有 ZIP 归档的能力。
- lz4 - 高性能、并发的 LZ4 实现。
- lzma - 用于 Go 的 compress/lzma 包。
- pgzip - 多核 gzip,与标准库兼容。
- ppmd-go - LZMA SDK 库的 Golang 绑定。(仅绑定了 PPMD)
- s2 - 高吞吐量的 Snappy 扩展。
- snappy-go - Google 的 Snappy 压缩算法在 Go 中的实现。
- yenc - yenc 解码器包。
- zappy - zappy 包实现了基于块的 zappy 压缩格式。它旨在结合良好的速度和合理的压缩率。
- zstd - 纯 Go Zstandard 压缩/解压缩。
并发和 Goroutine
- grpool - 轻量级 Goroutine 池。
- pool - Go 消费者 Goroutine 池,用于轻松处理 Goroutine + 节省时间。
- tunny - 一个 Goroutine 池。
- worker - 一个简单轻量级的并发作业框架。
配置文件解析器
- awsenv - 一个小二进制文件,用于加载特定配置文件的 Amazon (AWS) 环境变量
code.soquee.net/env
— 从.env
或类似文件,或从任何io.Reader
加载环境变量并填充本地环境。- confl - Nginx 配置语法,宽松,编码/解码,自定义 marshaling
- configor - 支持 YAML、JSON、TOML、Shell 环境的 Golang 配置工具
- fig - 一个微小的库,用于从文件和环境变量读取配置(带验证和默认值)。
- flagfile - 为标准库 flag 包添加解析和序列化支持(添加一个 –flagfile 选项)
- gcfg - 将 INI 风格配置文件读入 Go 结构体;支持用户定义类型和子部分
- globalconf - 轻松地将标志值持久化到 ini 配置文件并从中读取
- goconf - 一个配置文件解析器
- goconfig - 基于结构体内省的配置,支持环境变量、命令行参数等。
- hjson - 人类 JSON,一种面向人类的配置文件格式。语法宽松,错误更少,注释更多。
- hocon - 用于处理 HOCON(人类友好的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
- jsonconfig - 一个支持注释的 JSON 配置文件解析器
- koanf - 用于在 Go 应用程序中读取配置的轻量级、可扩展库。内置支持 JSON、TOML、YAML、环境变量、命令行。
- lib/ini - ini 包实现了读取和写入 Git 配置文件语法定义的 INI 文本格式。
- lib/ssh/config - config 包提供了 ssh_config(5) 解析器和 getter。
- nestext - nestext 包提供了处理 NestedText(一种人类友好的数据格式)的工具。
- properties - 用于读取和写入 properties 文件的库
- scribeconf - Facebook Scribe 服务器配置文件解析器
- toml:
- uConfig - 一个无偏见、可扩展和可插拔的配置管理库。支持 YAML、TOML、JSON、环境变量、K8s DAPI 等。
- viper - 一个完整的配置解决方案,支持 YAML、TOML 和 JSON,并与命令行标志集成
- yaml
控制台用户界面
- ansi - 轻松创建 ANSI 转义码字符串和闭包,用于格式化、着色控制台输出
- ansiterm - 用于驱动响应 ANSI 转义序列的纯文本控制台的包
- box-cli-maker - 为你的 CLI 创建高度定制的盒子。
- bubbletea - 一个强大好用的 TUI 框架
- cons - 一个用于构建交互式控制台工具的简单包。
- gnureadline - GNU Readline 绑定
- go-ansiout - 另一个用于命令行应用程序的 ANSI 转义码序列工具。
- gockel - 一个文本终端的 Twitter 客户端
- gocui - 旨在创建控制台用户界面的极简库
- gocurse - NCurses 的 Go 绑定
- gocurses - NCurses 封装
- go-ibgetkey - 用于在命令行应用程序中处理击键的“热键”类型用户输入包。
- go.linenoise - Linenoise 绑定(带有提示符、可选历史记录、可选 Tab 补全的简单易用 readline)
- goncurses - 一个 ncurses 库,包括表单、菜单和面板扩展
- gopass - 允许输入密码但不回显到屏幕
- go-pullbarz - 类似 DOS 时代 Lotus 123 中的花哨的“光标条”菜单。依赖于 go-ibgetkey 和 go-ansiout。
- go.sgr - 终端/控制台颜色和文本装饰(粗体、下划线等)。
- go-stfl - STFL 的轻量级封装,STFL 是一个基于 ncurses 的窗口小部件工具包
- goterminal - 一个 Go 库,允许你在终端上写入然后重新写入文本,以更新进度。它在 Windows 上也可用!
- go-web-shell - 远程 web shell,实现了一个 net/http 服务器。
- igo - 一个基于 exp/eval 并带有一些 readline 改进的简单交互式 Go 解释器
- oh - 一个用 Go 编写的 Unix shell
- pty - 获取伪终端设备
- readline - GNU-Readline 类库的纯 Go 实现
- tcell - Tcell 是一个替代的终端包,在某些方面类似于 termbox,但在其他方面更好。
- termbox-go - 用于构建基于终端的用户界面的极简 ncurses 替代方案
- termios - 终端支持
- termon - Go 的简单终端控制接口。
- uilive - uilive 是一个用于实时更新终端输出的 Go 库。
- uiprogress - 一个在终端应用程序中渲染进度条的库。
- uitable - 一个使用表格数据提高终端应用程序可读性的库。
- yandex-weather-cli - Yandex 天气服务的命令行接口
持续集成
加密货币
- Skycoin - Skycoin 是下一代加密货币,用 Go 编写。Skycoin 的设计并非为了给 Bitcoin 增加功能,而是通过提高简单性、安全性和去除所有非必要内容来改进 Bitcoin。
密码学
- BLAKE2b - BLAKE2b 哈希函数的 Go 实现
- cryptogo - 一些有用的密码学相关函数,包括填充(PKCS7、X.923)、带随机盐和 IV 的 PBE
- cryptoPadding - 在 Go 中实现的块填充方案
- dkeyczar - Google Keyczar 密码学库的 Go 移植
- dkrcrypt - 韩国分组密码:SEED 和 HIGHT
- dskipjack - SKIPJACK 加密算法的 Go 实现
- go-cs - 并发 ssh 客户端。
- go-ed25519 - Floodberry 的 ed25519-donna 的 CGO 绑定。快速批量验证。
- go-hc128 - HC-128 的 Go 实现,一个 eSTREAM 流密码
- go-jose - JOSE 标准的 Go 实现
- go-lioness - 使用 Chacha20 和 Blake2b 的 Lioness 宽块密码
- go-minilock - minilock 文件加密系统的 Go 实现。
- GoSkein - Skein 哈希和 Threefisch 加密的 Go 实现
- go-sphinxmixcrypto - Sphinx 混合网络密码学数据包格式操作
- keccak - 一个 keccak (SHA-3) 实现
- ketama.go - libketama 风格的一致性哈希
- kindi - 加密命令行工具
- openssl - openssl 的 Go 绑定
- otrcat - 一个用于使用 Off-The-Record 协议进行通信的通用命令行工具
- scrypt - Colin Percival 的 scrypt 密钥派生函数的 Go 实现
- secureio - 一个易于使用的 XChaCha20 加密封装,用于
io.ReadWriteCloser
,使用 ECDH 密钥交换算法、ED25519 签名和 Blake3+Poly1305 校验和/消息认证。也提供多路复用器。 - simpleaes - 让 AES 加密变得简单
- siphash - SipHash: 一个快速的短输入伪随机函数
- SRP - SRP: 安全远程密码 - Go 实现
- ssh-vault - 使用 ssh 密钥进行加密/解密
- themis - 用于保护敏感数据的跨平台高级密码学库:提供前向保密的安全消息传递、安全数据存储(AES256GCM);适合构建端到端加密应用程序
- tiger - Tiger 密码学哈希算法
- whirlpool - whirlpool 密码学哈希算法
数据处理
- automi - 在 Go channel 上构建处理和集成流
- Gleam - 快速、高效、可扩展的分布式 map/reduce 系统,支持 DAG 执行,可在内存或磁盘上运行,可独立或分布式部署。
- Glow - Glow 是一个易于使用的分布式计算系统,类似于 Hadoop Map Reduce、Spark、Flink、Storm。
- gostatsd - Statsd 服务器和库。
- Heka - 实时数据和日志文件处理引擎。
- Kapacitor - 用于处理、监控和报警时间序列数据的框架。
- parapipe - FIFO 流水线,在每个阶段并行执行,同时保持消息和结果的顺序
- pipe - Golang 中支持的一些函数式编程特性(Map/Reduce/Filter)
- proto - 用于 Go 的 Map/Reduce/Filter 等,使用 channel 作为结果流。
- ratchet - 一个用于在 Go 中执行数据管道/ETL 任务的库。
- regommend - 推荐引擎。
- rrd - rrdtool 的绑定。
- XConv - 在类型之间转换任何值(基本类型、结构体、数组、切片、map 等)
数据结构
集合
- collections - 几种常见数据结构
- data-structures - 数据结构集合(ArrayList、SortedList、Set、AVL Tree、Immutable AVL Tree、B+Tree、Ternary Search Trie、Hash Table (Separate Chaining)、Linear Hash Table)
- ps - 持久化数据结构
- Tideland golib - 一个集合库
- GoDS - Set、List、Stack、Map、Tree、Queue 等等
哈希表
列表
- fs2/mmlist - 一个内存映射列表。
- GoArrayList - GoArrayList 是 Java 类 ArrayList 在 Go 语言中的替代品,功能几乎完全一致。
- goskiplist - Go 中的跳跃列表实现。
- itreap - 一个不可变有序列表,内部使用 treap。
- ListDict - Go 的 Python List 和 Dict
- skip - 一个快速的位置寻址有序 map 和 multimap。
- Skiplist - 一个快速可索引的有序 multimap。
- skiplist - 一个跳跃列表实现。高度可定制且易于使用。
- skiplist - 移植自 Redis 的 Sorted Sets 的跳跃列表数据结构。
- stackgo - 一个基于切片的快速栈实现。
队列
- fifo_queue - 简单 FIFO 队列
- figo - 一个简单的 FIFO 队列,带有可选的线程安全版本。
- go.fifo - 简单的自动调整大小线程安全 FIFO 队列。
- gopqueue - 基于 container/heap 的优先级队列
- go-priority-queue - 一个易于使用的堆实现,带有常规优先级队列接口。
- golibs/stack - 一个 LIFO 和环形缓冲包
- gringo - 使用精简无锁环形缓冲实现的极简队列
- heap - 一个通用堆包,无需将元素转换为
interface{}
再转换回来。 - queued - 一个简单的网络队列守护进程
- queue - 基于 Redis 的队列管理器
图
集合 (Set)
- disjoint - 不相交集(带路径压缩的并查集算法)
- golang-set - 一个完整的线程安全和非线程安全的 Go set 实现。
- goset - 一个简单的线程安全 Set 实现
- set - Go 的 Set 数据结构
树
- b - b 包实现了 B+ 树,支持延迟页面分割/连接和 O(1) 枚举。通过简单的文本替换,可以轻松生成针对用户定义键值类型优化的 B+ 树源代码。
- btree - btree 包实现了固定大小键的持久化 B 树,参考 http://en.wikipedia.org/wiki/Btree
- btree - 内存中(非持久化)的 B 树实现,API 类似于 GoLLRB
- go-avltree - 带索引的 AVL 树 (Adel’son-Vel’skii & Landis)
- go-btree - 简单的平衡树实现
- go-darts - 用于 Go 的双数组字典树系统 (Double-ARray Trie System)
- GoLLRB - 在 Google Go 中实现的左倾红黑树 (LLRB),一种 2-3 平衡二叉搜索树
- go-merkle - 带证明的 Merkle 化二叉(搜索)树。
- go-radix, go-radix-immutable - 基数树实现。
- go-stree - 用于区间范围查询的线段树实现
- gtreap - 持久化 treap 实现。
- prefixmap - 用于字符串键的简单字典树前缀 map
- rbtree - 一个高性能红黑树,API 类似于 C++ STL 的 set, map, multiset, multimap。
- rbtree - 另一个红黑树实现,带有 C++ STL 风格的 API
- rtreego - 一个 R 树库
- triego - 用于存储单词的简单字典树实现
其他
- aurora - 跨平台的 Beanstalk 队列服务器控制台。
- bigendian - 二进制解析和打印
- deepcopy - 对数据结构进行深拷贝
- dgobloom - Bloom 过滤器实现
- epochdate - 将日期存储为自 Unix 纪元以来的天数的紧凑格式
- etree - 轻松解析和生成 XML
- excelize - 用于读写 Microsoft Excel (XLSX) 文件的 Go 库。
- fsm - 用于替代布尔值的极简状态机
- go-algs/ed - 广义编辑距离实现
- go-algs/maxflow - 使用最大流算法的能量最小化工具。
- gocrud - 用于处理任意深度数据结构的框架。
- go-extractor - GNU libextractor 的 Go 封装
- Gokogiri - 一个轻量级 libxml 封装库
- GoNetCDF - NetCDF 文件格式库的封装
- goop - Go 的动态面向对象编程支持
- gopart- 对任何可在 Go 中索引的内容进行类型无关的分区。
- gotoc - 一个用 Go 编写的 protocol buffer 编译器
- govalid - 数据验证库
- goxlsxwriter - 用于写入 XLSX (Excel) 文件的 libxlsxwriter 的 Golang 绑定
- goxml - libxml2 的轻量级封装
- hyperloglog - HyperLogLog 和 HyperLogLog++ 算法的实现,用于使用恒定内存估算集合的基数。
- itertools - 提供通用可迭代生成器函数以及类似于 python itertools 包的功能。
- jsonv - 一个 JSON 验证器
- libgob - 用于从其他语言生成 gob 的低级库
- mxj - 将 XML 文档 Marshal/Unmarshal 到
map[string]interface{}
或 JSON - ofxgo - 一个用于查询 OFX 服务器和/或解析响应的库(以及示例命令行客户端)。
- Picugen - 通用哈希/校验和摘要生成器。
- simple-sstable - Go 中的简单、无冗余的 SSTable 格式和实现。
- tribool - Go 的三值逻辑
- Tuple - Tuple 是一个可以保存混合类型/值的 Go 类型
- vcard - 在 Go 中读写 vcard 文件。实现了 RFC 2425 (A MIME Content-Type for Directory Information) 和 RFC 2426 (vCard MIME Directory Profile)。
- weightedrandom - 一个用于高效加权随机选择的库
- xlsx - 一个用于从 Microsoft Office Excel XLSX 文件中提取数据的库。
数据库
另请参阅 SQLDrivers 页面。
CockroachDB
- cockroachdb - 一个可扩展、可生存、强一致的 SQL 数据库
Hazelcast IMDG
- Hazelcast IMDG Go Client - Hazelcast IMDG(开源内存数据网格)的官方 Go 客户端实现。
MongoDB
- Mongo Driver - 官方 MongoDB Go 驱动
- MongoDB Exporter - MongoDB 的 Prometheus 指标导出器
- mongobetween - 一个用 Golang 编写的轻量级 MongoDB 连接池
- rocks-stata - MongoDB 备份工具
MySQL
- Go-MySQL-Driver - Go 的 database/sql 包的轻量级快速 MySQL 驱动
- MyMySQL - 完全用 Go 编写的 MySQL 客户端 API。
- mysqlsuperdump - 生成 MySQL 数据库的部分和过滤转储
- TiDB - 模仿 Google F1 设计的 MySQL 兼容分布式数据库。
- vitess - 用于 Web 的 MySQL 数据库扩展。
ODBC
PostgreSQL
code.soquee.net/migrate
一个用于生成、应用和列出 PostgreSQL 数据库迁移的库,使用与 Rust 的 Diesel 兼容的机制。- go-libpq - Go 的 database/sql 包的基于 cgo 的 Postgres 驱动
- go-pgsql - Go 的 PostgreSQL 客户端库
- kallax - PostgreSQL 类型安全的 ORM
- pgsql.go - PostgreSQL 高级客户端库封装
- pgx - 与 database/sql 兼容的 Go PostgreSQL 驱动,并提供原生接口以获得更好的性能和特性
- pq - database/sql 的纯 Go PostgreSQL 驱动
- yoke - 带有自动故障转移和自动集群恢复的 Postgres 高可用集群
QL
- ql - 一个纯 Go 嵌入式 (S)QL 数据库。
Redis
- godis - 简单的 Redis 客户端
- Go-Redis - Redis 键值存储的客户端和连接器
- go-redis - 基于 gomemcache 骨架构建的 Redis 客户端
- Redigo - Redis 的 Go 客户端。
- redis - Redis 的 Go 客户端
- rueidis - 快速 Redis RESP3 客户端,支持客户端缓存和自动管道化。
RethinkDB
- GoRethink - RethinkDB 的 Go 驱动
SQLite
- gosqlite3 - SQLite3 的 Go 接口
- gosqlite (forked) - gosqlite 的一个分支
- gosqlite - 一个简单的 SQLite Go 绑定。
- go-sqlite - 一个 database/sql 驱动和独立的 sqlite3 接口
- go-sqlite-lite - 一个简单的 Go SQLite 包。
- mattn’s go-sqlite3 - 符合内置 database/sql 接口的 sqlite3 驱动
Vertica
- vertica-sql-go - Vertica 数据库的纯 Go 驱动。
ORM
- beedb - beedb 是一个 Go 的 ORM。它允许你将 Go 结构体映射到数据库表
- ent - 一个 Go 的实体框架
- FilterXorm - 为 xorm 项目构建条件。
- go-modeldb - sql.DB 的简单封装,支持结构体。
- gorm - Go 的 ORM 库,旨在对开发者友好
- gorp - Go 的 SQL 映射器
- go-firestorm - Cloud Firestore 的简单 Go ORM
- go-store - Go 的数据存储库,提供一组平台无关的接口来持久化和检索键值数据。
- hood - Go 的数据库无关 ORM。支持 Postgres 和 MySQL。
- lore - Go 的简单轻量级伪 ORM/伪结构体映射环境。
- qbs - Query By Struct。支持 MySQL、PostgreSQL 和 SQLite3。
- sqlboiler - 通过代码生成实现 Database-first ORM。
- sqlgen - Go 的 SQL 交互代码生成。
- structable - 结构体到表的数据库映射器。
- xorm - Go 的简单强大 ORM。
- reform - 一个更好的 Go ORM,基于非空接口和代码生成。
- go-queryset - 100% 类型安全的 Go ORM,支持代码生成、MySQL、PostgreSQL、Sqlite3、SQL Server。
键值存储
- bolt - 受 LMDB 启发的持久化键/值存储。
- dbm - dbm 包(WIP)实现了一个简单的数据库引擎,是层次结构和/或键值数据库的混合体。
- fs2/bptree - 支持重复键的内存映射 B+ 树。适用于大量数据(例如 +100 GB)。支持匿名和文件支持的内存映射。
- Diskv - 自制的、磁盘支持的键值存储
- etcd - 高可用键值存储,用于共享配置和服务发现
- olric 分布式缓存和内存键/值数据存储。既可以用作嵌入式 Go 库,也可以用作语言无关服务。
- gkvlite - 纯 Go、简单、有序、基于追加文件格式的原子键值持久化。
- gocask - 受 Riak Bitcask 启发的键值存储。可用作 dbm 和其他 kv 存储的纯 Go 实现。
- goleveldb - LevelDB 键/值存储的另一个纯 Go 实现。
- kv - 另一个键/值持久化存储。支持原子操作、两阶段提交、自动崩溃恢复等。
- leveldb-go - 这是 LevelDB 键/值数据库的实现。
- levigo - levigo 提供创建和访问 LevelDB 数据库的能力。
- persival - 程序化、持久化、伪键值存储
图数据库
- cayley - 100% Go 图数据库,灵感来自 Freebase 和 Google 知识图谱。
- Dgraph - 快速、分布式图数据库,提供类似 GraphQL 的 API。
- go-gremlin - Apache TinkerTop 图分析框架 (Gremlin server) 的 Go 客户端。
NoSQL
- couchgo - 功能最完整的 Go CouchDB 适配器。模仿 couch.js。
- influxdb - 用于指标、事件和实时分析的可扩展数据存储
- Kivik - Kivik 提供 CouchDB、PouchDB 和类似数据库的通用 Go 和 GopherJS 客户端库。
- ledisdb - 一个类似 Redis 的高性能 NoSQL。
- nodb - 一个纯 Go 嵌入式 Nosql 数据库,包含 kv, list, hash, zset, bitmap, set。
- tiedot - 一个使用 JSON 作为文档和查询的 NoSQL 文档数据库引擎;它可以嵌入到你的程序中,或作为独立服务器使用 HTTP 提供 API。
其他
- cabinet - kyoto cabinet 的 Go 绑定
- camlistore - 个人分布式存储系统。
- cdb.go - 创建和读取 cdb(“常量数据库”)文件
- CodeSearch - 索引并对大量源代码执行正则表达式搜索
- dbxml - Oracle Berkeley DB XML 的基本接口
- drive - 一个 Google drive 命令行客户端
- Event Horizon - 命令查询职责分离和事件溯源 (CQRS/ES) 的工具包
- go-batcher - 在 Go 中轻松创建和使用批处理处理器
- go-clickhouse - 连接到 Yandex Clickhouse (列式数据库) 的连接器
- go-db-oracle - GO 到 Oracle DB 的接口
- gographite - Go 中的 statsd 服务器(用于向 graphite 发送数据)
- gokabinet - Kyoto Cabinet DBM 实现的 Go 绑定
- go-model - Go 的强大易用结构体映射器和实用方法
- go-notify - libnotify 的 GO 绑定
- goprotodb - 绑定到 Berkeley DB,存储编码为 Protocol Buffers 的记录。
- go-rexster-client - Rexster 图服务器 (TinkerPop 图数据库工具套件的一部分) 的 Go 客户端
- goriak - riak 数据库的数据库驱动(项目主页现已迁移到 bitbucket.org)
- goriakpbc - 使用 Riak protobuf 接口的 Riak 驱动
- gotyrant - tokyo tyrant 的 Go 封装
- go-wikiparse - mediawiki 转储解析器,用于处理 wikipedia 数据
- hdfs - libhdfs 的 go 绑定
- JGDB - JGDB 代表 Json Git Database
- mig - 简单的基于 SQL 的数据库迁移工具
- mongofixtures - 一个 Go 快速实用的工具,用于清理 MongoDB 集合并将固定数据加载到其中。
- Neo4j-GO - Go 语言实现的 Neo4j REST 客户端
- neoism - Neo4j 图数据库客户端,支持 Cypher 和事务。
- null - 用于处理 SQL 中的 null 值的包
- Optimus Cache Prime - 针对具有 XML 站点地图的网站的智能缓存预加载器。
- piladb - 基于栈数据结构的轻量级 RESTful 数据库引擎。
- pravasan - 简单的迁移工具(类似于 rake db:migrate,但更灵活)
- remapper - 用于将数据从一种类型转换/映射到另一种类型的库
- riako - 用于与 Riak 数据库交互的高级实用方法
- sqlbuilder - 支持行映射的 SQL 查询构建器
- sqlf - 在 Go 中以 sprintf 风格创建参数化 SQL 语句
- squirrel - Go 语言的流畅 SQL 生成库
- Sublevel - 分离同一个 LevelDB 的不同部分
- Weed File System - 快速分布式键文件存储
- whisper-go - 用于处理 whisper 数据库的库
- xo - 用于为数据库生成符合 Go 语言习惯代码的 CLI 工具
日期
- date - 用于处理日期的包。
- date - 用于日期、日期范围、时间跨度、周期和一天中的时间。
- goment - 受 Moment.js 启发的 Go 时间库
- gostrftime - 类似于 strftime(3) 的 time.Time 格式化
- hijri - 一个小型辅助库,根据 Ummul Qura 日历将回历日期转换为公历日期。
- now - Now 是一个 Go 语言时间工具包。
- tai64 - tai64 和 tai64n 的解析和格式化
- Tideland golib - Timex 扩展
- tuesday - 一个与 Ruby 的
Time.strftime
兼容的 Strftime 实现
开发工具
- cwrap - 用于 C 库的 Go 包装器(绑定)生成器。
- demand - 轻松下载、构建、缓存和运行 Go 应用程序。
- glib - GLib 类型系统的绑定
- go-callvis - 使用 dot 格式可视化 Go 程序的调用图。
- go-size-analyzer - 一个显示 Go 二进制文件每个依赖项大小的工具。
- gocog - 一个可以使用任何语言生成代码的代码生成器
- godepgraph - 为 Go 包创建依赖图
- godev - 在源代码更改时重新编译并运行 Go 代码。同时监控所有导入的更改。
- godiff - 带有彩色 HTML 输出的 diff 文件比较工具
- GoNB - 使用 Jupyter Notebooks 进行交互式 Go 编程。
- gonew - 一个创建新的 Go 项目的工具
- go-play - 一个用于 Go 代码实验的 HTML5 Web 界面。类似于 https://golang.ac.cn/doc/play,但在你的电脑上运行
- gore - 一个 Go REPL。支持行编辑、代码补全等功能
- gorun - 使 Go 源代码文件可用作脚本。
- go-spew - 为 Go 数据结构实现深度漂亮打印,以帮助调试
- goven - 轻松地将代码从其他项目复制到你的项目
- gowatcher - 通过监控目录自动重新加载指定的 Go 程序。
- GoWatch - GoWatch 监控你的开发文件夹中的修改文件,如果文件发生变化,它会重启进程。
- goweb - 基于 Donald Knuth 和 Silvio Levy 的 CWEB 的 Go 文学化编程工具。
- goyaccfmt - 自动重新格式化 Goyacc 源代码文件。
- hopwatch - 简单的 Go 调试器
- hsandbox - 用于快速实验 Go 代码片段的工具
- Inject - 用于 Go 语言依赖注入的库(来自 Facebook)
- liccor - 一个用于更新 Go 源代码文件许可证头的工具
- liteide - 一个 Go 自动构建工具和基于 Qt 的 Go IDE
- Livedev - Livedev 是一个开发代理服务器,支持实时代码重载。
- Martian - 用于端到端测试的 HTTP 代理。
- nvm-windows - Windows 版 Node.js 版本管理器
- prettybenchcmp - 在本地存储和比较基准测试历史。
- rerun - Rerun 监控你的二进制文件及其所有依赖项,以便在源代码更改时可以重新构建和重新启动。
- sling - 网络流量模拟器和测试自动化工具,用于通过 HTTP 或 TCP 协议发送文件请求,控制速率频率、并发连接数、延迟、超时,并收集响应时间统计、均值和百分位数。
- syntaxhighlighter - 语言无关的代码语法高亮库
- toggle - 一个特性开关库,内置支持环境变量驱动的开关。支持可插拔的后端引擎。
- trace - 简单的调试跟踪
Emacs 标签
分布式/网格计算
- celeriac - 一个库,用于在 Go 中添加支持与 Celery 工作者、任务和事件交互及监控的功能
- donut - 一个用于在 Go 中构建集群服务的库
- libchan - 网络上的类 Go Channel
- locker - 一个构建在 etcd 之上的分布式锁服务。
- dlock - 使用 gRPC 实现的本地 Go 分布式锁管理器(客户端和服务器)。
- mangos - 基于 nanomsg 的可伸缩协议实现
- redsync - 基于 Redis 的分布式互斥锁实现
- Skynet - Skynet 是一个为高可伸缩 API 类型服务提供设计的分布式进程网格。
- Tideland golib - 包含一个 map/reduce 库
文档
- godocdown - 将包文档 (godoc) 格式化为 GitHub 友好的 Markdown
- golangdoc - Golang 的 Godoc,支持翻译。
- Mango - 自动从 Go 源代码生成 Unix 手册页
- redoc - Redis 命令文档
- sphinxcontrib-golangdomain - 适用于 Sphinx 的 Go 领域
- test2doc - 从单元测试为你的 Go 单元生成文档。
编辑器
- A - 一个基于 Acme 的图形文本和二进制编辑器
- Conception - Conception 是一个实验性研究项目,旨在成为一个现代 IDE/语言包。 演示视频
- de - 一个具有 Acme 和 vi 功能的模态图形编辑器
- Gide - 使用 Go 原生的 GoGi GUI 构建的 Go IDE
- Go-bbpackage - 用于 Go 开发的 BBEdit 包
- goclipse - 一个基于 Eclipse 的 Go IDE。
- Go conTEXT - 高亮插件
- godev - 基于 Web 的 Go 语言 IDE
- godit - 一个用 Go 编写的类似于 microemacs 的文本编辑器。
- gofinder - 适用于 acme 的(代码)搜索工具
- go-gedit - gedit 的 Google Go 语言插件
- golab - go 本地应用构建器 - 一个基于 Web 的 Go IDE
- Google Go for Idea - Intellij IDEA 的 Google Go 语言插件
- micro - 一个现代且直观的终端文本编辑器。
- tabby - 源代码编辑器
- T - 一个类似 Acme/Sam 的文本编辑器
- ViGo - 一个类似于 vim 的文本编辑器。
- Wide - 适用于使用 Go 语言团队的基于 Web 的 IDE。
电子邮件
- chasquid - 用 Go 编写的 SMTP 服务器。
- gmail - 一个简单的库,用于从 Gmail 帐户发送电子邮件,适合不关心协议细节的人。
- Gomail - 一个简单高效的发送电子邮件包。
- go-mail - 电子邮件工具,包括 RFC822 消息和 Google Mail 默认设置。
- go-ses - Amazon AWS 简单电子邮件服务 (SES) API 客户端
- go-simple-mail - “用于发送电子邮件的 Golang 包。支持保持连接、TLS 和 SSL。便于批量 SMTP 发送。”
- Hectane - 轻量级 SMTP 客户端,包含一个内置的邮件队列,支持磁盘存储。
- Inbucket - Inbucket 是一个电子邮件测试服务;它接受任何电子邮件地址的消息,并提供 Web 界面供查看。
- mail.go - 解析电子邮件消息
- MailHog - 电子邮件测试服务,灵感来自 MailCatcher。
- MailSlurper - 一个方便的 SMTP 邮件服务器,适用于本地和团队应用程序开发。将邮件尽情吸入!
错误处理
code.soquee.net/problem
problem 包实现了类似于 RFC7807 中描述的用于 HTTP API 的错误。- errgo - 错误跟踪和注解。
- errors - errors 增强了错误信息,包含文件和行号。
- errors - juju/errors 包提供了一种简单的方法来注解错误,而不会丢失原始错误上下文,并可以从错误中获取记录位置的堆栈跟踪。
- goerr - 允许创建独立(模块化)和可重用的错误处理程序。使用 Return(error) 并捕获 err := OR1(..) 实现类似异常的 panic() recover() 机制
- hierr - 按层次结构嵌套错误。
- panicparse - 优雅地解析 panic。
- Space Monkey errors - Go 缺失的错误库 - 堆栈捕获、错误层次结构、错误标签
- Tideland golib - 详细的错误值
编码和字符集
- base58 - 对人类输入友好的 base58 编码
- bencode-go - 编码和解码 BitTorrent 点对点文件共享协议使用的 bencode 格式
- bsonrpc - net/rpc 的 BSON 编解码器
- chardet - 从 ICU 移植的字符集检测库
- charmap - Go 中的字符编码
- codec-msgpack-binc 高性能且功能丰富的符合 Go 语言习惯的库,提供多种二进制序列化格式的编码/解码支持:msgpack
- colfer - 高性能二进制编解码器
- gobson - BSON (反)序列化器
- go-charset - 字符集之间的转换。原生 Go 实现。
- go.enmime - Go 语言 (原生) 的 MIME 电子邮件解析库
- go-msgpack - 功能全面的 Go MsgPack 库,支持 pack/unpack 和 net/rpc 编解码(已弃用,推荐使用 codec )
- gopack - Go 的位打包
- go-simplejson - 一个用于与任意 JSON 交互的 Go 包
- go-wire - 用于结构体等的二进制和 JSON 编解码器
- go-xdr - 外部数据表示 (XDR) 标准协议数据表示部分的纯 Go 实现,符合 RFC 4506 (废弃 RFC 1832 和 RFC 1014)。
- iconv-go - 带有 Reader 和 Writer 的 iconv 包装器
- magicmime – 使用 libmagic 的 Go 绑定进行 Mime 类型检测
- Mahonia - Go 中的字符集转换库
- mimemagic - 根据文件内容自动检测 mime 类型,无外部依赖
- mimemagic - 基于 FreeDesktop.org 规范的纯 Go MIME 嗅探库/工具
- msgpack - Go 的 Msgpack 格式实现
- msgpack-json - 在 msgpack 和 json 之间转换的命令行工具
- nnz - 可序列化为 JSON 和 SQL null 的 String 和 Int 原语
- storable - 写入 perl storable 数据
- TNetstring - tnetstrings (带标签的 Netstrings)
文件系统
- afero - 一个 Go 的文件系统抽象系统
- go.fs - 一个虚拟文件系统抽象层。
- poller - poller 包是一个文件描述符多路复用器。它允许从多个文件描述符并发进行 Read 和 Write 操作。
- vfsgen - 生成一个 vfsdata.go 文件,静态实现给定的虚拟文件系统。
游戏
- Bampf - 基于 Vu 3D 引擎的街机风格游戏。
- bloxorz - bloxorz 基础关卡求解器
- ChessBuddy - 使用 Go, HTML5, WebSockets 和随机陌生人一起下棋!
- Fergulator - 一个 NES 模拟器,使用 SDL 和 OpenGL
- FlappyBird - 一个用 Go 语言编写的简单 Flappy Bird 克隆游戏。
- godoku - Go 数独求解器 - “通过通信共享”的示例
- Gongo - 一个用 Go 编写的围棋程序
- gospeccy - 一个 ZX Spectrum 48k 模拟器
- Ludo Game - 在 Appengine 上由 Go 提供支持的 Ludo 棋盘游戏
- pinkman - 基于命令行的国际象棋界面,用于与 UCI 兼容的国际象棋引擎交互
- Pong - 一个用 Go 语言编写的简单 Pong 克隆游戏
- pong-command - 开玩笑的命令,类似 ping 的 pong。
- Steven - 一个用 Go 编写的 Minecraft 客户端
- ukodus - 用 Go 编写的数独求解器
- WolfenGo - 一个用 Go 编写的 Wolfenstein3D 克隆游戏,使用 OpenGL 2.1
- GoChess - 在终端上与朋友下国际象棋
- Ebitengine - Ebitengine 简单的 API 使你能够快速轻松地开发可在多个平台部署的 2D 游戏。
地理信息系统 (GIS)
- geojson - 一个 Go 包,用于快速轻松地创建 geojson 格式的 json 数据。 描述
- go-geom - 高效的 Open Geo Consortium 风格几何体,支持原生 Go GeoJSON 和 WKB 编码/解码(正在进行中)
- go.geo - 针对在线地图的几何/地理库(已被作者弃用,推荐使用其新的 gis 库
orb
。) - go.geojson - GeoJSON 对象的编组和解组
- gogeos - 用于空间数据操作和几何算法的 Go 库
- go-proj-4 - Cartographic Projections Library PROJ.4 的接口
- go-kml - Google Earth KML 生成
- go-polyline - Google Maps 多段线编码和解码
- orb - 2D 几何操作(长度、面积、多边形包含等),支持 geojson、wkb、mvt
- osm - 用于读取、写入和处理 OpenStreetMap 数据的通用库
- UTM - 双向 UTM-WGS84 转换器
- gdal - 提供 GDAL 的 Go 包装器
图形和音频
- accumimage -
image.NRGBA
和color.NRGBA
的变体,支持颜色累积和平均 - AnsiGo - 用纯 Go 编写的简单 ANSi 到 PNG 转换器
- Arclight - Arclight 是一个用于渲染图像的工具
- bild - 一个纯 Go 实现的图像处理算法集合
- bimg - 使用 libvips 进行快速图像调整大小和转换的小型 Go 库
- blend - Go 的图像处理库和渲染工具包。
- bpg - Go 的 BPG 解码器。
- chart - 一个库,用于生成常见图表(饼图、条形图、带状图、散点图、直方图),支持不同输出格式。
- cpio - CPIO 归档文件格式的读取器和写入器。
- draw2d - 此包提供了一个 API,用于在图像上绘制 2D 几何形状。此库在很大程度上受到 postscript、cairo、HTML5 canvas 的启发。
- ebiten - 一个跨平台开源游戏库,你可以使用其简单的 API 为多个平台开发 2D 游戏。无需 Cgo/C 编译器设置。
- egl - egl 绑定
- es2 - es2 绑定
- fastgallery - 一个快速的静态图像和视频 Web 画廊生成器
- fourcc - FOURCC (四字符代码) (4CC) 的 Go 实现,用于媒体文件中使用的视频编解码器、压缩格式、颜色和像素格式标识符。
- freetype-go - FreeType 的 Go 实现
- glfw 3 - GLFW 3 库的 Go 绑定
- glfw - 用于打开窗口、创建 OpenGL 上下文和管理输入的跨平台库绑定
- glh - 用于管理文本、纹理、帧缓冲等的 OpenGL 辅助函数
- gl - 使用 glew 的 OpenGL 绑定
- gltf - 用于编组和解组 glTF 的库
- glu - OpenGL Utility Library 的绑定
- glui - glfw 的包装器,用于简化图像显示
- gmask - Csound 的 Cmask 工具的 Go 适配
- goalsa - ALSA 捕获和播放的 Go 绑定
- go-cairo - cairo 图形库的 Go 包装器
- gocl - Go OpenCL (gocl) 绑定,支持 OpenCL 1.1/1.2/2.0 (Mac/Linux/Windows/Android)
- go-colorful - 颜色空间转换及其他颜色空间操作
- go-csnd6 - Csound6 API 的 Go 绑定
- go-csperfthread - Csound6 API 的 CsoundPerformanceThread 辅助类的 Go 绑定
- goexif - 从图像文件检索 EXIF 元数据
- gofb - 用于逐像素绘制的 Go framebuffer 库
- goflac - 使用 libFLAC 进行 FLAC 音频解码和编码的 Go 绑定
- go-gd - GD 的 Go 绑定
- GoGL - OpenGL 绑定生成器
- go-gnuplot - Gnuplot 的 Go 绑定
- go-gtk3 - Go 的 gtk3 绑定
- go-heatmap - 用于制作热力图的工具包
- GoHM - Go 语言实现的 H.265/HEVC HM 视频编解码器
- goHorde - Horde3d 渲染引擎的 Go 绑定
- GoMacDraw - go.wde 的 Mac 实现
- go-openal - OpenAL 的 Go 实验性绑定
- go-opencl - OpenCL 异构并行编程库的 Go 封装
- go-opencv - OpenCV 的 Go 绑定 / 2.x API 在 gocv / 1.x API 在 opencv
- Go-OpenGL - OpenGL 的 Go 绑定
- Goop - 音频合成器引擎
- goray - 基于 Yafaray 的 Go 语言光线追踪器
- gosc - 纯 Go 语言 OSC (Open Sound Control) 库
- go-taglib - TagLib (音频元数据解析器) 的 Go 封装
- go-tmx - 一个读取 Tiled TMX 文件的 Go 库
- govips - 一个闪电般快速的 Go 图像处理和缩放库
- GoVisa - Go 语言实现的 H265/HEVC 比特流分析器
- go-vlc - libVLC 的 Go 绑定
- go.wde - 窗口/绘图/事件接口
- goxscr - xscreensaver 移植的 Go 重写
- graphics2d - 基于路径和路径变换的 2D 图形包
- gst - GStreamer 的 Go 绑定
- gumble - Mumble VoIP 协议的客户端库
- hgui - 基于 http 和 gtk-webkit 的 GUI 工具包
- hsvimage - 支持 HSV 颜色模型和图像
- imaginary - 简单快速的 HTTP 微服务,用于图像缩放和处理
- imaging - imaging 包提供基本的图像处理功能(缩放、旋转、翻转、裁剪等)以及简化的图像加载和保存。
- imgproxy - 快速安全的独立服务器,用于缩放和转换远程图像
- libvlc-go - VLC 媒体播放器使用的 libVLC 2.X/3.X/4.X 的 Go 绑定
- merlin - 自动视频编码器
- netpbm - 从 Go 程序读取和写入 Netpbm 图像
- opencv - OpenCV 的 Go 绑定
- osmesa - osmesa 的 Go 绑定。
- phono - DSP(数字信号处理)管线。
- Plotinum - 用于创建图表的 API
- portaudio - PortAudio 的 Go 绑定
- pulsego - PulseAudio 的 Go 绑定
- pulse-simple - PulseAudio Simple API 的 Go 绑定,用于轻松捕获和播放音频。
- rasterx - SVG 标准渲染、光栅化库。
- resize - 支持不同插值的图像缩放。
- RiGO - RenderMan Interface 的 Go 实现。
- rpm - RPM 包文件格式的 Go 实现
- smartcrop - 内容感知图像裁剪
- starfish - 一个基于 SDL 的简单 Go 图形和用户输入库
- stl - 用于读取、写入和操作 3D 打印中使用的 Stereolithography (.stl) 文件的库
- svgo - 一个用于创建和输出 SVG 的库
- tag - 一个用于读取标签元数据并为音频文件(FLAC、所有 IDv3 变体和 MP4 (ACC, ALAC))创建元数据不变校验和的库
- texture - 基于 Bryce3D 深度纹理编辑器的程序化生成的纹理
- tga - TARGA 图像格式编码/解码库
- tiff - 功能丰富的 TIFF/BigTIFF/GeoTIFF 解码器/编码器,适用于 Go。
- twilio-go - Twilio API 的 Go 客户端。
- videoinput - VideoInput (Windows) 的 Go 绑定。
- vu - 虚拟宇宙。一个骨架 3D 引擎。
- vulkan - Vulkan API 的 Golang 绑定。
- webp - WebP 解码器和编码器,适用于 Go。
- wg - Web 图形,在浏览器中显示实时 Go 图形,支持用户输入。
- window - 针对实时数据的优化移动窗口
- xmorph - 图像扭曲和变形
GUI 和窗口小部件工具包
- fyne - 基于 Material Design 的跨平台原生 GUI 工具包
- gio - 可移植的(iOS/tvOS, Android, Linux (Wayland/X11), macOS, Windows, FreeBSD, OpenBSD, WASM)即时模式 GUI
- go-fltk - FLTK2 GUI 工具包的 Go 绑定
- imgui-go - Dear ImGui 的 Go 封装库
- GoGi - 完全原生的跨平台 GUI 工具包
- go-gtk - GTK 的绑定
- go-qt5 - QT5 的 Go 绑定
- gothic - Tcl/Tk 的 Go 绑定
- gotk3 - GTK3 的 Go 绑定,需要 GTK 3.8 版本
- go.uik - 一个用 Go 编写的 Go UI 工具包。(项目已关闭)
- go-webkit2 - WebKitGTK+ v2 API 的 Go 绑定(支持无头浏览器和 JavaScript)
- Gowut - Gowut (Go Web UI Toolkit) 是一个功能齐全、易于使用、独立于平台的 Web UI 工具包,完全用 Go 语言编写,不链接或调用任何平台相关的原生代码。
- GXUI - 一个 Go 跨平台 UI 库。
- iup - IUP 的绑定
- lorca - 一个用于在 Go 中构建跨平台 HTML5 GUI 应用程序的小型库,使用 Chrome/Chromium 作为 UI 层。
- mdtwm - X 的平铺窗口管理器
- qml - Go 语言对 QML 的支持
- ui - Go 的平台原生 GUI 库
- webview - 微小的跨平台 web UI 库。使用 WebKit (Gtk/Cocoa) 和 MSHTML (Windows)
- wingo - 一个用 Go 编写的功能齐全的窗口管理器。
- Winhello - 一个 Windows GUI Hello World 示例应用程序
- wxGo - wxWidgets GUI 的 Go 封装
- xgb - x-go-binding 的一个分支,支持线程安全和所有 X 扩展。
- xgbutil - 一个使 X Go Binding 更易于使用的实用库。(实现了 EWMH 和 ICCCM 规范,支持按键绑定等)
- x-go-binding - X 窗口系统的绑定
- go-sciter - sciter 的绑定
- go-astilectron - 使用 GO 和 HTML/JS/CSS 构建跨平台 GUI 应用程序(由 Electron 提供支持)
硬件
- gobot - 适用于机器人、无人机和物联网 (IoT) 的 Golang 框架。
- go.hid - 提供与 USB 人机接口设备 (HID) 的通信。
- gortlsdr - 一个 librtlsdr 封装,可以将某些 USB DVB-T 加密狗转换为低成本、通用软件定义无线电接收器。
- hwio - 用于包括 BeagleBone Black 和 Raspberry Pi 在内的 SoC 板的硬件 I/O 库。
- stressdisk - 在将宝贵数据存入磁盘/存储卡/USB 驱动器之前对其进行压力测试
语言学
- alpinocorpus-go - Alpino 语料库的读取器和写入器。
- go-aspell - GNU Aspell 拼写检查库的 Go 绑定。
- go-edlib - Go 字符串比较和编辑距离算法库(Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler 等),兼容 Unicode。
- go-l10n - 面向人类的本地化
- go-language - 一个使用字母频率数据进行简单语言检测的库。
- goling - 字符串相似度(余弦相似度、Levenshtein 距离)、拼写检查、分词
- go-ngram - N-gram 是文本或语音序列中连续的 N 个项的序列。
- go.stringmetrics - Go 中实现的字符串距离度量
- go-tokenizer - Golang 的文本分词库
- inflect - 单词变形库(类似于 Ruby ActiveSupport::Inflector)。支持 Singularize()、Pluralize()、Underscore() 等。
- libtextcat - libtextcat 的 Go 封装。
- nlp - 支持 LSA(潜在语义分析)的 Go 自然语言处理库。
- sego - 中文分词器。
- snowball - 多语言 Snowball 词干提取器
- textcat - 基于 N-gram 的文本分类,支持 utf-8 和原始文本
日志和监控
- colog - CoLog 是一个基于前缀的 Go 分级执行日志
- cue - 快速灵活的上下文日志记录器。支持输出到文件、syslog、结构化 syslog、stdout/stderr、socket、Loggly、Honeybadger、Opbeat、Rollbar 和 Sentry。
- epazote - 自动化微服务监控器。
- factorlog - 非常快速、功能丰富的日志记录基础设施(支持颜色、详细程度和多种格式)
- glog - Go 的分级执行日志
- go-logging - 支持不同的日志后端,如 syslog、文件和内存。每个后端和日志记录器可以配置不同的日志级别,并使用多个后端。
- gomol - 一个多输出日志记录库,设计用于支持日志消息附带额外元数据的输出。
- gosrvmon - 自托管的在线时间监控系统。
- graylog-golang - graylog-golang 是一个完整的实现,用于将消息以 GELF (Graylog Extended Log Format) 格式从 Google Go (Golang) 发送到 Graylog
- haminer - 用于解析和转发 HAProxy 日志的库和程序
- immortal - 一个 *nix 跨平台(操作系统无关)监控器
- jWalterWeatherman - 无缝的终端打印和文件日志记录,像 fmt.Println 一样易于使用
- kemba - 一个受 debug 启发的小型调试日志工具,非常适合 CLI 工具和应用程序。
- log4go - 类似于 log4j 的 Go 日志包
- logger - 支持缓冲输出和多个写入器的 Go 日志记录
- logrus - Go 的结构化、可插拔日志记录,内置第三方日志记录器挂钩:Airbrake、Papertrail、Loggly、Sentry…
- MailJet Live Event Dashboard - 实时 API 监控。
- monkit - 一个灵活的 Go 进程数据收集、指标、监控、仪器和追踪库
- Prometheus - 监控系统和时序数据库。
- rfw - 旋转文件写入器 - 一个支持 ’logrotate’ 的文件输出,用于日志记录器
- sd - 写入 systemd journal,支持用户自定义 systemd journal 字段
- seelog - 灵活的分发、过滤和格式化
- snap - 遥测框架
- spacelog - Go 的分层、分级和结构化日志库
- statsgod - StatsD 的 Go 重写版本。
- syslog - 使用此包可以创建自己的 syslog 服务器,并为不同类型的 syslog 消息定义自己的处理程序
- Tideland golib - 灵活的日志记录
- timber - Go 的可配置日志记录器
- ul - 通过 cgo 提供 macOS Sierra/OSX 统一日志功能
- vlog - Go 的标准日志分级日志记录
机器学习
- Anna - 人工神经网络愿望,旨在成为自学习和自改进的软件。
- bayesian - 一个朴素贝叶斯分类器。
- ctw - 上下文树加权和 Rissanen-Langdon 算术编码
- Dialex - Dialex 是一个智能管道,用于整理文本并使其可机读。
- evo - 一个用于在 Go 中实现进化算法的框架。
- go-algs/maxflow Maxflow(图割)能量最小化库。
- go-galib - 遗传算法。
- golinear - 线性 SVM 和逻辑回归。
- go-mind - 用 Go 构建的神经网络库
- go_ml - 线性回归、逻辑回归、神经网络、协同过滤、高斯多元分布。
- gomlx - 用于 Go 的加速 ML 和数学框架(使用 XLA 进行 JIT 编译)—— 类似于 PyTorch/Jax/TensorFlow 的 Go 版本。
- gonet - Go 的神经网络。
- go-porterstemmer - Porter 词干提取算法的高效原生 Go 纯净室实现。
- go-pr - 高斯分类器。
- gorgonia - 神经网络基本库(类似于 Theano 或 Tensorflow,但用于 Go)
- mlwebservicego - 使用 Golang、Echo 和 Firebase 提供机器学习模型服务。
- ntm - 神经图灵机实现
- openai — ChatGPT 分词器和 SDK
- paicehusk - Paice/Husk 词干提取器的 Go 实现
- tfgo - Tensorflow + Go,gopher 的方式。
数学
- bayesian - Go 的朴素贝叶斯分类
- blas - BLAS (基本线性代数子程序) 的 Go 实现
- cartconvert - Go 编程语言的制图函数
- choose - 从 N 个项目中生成 M 个项的所有组合
- clp - COIN-OR 线性规划 (CLP) 库的 Go 绑定
- Cvx - 凸优化包,CVXOPT python 包的移植
- decimal - 一个高性能的任意精度十进制浮点算术包
- dice - 骰子滚动库
- evaler - 一个简单的浮点算术表达式求值器
- fixed - 一个定点 (Q32.32 格式) 数学库
- geom - 2D 几何
- gini - SAT 求解器/布尔逻辑工具
- gochipmunk - Chipmunk 物理库的 Go 绑定
- gocomplex - 复数库
- godec - 多精度十进制算术
- gofd - 并发有限域约束求解器。
- go-fftw - FFTW (西部最快傅里叶变换) 的 Go 绑定
- go-fn - 不适合放入“math”包的特殊函数
- gographviz - Graphviz DOT 语言的 Go 解析器
- go-gt - 图论算法
- go-humanize - 将数字格式化为人类可读。
- golibs/xmath - 数学函数集合(主要是均值算法)
- go-lm - Go 中的线性模型。通过 cgo -> BLAS/LAPACK 接口提供 WLS 和带有 t 残差的回归。
- go.mahalanobis - 使用 go.matrix 实现的马氏距离的朴素实现
- gomat - 轻量级快速矩阵和向量数学
- go_matrix_cuda - 基于 CUDA 的 GPU 加速线性代数库
- go.matrix - 线性代数包
- gonum - 科学计算包(线性代数、BLAS、LAPACK、微分、图表、线性规划、统计学等)
- go-symexpr - 作为 AST 的符号数学,支持导数、简化和非线性回归
- gsl - GNU Scientific Library 的绑定
- humanize - 将大数格式化为人类可读的小数
- interval - interval 包处理介于两个可能有界或无界的有序值之间的集合。
- mathutil - mathutil 包提供了补充标准‘math’和‘rand’包的实用程序。
- mt19937_64 - Mersenne Twister int64 随机源
- permutation - permutation 包生成切片索引的排列
- polyclip.go - 2D 多边形布尔运算算法的 Go 实现
- primegen.go - 阿特金筛法素数生成器
- prime - 分段筛和非分段筛的 Go 版本,用于生成素数
- primes - 处理素数的简单功能。
- pso-go - Go 的 PSO(粒子群优化)库。
- rand - 支持 Mersenne twister 的 math/rand 包的 64 位版本。
- roger - RServer 的 Go 客户端,允许从 Go 调用 R 程序。
- sparse - 支持科学计算和机器学习应用的 Go 稀疏矩阵格式,兼容 gonum 矩阵库。
- statistics - GNU GSL 统计功能 (GPLv3)
- stats - 一个包含 Golang 标准库中缺失的常用函数的统计包。
- Tideland golib - 用于统计分析的数值包
- Units - 为一些常见的物理类型实现类型、单位、转换函数和一些数学运算。
- vector - 一个小型向量库。
微服务
- car_registration - 全球汽车注册数据的 API 封装
- go-doudou - 一个基于 gossip 协议和 OpenAPI 3.0 规范的去中心化微服务框架。内置的 go-doudou cli 专注于低代码和快速开发,可以提高您的生产力。
- gokit - Go Kit 微服务框架(以及作者访谈)。
- go-micro - Go Micro 是一个微服务库,提供了构建大规模容错分布式系统的基础构建块。
- kite - RPC 服务器和客户端框架。
其他
- atexit - 简单的 atexit 库
- bíogo - Go 语言的基本生物信息学函数。
- Breaker - Breaker 通过使用断路器原语封装不可靠的服务间接口点,实现优雅的降级模式操作。
- btcrpcclient - 一个支持 Websocket 的比特币 JSON-RPC 客户端。
- cast - Go 中安全简便地将一个类型转换为另一个类型
- CGRates - 设计用于电信运营商领域的计费系统
- cpu - 一个报告处理器拓扑的 Go 包
- cron - 一个用于按照 cron 格式的调度运行任务 (funcs) 的库
- cvt - 轻松安全地将任何值转换为另一种类型
- daemonigo - 一个简单的库,用于将 Go 应用程序守护化。
- dbus-go - D-Bus Go 库
- desktop - 使用默认应用程序打开文件/URI(跨平台)
- devboard - 基于 Simple-Khanban 的看板应用程序
- dioder-api - IKEA dioder LED 灯条的 API
- doublejump - 改进版的 Google jump consistent hash
- dump - 一个转储 Go 变量的实用程序,类似于 PHP 的 var_dump
- elPrep - 一个高性能工具,用于在 DNA 测序流程中准备序列比对/map 文件
- env - 轻松拉取带默认值的环境变量
- epub - libepub 的绑定,用于读取 epub 内容。
- EventBus - 支持 Go 异步兼容的轻量级事件总线。
- faker - 生成假数据,如姓名、文本、地址等。
- fasturl - 使用 Ragel 状态机的高性能 URL 解析库。
- fsnotify - Go 的文件系统通知
- functional - 函数式编程库,包括惰性列表实现和一些常用函数。
- GCSE - Go 代码搜索引擎。 源码
- generate - 在指定路径或环境变量上递归运行 go generate,并支持正则表达式过滤。
- go-amiando - Amiando 事件管理 API 的封装
- go-bit - 一个高效且全面的位集实现,带有实用位函数。
- go-bitops - 32/64 位整数的常用位运算
- go-business-creditcard - 验证/生成信用卡校验和/名称。
- gochem - 计算化学/生物化学库。
- gocsv - CSV 解析和生成库
- go.dbus - D-Bus 的原生 Go 库
- go-ean - 一个最小的实用库,用于验证 EAN-8 和 EAN-13 并计算校验和。
- go-eco - 生态学中使用的函数
- go-erx - 扩展错误报告库
- go-eventsocket - 一个用于FreeSWITCH电话平台的事件socket客户端/服务器库。
- GoFakeIt - 假数据生成器。每种有超过65种不同的变体和示例。
- go-fann - FANN的Go绑定,一个用于人工神经网络的库。
- GoFlow - 一个用于Go的基于流和数据流编程库。
- goga - 一个遗传算法框架。
- gogobject - 基于GObject自省的绑定生成器。
- go-idn - 一个为Go带来IDN支持的项目,功能与libidn兼容。
- GoLCS - 在Go中解决最长公共子序列问题。
- golibs/as - 数据类型转换。
- golife - 命令行下的生命游戏实现。
- go-magic - libmagic的Go封装。
- go-magic - 一个为Go编程语言提供的libmagic简单接口。
- go-metrics - Coda Hale的Metrics库的Go移植。
- gommap - gommap使Go程序能够以非常高效的方式直接使用内存映射文件和设备。
- gomusicbrainz - MusicBrainz WS2客户端库。
- goneuro - NeuroSky设备的Go驱动程序。
- goNI488 - 一个围绕National Instruments NI488.2通用接口总线(GPIB)驱动程序的Go封装。
- go-osx-plist - Go的CoreFoundation Property List支持。
- go-papi - PAPI性能API的Go接口。
- go.pcsclite - pcsc-lite的Go封装。
- Go-PhysicsFS - PhysicsFS存档访问抽象库的Go绑定。
- go.pipeline - 一个模拟Unix管道的库。
- go-pkg-mpd - 一个访问MPD音乐守护进程的库。
- go-pkg-xmlx - 标准Go XML包的扩展。维护一个允许向前/向后浏览的节点树,并提供一些简单的单/多节点搜索功能。
- goplan9 - 与Plan 9交互的库。
- goPromise - Go中类似Scheme的延迟求值。
- gopensky - opensky network live API(空域ADS-B和Mode S数据)的Go客户端。
- go-qrand - random.irb.hr上量子随机比特生成器服务的Go客户端。
- goraphing - 一个从JSON数据文件生成简单图数据结构的工具。
- go-selenium - Go的Selenium WebDriver客户端。
- go-semvar - 语义化版本(参见http:/semver.org)。
- go-serial - 用于串口功能的libserialport的Go绑定(cgo)。
- goST - 一个为Go编写的蒸汽性质(蒸汽表)库。它被设计成XSteam的原生Go等价物。
- go-taskstats - Linux taskstats的Go接口。
- gotenv - 从
.env
文件加载环境变量。 - Gotgo - 一个提供泛型实现的Go预处理器。
- go-translate - Google语言翻译库。
- go-uuid - 通用唯一标识符(UUID)生成器和解析器。
- gouuid - 纯Go实现的UUID v3、v4和v5生成器,兼容RFC4122。
- go-villa - 一些杂项封装和小算法。(切片、优先级队列、路径相关API的封装,一个字符串集合类型)
- go-wkhtmltopdf - wkhtmltopdf的Go绑定和用于HTML转PDF的高级接口。
- Hranoprovod - 命令行卡路里追踪工具。
- lineup - 一个极简的消息队列服务器。
- mitigation - mitigation包提供了防止由bug或漏洞造成的损害的可能性。
- nject - 类型安全的依赖注入。
- nma.go - NotifyMyAndroid的Go客户端。
- notify - 文件系统事件通知库,API与os/signal类似。
- pargo - 一个用于Go并行编程的库。
- passwd - /etc/passwd文件的解析器。
- pool - 一个通用工作池。
- procfile - 一个Procfile解析器。
- Prometheus Instrumentation/Metrics Client - 这是一个用于Go编写的服务器的白盒监控框架。它自动暴露程序生成的指标,供Prometheus时间序列收集和后处理环境使用。
- randat - 开发工具,用于生成随机字节串并将文件编码成代码友好的格式。
- recycler - 一个比sync.Pool更灵活的对象回收系统。为对象提供构造函数和析构函数,并控制空闲列表的长度。
- replaykit - 一个用于重放时间序列数据的库。
- serial - 串口API(纯Go实现)。
- sio - sio包允许你访问旧的串口设备。它是dustin的rs232包的一个go-getable分支和修改版本。
- stats - 监控Go MemStats + 系统状态(如内存、交换空间和CPU),并通过UDP发送到任何你需要记录的地方等。
- symutils - 处理符号链接的各种工具和库。
- toktok - 创建和解析唯一、不易输入错误和出错、人类可读的令牌(token)。
- twitterfetcher - 一个使用只限应用认证方式进行Twitter API请求的工具。
- udis86 - libudis86的Go绑定。
- ugo - 类似underscore.js的Go工具箱。
- Vboxgo - 从Go访问VirtualBox虚拟机,提供类似用户的接口。
- vk - vk.com非官方API封装(vk.com是俄罗斯社交网络)。
- WUID - 一个极快的唯一数字生成器,比UUID快10-135倍。
- Wukong - 一个高度可扩展的全文搜索引擎,用Go编写。
- xdg - XDG基本目录规范和XDG用户目录的Go实现。
- xplor - p9p acme的文件树浏览器。
- yubigo - Yubikey OTP验证和认证API客户端。
音乐
- gmask - Csound 的 Cmask 工具的 Go 适配
- go-csnd6 - Csound6 API 的 Go 绑定
- go-csperfthread - Csound6 API 的 CsoundPerformanceThread 辅助类的 Go 绑定
- go-libshout - libshout的Go绑定。
- gompd - MPD(音乐播放器守护进程)的客户端接口。
- launchpad - Novation Launchpad的Go客户端。
- portmidi - libportmidi的Go绑定。
网络
DNS
- bitz - BitMessage客户端节点和库。
- dingo - 一个支持HTTPS上的Google DNS的Go DNS客户端。
- dns - Go中的客户端和服务器实现。
- dns - Go中的DNS库。
- dnsimple - DNSimple API的接口。
- dnss - DNS安全代理,支持HTTPS和GRPC上的DNS。
- domainerator - 命令行工具,用于将词汇列表和后缀/顶级域名组合成域名,并检查它们是否已注册。
- dyndnscd - 一个可配置的动态DNS客户端。
- GeoDNS - 地理位置感知的权威DNS服务器。
- grong - 一个小的权威DNS名称服务器。
- hostsfile - /etc/hosts文件反向查找 IP => 名称。
- lib/dns - 支持UDP、TCP和HTTPS上DNS的客户端或服务器DNS库。
- mdns - Go的多播DNS库。
- rescached - DNS解析器缓存守护进程。
FTP
- ftp4go - Go的FTP客户端,最初是Python标准FTP客户端库的移植版本。
- ftp - ftp包提供了一个最小的FTP客户端,符合RFC 959的定义。
- ftps - FTPS协议的实现。
- goftp - 一个FTP客户端库。
HTTP
- apiproxy - 带有可配置缓存超时的HTTP/REST API代理。
- boom - HTTP(s)基准测试工具,可替代Apache Benchmark。
- Ddosify - 高性能负载测试工具,用Golang编写。
- eventsource - net/http服务器的服务器发送事件(Server-sent events)实现。
- fasthttp - Go的快速HTTP包。
- gbench - 受Apache Benchmark和Siege启发的HTTP(s)负载测试和基准测试工具。
- gobench - HTTP/HTTPS负载测试和基准测试工具。
- go-curl - 支持Go函数回调的libcurl绑定。
- goproxy - 一个可编程的HTTP代理。
- gostax - Go中的XML流式API(StAX)。
- handlers - 一系列实用的HTTP中间件。
- HTTPLab - HTTPLabs允许您检查HTTP请求并伪造响应。
- httpmock - 轻松模拟来自外部资源的HTTP响应。
- httptail - 将stdout/stderr推送到http分块的工具。
- sling - 一个用于创建和发送API请求的Go HTTP客户端库。
- stress - ApacheBench(ab)的替代品,支持事务性请求,支持命令行和包引用的HTTP压力测试工具。
IMAP
即时通讯
- gobir - 可扩展的IRC机器人,支持频道管理、在线状态查看和Go文档查询。
- goexmpp - XMPP客户端实现。
- goirc - 基于事件的有状态IRC客户端框架。
- go-irc - 简单的IRC客户端库。
- gorobot - 一个模块化的IRC机器人。
- go-xmpp - XMPP客户端库。
- hanu - 编写Slack机器人的框架。
- ircflu - 支持命令、脚本和web-hook的IRC机器人。
- irc.go - Go IRC机器人框架。
mellium.im/xmpp
一个低级别的XMPP客户端和服务器库,专注于良好的文档和清晰、易用的API。- sirius - [链接已失效] 用Go编写的一个快速且超轻量级的聊天服务器。
- xmpp-client - 一个支持OTR(离线记录)的XMPP客户端。
NNTP
- go-nntp - Go的NNTP客户端和服务器库。
Protocol Buffers
- gogoprotobuf - Protocol Buffers的另一个Go实现,带有扩展和代码生成插件。
- golang_protobuf_extensions - 支持流式消息编码和解码的Protocol Buffer扩展。
- goprotobuf - Google Protocol Buffers的Go实现。
- protorpc - Go和C++的Google Protocol Buffers RPC。
rsync
- replican-sync - rsync算法在Go中的实现。
- Rsync - rsync算法作为Go库。
Telnet
- telnet - telnet包提供了Go编程语言的TELNET和TELNETS客户端和服务器实现,风格类似于Go标准库中的“net/http”库,包括支持“中间件”;TELNETS是安全的TELNET,通过安全的TLS(或SSL)连接使用TELNET协议。
- telnet - 与Telnet连接交互的简单接口。
- telnets - TELNETS(安全TELNET)协议的客户端。
VNC
- glibvnc - 使用CGO对libvnc库进行的Go封装。
Websockets
- Gorilla WebSocket - WebSocket协议实现。
- lib/websocket - 用于编写WebSocket客户端和服务器的库(使用epoll)。
- websocketd - 将STDIN/STDOUT程序转换为WebSocket服务的HTTP服务器。也处理HTML和CGI。
- ws-cli - WebSocket命令行客户端。
- wst - 一个非常简单的WebSocket测试工具。
ZeroMQ
- goczmq - CZMQv3接口的封装 - 博客文章。
- gozmq - 0mq (zeromq/zmq)的Go绑定。
- zmq2 - ZeroMQ (zmq, 0MQ)版本2的Go接口。
- zmq3 - ZeroMQ (zmq, 0MQ)版本3的Go接口。
- zmq4 - ZeroMQ (zmq, 0MQ)版本4的Go接口。
其他网络
- betwixt - Betwixt实现了OMA轻量级M2M (LWM2M)协议,用于设备管理和监控。
- canopus - CoAP客户端/服务器实现(RFC 7252)。
- chunkedreader - 一个轻量级库,用于从TCP流中读取连续的固定大小消息。
- circle - libcircle分布式队列API的Go接口。
- createsend-go - Campaign Monitor(电子邮件营销服务)的API客户端。
- cwmp-proxy - CWMP反向代理。
- dmrgo - 用于Hadoop Streaming map/reduce的库。
- doozerconfig - 一个Go包,用于在Doozer中管理JSON编码的配置。
- doozerd - 一个一致性分布式数据存储。
- endless Go服务器的零停机重启(可替代http.ListenAndServe/TLS)。
- gearman-go - Gearman API的Go原生实现。
- Glue - 健壮的Go和Javascript Socket库(Socket.io的替代品)。
- goagain - Go中的零停机重启。
- Go Ajax - Go Ajax是一个JSON-RPC实现,旨在创建由AJAX驱动的网站。
- gobeanstalk - Go Beanstalkd客户端库。
- go-camo - Go http图像代理(camo克隆),用于通过SSL路由图像。
- go-dbus - 连接到D-bus消息系统的库。
- go-diameter - Diameter协议栈和基础协议(RFC 6733)。
- go-flowrate - 数据传输速率控制(监控和限制)。
- gogammu - 用于发送和接收短信的库。
- go-icap - ICAP(互联网内容适应协议)服务器库。
- Gollum - 一个n:m多路复用器,从不同源收集消息并广播到一组目的地。
- go-nat-pmp - 用于Apple和开源路由器中使用的NAT-PMP协议的客户端。
- gonetbench - 简单的TCP基准测试工具。
- gonetcheck - 检查通用互联网访问的包。
- goodhosts - Go中简单的hosts文件(/etc/hosts)管理。
- gopacket - 数据包编码/解码,支持pcap/pfring/afpacket,TCP组装等等!
- gopcap - libpcap的简单封装。
- goq - 一个用Go编写的持久化消息队列。
- goradius - 一个用Go编写的Radius客户端。
- go-rpcgen - 用于net/rpc和AppEngine的ProtoBuf RPC绑定生成器。
- gorpc - 为高负载优化的RPC。
- GoRTP - Go的RTP / RTCP协议栈实现。
- GoSIPs - Go中的SIP(会话发起协议)协议栈。
- go-smpp - SMPP 3.4协议实现。
- gosndfile - libsndfile的Go绑定。
- gosnmp - 一个用GoLang编写的SNMP库。
- go-socket.io - 一个用Go编写的Socket.IO后端实现。
- gosocks - Go中的SOCKS(SOCKS4, SOCKS4A和SOCKS5)代理客户端库。
- go-sslterminator - SSL终结代理。
- go-statsd-client - Go statsd客户端库。
- Grumble - Mumble (VoIP) 服务器实现。
- handlersocket-go - 连接到InnoDB表HandlerSocket接口的Go原生库。
- HomeControl - Apple HomeKit Accessory Protocol (HAP) 的实现。
- Hprose - Hprose是一个高性能远程对象服务引擎。
- httpfstream - HTTP资源的流式追加和跟踪(使用WebSockets)。
- humanize-bytes - 命令行工具,用于将“MiB”等单位转换为原始数字,反之亦然。
- ipaddress - 便捷的IP地址函数:IP转整数,整数转IP,以及IPNet广播地址。
- iris-go - Iris去中心化消息框架的Go绑定。
- iris - 用于后端去中心化的点对点消息传递。
- kafka.go - Kafka消息系统的生产者和消费者。
- lcvpn - 去中心化VPN实现。
- ldap - Go编程语言的基本LDAP v3功能。
- mbxchan - 使用标准Go channel和远程过程调用实现分布式Go应用之间轻松通信。
- mqtt - Go中的MQTT协议栈。
- nagiosplugin - 用于编写Nagios/监控插件的包。
- NATS - Go的NATS分布式消息系统客户端。
- netsnail - 一个低带宽模拟器。
- netstat-nat - 在Linux系统上显示NAT条目。
- netutils - 将TCP Socket转换为channel的简单接口。
- norm - 使用组播和单播socket的可靠UDP。
- npipe - Windows命名管道的纯Go封装。
- opendap - Openldap的Go封装。
- pusher-http-go - 与Pusher实时API交互的Go库。
- QRP - QRP是一个简单的基于数据包的RPC协议,旨在作为Go rpc的简单替代品,可在UDP上运行。
- remotize - 一个remotize包和命令,帮助远程化方法,而无需更改其RPC签名。
- Resgate - 一个用于NATS的实时+REST API网关,用于创建带有实时数据的Web API。
- rs232 - 为仍然拥有调制解调器(或arduinos)的人提供的串口接口。
- rss - RSS解析库。
- seamless - 带有HTTP管理API的反向TCP代理。
- sftp - SSH文件传输协议v3,定义于draft-ietf-secsh-filexfer-02.txt。
- shell2http - 通过简单的http服务器执行shell命令。
- sockjs-go - 实现SockJS-client浏览器库的服务端对应部分。
- SOCKS5 Server - 支持访问控制列表的可扩展SOCKS5服务器。
- spark - 紧急Web服务器(用于静态文件)。
- spdy - SPDY库,集成到net/http中,目前仅支持服务器端。
- statsd-go - Statsd的Go实现,从gographite分支而来,gographite会提交到Ganglia。
- stompngo_examples - stompngo的示例。
- stompngo - 一个符合Stomp 1.1规范的客户端。
- tcp_fallback - 一个实现简单回退机制的TCP代理。
- tcpmeter - 一个TCP吞吐量测量工具
- toxiproxy - 用于模拟网络条件的框架。
- traceroute - 一个traceroute实现
- traefik - 现代化的Go语言反向代理
- Uniqush - 一个免费开源软件,为移动设备上的应用提供统一的服务端推送服务。
- uritemplates - URI模板(RFC 6570)的级别4实现
- VDED - Vector Delta Engine Daemon - 跟踪不断增加的值的增量(Go语言编写)
- zero-downtime-daemon - 适用于各种TCP、HTTP、FCGI服务的可配置零停机守护程序(热更新)框架
- zeroupgrade - 以零停机方式升级网络服务器
操作系统接口
- Go FUSE file system library - 基于Russ Cox实现的内核-用户空间通信协议的从头实现。
- Go-fuse - 用于在Go中编写FUSE文件系统的库
- go-nbd - 用于在Go中为Linux编写块设备的库。
- go-osx-xattr - Package xattr 包装了 OS X 函数,用于操作文件、目录和符号链接的扩展属性。
- inspect/os - 用于操作系统测量(Linux/MacOSX)的指标库
- service - Service 将在 Windows/Linux 和 OSX 上安装/卸载、启动/停止并运行程序作为服务(守护程序)。
选项类型
- opt - Package opt 为 Go 编程语言实现了一个可选类型。在其他编程语言中,可选类型可能被称为:option type 或 maybe type。
其他随机玩具、实验和示例代码
- goconc - Go语言中有用的并发习语和函数的集合,已编译
- go-crazy - 一个用于Go语言的实验性源码到源码编译器
- go-gtk-demo - 演示如何在Go中使用GTK+。
- go-hashmap - 一个纯Go实现的哈希表,作为Go性能的实验
- golang-examples - 一堆Go语言示例
- GolangSortingVisualization - Go语言中各种排序算法的可视化
- golibs - 小型Go包的集合(也是各种CI和覆盖率服务的测试仓库)
- goplay - Go语言中的一堆随机小程序
- lifegame-on-golang - Go语言实现的生命游戏
- linear - 线性代数的一些实践
- pl0 - PL/0 前端、编译器和虚拟机。.
- project euler in go - Project Euler 问题的Go语言解法
- shadergo - 使用Go语言进行着色器测试
- travisci-golang-example - Go语言的Travis-CI示例
P2P 和文件共享
- DHT - Taipei-Torrent使用的Kademlia DHT节点,兼容BitTorrent
- DHT - BitTorrent DHT协议和DHT爬虫。
- ed2kcrawler - eDonkey2000链接爬虫
- gop2p - 一个用于学习Go的简单p2p应用
- go-p2p - 用于区块链等的P2P模块
- GoTella - Gnutella协议的Go语言实现
- Rain - BitTorrent客户端和库
- Taipei-Torrent - 一个BitTorrent客户端
- Tendermint - P2P拜占庭容错共识和区块链堆栈
- wgo - 一个基于Taipei-Torrent和gobit代码的简单BitTorrent客户端
编程
- go-clang - libclang C-API的cgo绑定
- godeferred - jsdeferred的移植: http://cho45.stfuawsc.com/jsdeferred/
- go-galib - 一个遗传算法库
- go-intset - 一个处理有界整数集合的库,包含多种替代实现
- go-parse - 一个类似Parsec的解析库
- go-slices - 用于在Go中操作切片的辅助函数,就像官方的“strings”包提供的那样
- sh - 一个shell/bash解析器和格式化工具
- Shuffle - Go语言实现的Fisher Yates洗牌算法(或Knuth洗牌算法)。
资源嵌入
- fileb0x - 一个用于在Go中嵌入文件的简单工具,侧重于“定制”和易用性。
- go-bindata - 将任何文件转换为可管理的Go源代码的包。
- go-resources - 使用Go进行非花哨的资源嵌入。
- go.rice - go.rice 是一个Go包,使得处理html,js,css,images和模板等资源变得非常容易。
- implant - implant 允许从一系列目录(递归地)嵌入静态资源。
- statics - 将静态资源嵌入到go文件中,用于单二进制编译 + 支持http.FileSystem + 符号链接。
RPC
扫描器和解析器生成器
- ebnf2y - 将EBNF文法转换为yacc兼容的.y骨架文件的工具。
- flexgo - 一个可以生成Go代码的flex版本。
- fsm - FSM (NFA, DFA) 工具集。
- gocc - Go语言编译器编译器
- golex - 类似Lex/flex的快速(DFA)扫描器生成器。
- gopp - Go语言解析器生成器
- goyacc - Goyacc 是一个生成Go语言解析器的yacc版本。
- lexmachine - Golang的词法分析框架
- Ragel - 状态机编译器
- y - Package y 将 .y (yacc) 源文件转换为适用于解析器生成器的数据。
- yy - yacc到yacc编译器。
安全性
- acme - ACME证书获取工具
- acra - SQL数据库保护套件:强选择性加密、SQL注入预防、入侵检测系统
- casbin - 一个支持MAC、RBAC、ABAC等访问控制模型的授权库
- docker-slim - 容器安全与优化
- gryffin - Yahoo! 出品的大规模安全扫描器
- hyperfox - 一个用于代理和记录局域网内HTTP和HTTPs通信的安全工具
- lego - Let’s Encrypt客户端和ACME库
- webseclab - 一组Web安全测试用例示例和一个构建新测试用例的工具包
仿真建模
- godes - 用于构建离散事件仿真模型的库
排序
- bubble-sort - 冒泡排序算法的最小实现
- cocktail-shaker-sort - 鸡尾酒排序算法的最小实现
- funnelsort - 惰性漏斗排序——一种缓存无关排序算法
- Sortutil - Go语言中的嵌套、不区分大小写和反向排序。
- sortutil - Go标准库“sort”的补充工具集
- tarjan - 基于Tarjan算法的图循环检测函数
- timsort - 快速、稳定的排序,使用外部比较器或sort.Interface
源代码管理
- Gitfile - 用于安装git仓库的轻量级包管理器
- go-deps - 分析并递归安装Go包依赖项(库功能类似于
go get
) - go-diff - 一个Go语言的diff命令,显示两个go源文件的语义差异。
- gogitver - 将git标签(版本字符串)嵌入到你的应用程序中
- go-many-git - 管理和运行跨多个git仓库的命令
- go-pkgs - 在所有GOPATH树中查找所有匹配的包(库功能类似于
go list all
) - go-vcs - 克隆VCS仓库并检出指定版本(支持git和hg)
- go-vcsurl - 宽松的VCS仓库URL解析库
- hggofmt - 一个Mercurial/hg扩展,带有一个hook,用于
- nut - Nut 是一个管理带版本Go源代码包(称为“nuts”)的工具。
- vcstool - VCS抽象工具
存储
- libStorage - 一个开源、平台无关的存储供应和编排框架、模型和API
- Minio - 兼容Amazon S3 API的对象存储
- OpenEBS - 面向容器的容器化开源块存储,紧密集成到K8S和其他环境中,基于分布式块存储和存储控制的容器化
- storage - 面向应用的Golang统一存储层
字符串和文本
- allot - 用于CLI工具和机器人的占位符和通配符文本解析
- asciidoctor-go - 用于解析和转换asciidoc标记语言的原生Go模块。
- awk - Go语言中简单的AWK风格文本处理
- binarydist - 二进制差分和补丁
- Black Friday - 一个markdown处理器
- codename-generator - 一个用于命名软件版本的代号生成器
- columnize - 将切片或数组格式化为对齐的列
- csvplus - 扩展了标准Go encoding/csv包,提供了流畅的接口、惰性流操作、索引和连接功能。
- csvutil - 一个强大的CSV读写库。
- dgohash - 字符串哈希函数集合,包括Murmur3等
- douceur - 一个简单的Go语言CSS解析器和内联工具。
- dsv - 用于处理分隔符分隔值(DSV)的库。
- flux - Golang中的流畅正则表达式
- frontmatter - 用于检测和解码各种内容前置元数据格式的Go库。
- genex - 正则表达式扩展
- gettext-go - GNU gettext支持,纯Go语言编写
- gettext - Golang对gettext的绑定;功能完整,cgo实现
- goagrep - 使用预计算的快速模糊字符串匹配
- go-colortext - 改变控制台中文本和背景颜色,在Windows和其他系统上均可工作。
- go-guess - libguess的Go语言封装
- goini - 一个解析INI文件的Go库
- golorem - lorem ipsum 生成器
- go-migemo - Go语言的migemo扩展(日语增量文本搜索)
- go-ngram N-gram索引,用于Go
- goregen - 一个用于从正则表达式生成随机字符串的Go库。
- goskirt - Go语言的Upskirt markdown库绑定
- gosphinx - Sphinx独立全文搜索引擎的Go客户端接口
- govalidator - 字符串验证器和清洗器包
- goKMP - 在Go中使用Knuth Morris Pratt算法进行字符串匹配
- hangul - 操作韩文字符的便捷工具
- html2text - Golang HTML转文本转换库
- intern - 将字符串映射到符号以便进行常数时间比较
- kasia.go - 用于HTML和其他文本文档的模板系统
- kview - kasia.go模板的简单封装。它有助于模块化网站内容
- liquid - Shopify Liquid模板的完整实现
- logparse - 大多数常见日志格式的解析器
- NTemplate - 嵌套模板
- parse - 使用反射定义文法的PEG解析器
- peg - 解析表达式文法解析器
- pigeon - 用于Go的解析表达式文法(PEG)解析器生成器
- plural - 用于格式化可数和连续值范围的简单复数处理。
- polyglot - Go语言的字符串翻译工具集
- pretty - Go值的漂亮打印
- raymond - Go语言中完整的handlebars实现。
- rubex - 一个支持Ruby正则表达式语法的简单正则表达式库。它比Regexp更快。
- sanitize - Package sanitize 提供了用于清洗html和文本的函数。
- scanner - 一个解析基本类型的文本扫描器,类似于Java的
- segment - Norvig递归分词算法的实现
- sprig - Go模板的模板函数。
- strftime - strftime 实现
- strit - Package strit 引入了一种新的字符串迭代器类型,以及许多迭代器构造函数、包装器和组合器。
- strogonoff - 使用Go进行隐写术
- strutil - Golang用于计算字符串相似度和提供其他字符串工具函数的指标。
- strutil - Package strutil 收集了标准字符串包的补充工具。
- text - 文本段落换行和格式化
- Tideland golib - 用于统计分析的Stringex包
- TySug - 考虑键盘布局的替代建议。
- useragent - 用户代理字符串解析器
- xurls - 从文本中提取URL
测试
- assert - 用于go test的断言。
- assert - 便捷的断言包。
- assert - 与原生go testing一起使用的基本断言库,提供构建自定义断言的积木
- assert - 类似JUnit的断言,带有出色的错误消息
- biff - 分岔测试框架,兼容BDD。
- charlatan - 用于为测试生成伪造接口实现的工具。
code.soquee.net/testlog
一个log.Logger
,它代理到 testing.T 上的 Log 函数,这样日志只在失败的测试中显示,并分组在测试下。- conex - 用于集成测试的Docker容器
- counterfeiter - 用于生成自包含和类型安全的模拟对象的工具。
- downtest - 自动为Go包的所有已知下游消费者运行测试。
- ginkgo - Go语言的BDD测试框架。
- go2xunit - 将“go test -v”输出转换为xunit XML输出
- go-assert - Go语言测试工具集。
- goautotest - 代码更改时自动运行单元测试
- goblin - 极简且美观的Go测试框架
- Gocheck - 功能丰富的测试框架,包含套件、夹具、断言、良好的错误报告等
- GoConvey - 基于浏览器的报告,使用
go test
,支持传统的Go测试,提供干净的DSL - gocov - 代码覆盖率测试/分析工具
- gomega - Ginkgo偏好的匹配器库。
- gomock - 一个Go语言的模拟框架。
- GoSpec - 一个BDD框架
- gospecify - 另一个BDD框架
- go-stat - Go语言的高性能插桩/性能分析工具
- go-tap - Go语言实现的TAP (Test Anything Protocol) 解析器
- go-testdeep - 极其灵活的深度比较,扩展了testing包
- go-test-report - 捕获go test输出并解析成单个自包含的HTML文件。
- gotestsum - 一个可定制和彩色输出的测试运行器
- gotest.tools - 一组用于编写可读测试的包
- gounit - Go语言的xunit
- GSpec - 表达力强、可靠、并发且可扩展的Go测试框架,使组织和验证软件心智模型变得高效。
- Gremlins - Go语言的变异测试工具。
- httpexpect - 简洁、声明式、易于使用的端到端HTTP和REST API测试
- make.go.mock - 为Go接口和函数生成类型安全的模拟对象。
- mspec - BDD框架,让你首先使用自然的BDD语言对代码进行Stub和Spec。
- muxy - 模拟真实世界分布式系统故障。
- Nitro - 一个快速简单的Go语言性能分析器
- Pegomock - 一个基于golang/mock的模拟框架,但使用与Mockito密切相关的DSL。
- rapid - 基于属性的测试库,集成了缩减功能
- terst - 一个简洁、易于使用的Go语言测试库
- test2doc - 从单元测试为你的 Go 单元生成文档。
- testfixtures - 类似Rails的测试fixture,用于测试数据库驱动的应用。
- testflight - Go语言中无痛的http测试
- Testify - 一组包,提供许多工具来证明你的代码将按预期行为。
- ut - 没有魔法的超棒模拟对象。
源码转换器
验证
- validator - Go结构体和字段验证,包括跨字段、跨结构体、Map、Slice和Array深入验证
- validation - 简单的独立结构体/键值验证
版本控制
- gitea - Git加一杯茶,无痛的自托管git服务
- git (in go) - Go语言实现的最小可工作git客户端
- gogs - Go语言实现的自托管Git服务器
- semver - 语义化版本(SemVer)库
虚拟机和语言
- agora - 一个使用Go构建的动态类型、垃圾回收、可嵌入的编程语言
- anko - 用golang编写的可脚本化解释器
- evalfilter - 用于过滤对象的嵌入式评估引擎。
- expr - 带静态类型的表达式评估器
- forego - Forth虚拟机
- Gelo - 可扩展、可嵌入的解释器
- Gentee - 可嵌入的脚本编程语言
- GoAwk - golang实现的awk。
- GoBASIC - 用golang编写的可嵌入BASIC解释器。
- GoEmPHP - 这个包用于将PHP嵌入到Go中
- goenv - 创建一个独立环境,用于安装Go包、二进制文件,甚至C库。与Python的virtualenv非常相似。
- GoForth - 一个简单的Forth解析器
- Goja - 用Go编写的ECMAScript 5.1(+)实现(带字节码编译器的otto分支)
- golem - 一个通用、解释型的脚本语言。
- golemon - Lemon解析器生成器的移植
- GoLightly - 一个灵活轻量级的虚拟机,带有运行时可配置的指令集
- goll1e - Go编程语言的LL(1)解析器生成器。
- Golog - Go语言实现的Prolog解释器
- golua - GoLua的一个分支,适用于当前Go版本
- go-lua - Shopify的lua解释器
- gomruby - Go语言的mruby (mini Ruby) 绑定
- gopher-lua - 用Go编写的Lua 5.1虚拟机和编译器
- go-php - Go语言的PHP绑定
- go-python - CPython C-API的go绑定
- gotcl - Go语言实现的Tcl解释器
- go-v8 - Go语言的V8 JavaScript引擎绑定
- go.vm - 解释字节码的简单虚拟机。
- Hivemind - 基于Procfile应用的进程管理器
- LispEx - Lisp的一个方言,扩展支持并发编程,用Go语言编写。
- Minima - 用Go语言实现的语言
- ngaro - 运行retroForth镜像的ngaro虚拟机
- otto - 用原生Go编写的JavaScript解析器和解释器
- Overmind - 基于Procfile应用和tmux的进程管理器
- py4go - Go语言的Python 3绑定
- RubyGoLightly - TinyRb到Go的实验性移植
- Scriggo - 一个Go解释器和一个使用Go作为脚本语言的模板引擎
- v8 - Go语言的V8 JavaScript引擎绑定(至少支持到V8 5.8.244版本)
- Yaegi - Go语言实现的完整Go解释器
Web 应用程序
- Caddy - 一个快速、强大、通用的HTTP/2 Web服务器,易于使用
- Dataflowkit - Web抓取服务,将网站转换为结构化数据。
- Digestw - 一个Web应用 - Twitter时间线摘要
- fabio - 一个快速的零配置负载均衡HTTP路由器,用于微服务。
- Filestash - 一个用于SFTP、S3、FTP、WebDAV、Git、Minio、LDAP、Caldav、Carddav、Mysql、Backblaze等的Web客户端。
- fourohfourfound - 一个回退HTTP服务器,可以使用运行时可配置的重定向来重定向请求
- Fragmenta - 一个用Go构建的CMS
- freegeoip - IP地理位置Web服务(freegeoip.net的Web服务器)
- Freyr - 用于存储和提供植物环境传感器读数的服务器。将Golang API与ReactJS Web应用集成;使用Docker进行测试/部署。
- goals-calendar - Go语言实现的基于Web的Seinfeld日历
- goblog - 一个静态博客引擎
- gocrawl - 一个礼貌、轻量且并发的Web爬虫。
- goflash - Go语言实现的Flash播放器
- gogallery - 一个简单的Web服务器,重点是方便浏览图片
- gojekyll - Jekyll静态网站生成器的golang克隆
- goof - 一个简单的http服务器,用于通过http交换文件(上传/下载)
- gopages - 一个类似php的Web框架,允许在网页中嵌入Go代码
- go_spider - 一个灵活、模块化和并发的Web爬虫框架。
- GoURLShortener - http://is.gd/ URL缩短服务的Frountend
- gowall - 一个网站和用户系统
- grabbit - 基于RabbitMQ的轻量级事务消息总线
- httpfolder - 一个支持基本认证的http服务器,用于通过http交换文件(上传/下载)
- Hugo - 一个使用 Go 实现的快速灵活的静态网站生成器
- Já Vai Tarde - Twitter 取关监控
- kurz.go - 一个基于 web.go 和 redis 的 URL 缩短器
- Monsti - 资源友好的平面文件 CMS,适用于个人和小型企业网站。
- now.go - 一个简单的基于 HTTP 的待办事项队列。
- Peach - 一个用于多语言、实时同步和可搜索文档的 Web 服务器。
- Presento - 最简单的跨平台演示文稿远程控制
- rabbitmq-http - RabbitMQ 的 REST API
- Rickover - 基于 Postgres,带有 HTTP API 的作业队列
- serve-files - 标准 net/http 服务器的远未来和 gzip 包装器。
- sf_server - 一个微型文件发送服务器和客户端
- SuperSaaS API Client - supersaas.com 调度/预订/预约 API 的 HTTP 客户端库
- Tideland golib - 用于处理 REST 请求的 Web 包
- Vantaa - 一个使用 Go、Neo4j 和 Polymer 编写的模块化博客 API 引擎。
- websiteskeleton - 简单的 net/http 网站骨架
- webtf - 使用 HTML5 对 Twitter 时间线进行图形可视化的 Web 应用
- Wikifeat - 使用 CouchDB 编写的可扩展维基系统(Golang 实现)
- jweb - 一个受 Symfony(https://symfony.ac.cn/) 启发的框架,使用 Go 编写
Web 库
认证
- authcookie - authcookie 包实现了签名认证 Cookie 的创建和验证。
code.soquee.net/otp
一个使用 HOTP (RFC-4226) 和 TOTP (RFC-6238) 生成一次性密码的库。包括不太常用的配置文件和用于灵活时间窗口的自定义时间函数。- dgoogauth - Google 一次性密码 Authenticator 库的 Go 移植版
- goauth - 一个用于基于 HTTP 或 HTTPS 的基于头的 OAuth 库。
- GOAuth - OAuth 消费者
- goha - Go http 客户端的基本和摘要 HTTP 认证
- go-http-auth - HTTP Basic 和 HTTP Digest 认证
- Go-OAuth - OAuth 1.0 客户端
- go-otp - go-otp 包实现了一次性密码生成器,用于 RSA Token 等双因素认证系统。目前支持 HOTP (RFC-4226)、TOTP (RFC-6238) 和 Base32 编码 (RFC-3548),兼容 Google Authenticator
- goth - goth 包提供了一种简单、干净、惯用的方式,用于为 Go Web 应用程序编写认证包
- hero - OAuth 服务器实现 - 使用 Go 成为 OAuth 提供者
- httpauth-go - httpauth 包提供了支持 HTTP 认证策略的工具。提供了基本认证方案和摘要认证方案的支持。
- httpauth - 基于 HTTP 会话 (cookie) 的认证和授权
- oauth1a - OAuth 1.0 客户端库
- OAuth Consumer - OAuth 1.0 消费者实现
- otp - 带命令行替代 Google Authenticator 的 HOTP 和 TOTP 库
- securecookie - 编码和解码安全 Cookie
- totp - 基于时间的一次性密码算法,在 RFC 6238 中指定,可与 Google Authenticator 配合使用
- fosite - Go 的可扩展安全优先的 OAuth 2.0 和 OpenID Connect SDK。
- oauth2 - Go 编程语言的 OAuth 2.0 服务器库。
- gin-oauth2 - 为希望使用 OAuth2 的 Gin 框架用户提供的中间件
DOM 处理
- Cascadia - CSS 选择器库
- GoQuery - 类似 jQuery 的 DOM 操作库,使用 Go 的实验性 HTML 包。
- goq - 基于 GoQuery 的类似 jQuery 的声明式结构体标签抓取和解组。
- html-query - 一种流畅且函数式的方法来查询 HTML。
- HTML Transform - 一个基于 CSS 选择器的 HTML 抓取和转换库
框架和工具集
- aah - 一个可伸缩、高性能、快速开发的 Go Web 框架。
- Aero - Go 的快速安全 Web 服务器。
- Air - 一个理想的 Go RESTful Web 框架。
- alien - 一个轻量级快速的 http 路由器
- app.go - 用于 Google App Engine 的 Web 框架
- arasu - 一个使用 Go 和 Dart 编写的闪电般快速的 Web 框架
- Beego - Beego 是一个可伸缩、非阻塞 Web 框架的开源版本。
- browserspeak - 生成 HTML 模板、CSS 或 SVG,无需编写
<
或>
- eudore - Eudore 是 Go 轻量级 Web 框架的核心。
- falcore - 模块化 HTTP 服务器框架
- fcgi_client - 支持 fcgi 参数的 Go fastcgi 客户端
- Flamingo Framework - 用于构建可插拔的生产就绪 Web 项目的框架。
- florest - Go 中的高性能基于工作流的 REST API 框架
- forgery - 一个模仿了出色的 Node.js Web 框架 Express 的克隆项目。
- Gin Web Framework - 类似 Martini 的 API 和 httprouter 赋予其良好的性能。
- Goal - 一个用于 Go 语言高生产力 Web 开发的工具集,围绕代码生成概念构建。
- Go-Blog - 使用 Go 编写的博客框架
- go-fastweb - 目标是成为一个简单、小型、干净的 Go MVC 框架
- goku - 一个 Go 的 Web MVC 框架,非常类似于 ASP.NET MVC。
- Golanger - Golanger Web 框架是一个轻量级框架,用于使用 Go 编写 Web 应用程序。
- Goldorak.Go - 一个使用 mustache.go、web.go 和 Go-Redis 构建的迷你 Web 框架
- go-restful - 用于构建 REST 风格 Web 服务的精简包
- GoRest - 一个基于广泛配置(标签)的 RESTful 风格 Web 服务框架。
- go-rest - 一个小型且邪恶的 Go REST 框架
- gorilla - Gorilla Web 工具集
- GoSrv - 一个 Go HTTP 服务器,提供简单的命令行功能、配置加载、请求日志记录、优雅连接关闭和守护进程化。
- go-start - 一个 Go 的高层级 Web 框架
- go-urlshortener - Google urlshorten API 的接口
- goweb - Go 的轻量级 RESTful Web 框架,提供 Ruby on Rails 风格的路由
- go-webproject - 模块化 Web 应用程序框架和应用服务器
- Gowut - Gowut 是一个全功能、易用、平台独立的 Web UI 工具集,使用纯 Go 编写。
- Goyave - 一个优雅、全功能的 Web 应用程序框架
- gramework - 真正最快的 Go Web 框架。经过实战检验,是 Web 应用的高效基线。
- httpcoala - 用于请求合并的库 - 对于反向代理很方便。
- HttpRouter - 一个高性能、可扩展的 HTTP 请求路由器
- limiter - Go 的简单速率限制中间件
- Macaron - Go 中的模块化 Web 框架
- mango - Mango 是一个 Go 模块化 Web 应用程序框架,灵感来自 Rack 和 PEP333。
- Martini 已弃用 - Martini 是一个流行的、轻量级、可扩展的包,用于使用 Go 编写模块化 Web 应用/服务
- Negroni - Go 的惯用中间件
- restclient - 用于与 RESTful API 交互的客户端库。
- resty - 受 Ruby rest-client 启发的 REST 客户端库。
- Revel - 借鉴 Play! Framework 的高生产力 Web 框架
- Ringo - 受 Rails、Gin 启发的轻量级 MVC Web 框架。
- sawsij - 提供一个小型、有主见的 Web 框架。
- Tango - Go 的微内核和可插拔 Web 框架
- Tiger Tonic - 一个受 Dropwizard 启发的用于构建 JSON Web 服务的框架
- trinity - MVC 框架
- uAdmin - 带后端 GUI 的 Web 框架,类似于 Django。
- Utron - MVC 框架
- Violetear - HTTP 路由器
- web.go - 一个编写 Web 应用的简单框架
- wfdr - 专为 Go 设计并使用 Go 编写的简单 Web 框架。也可与其他语言一起使用,但效果不佳。
- xweb - 一个 Go 的 Web 框架。类似于 Java 的 Struts。
HTML 表单
- form - 用于任意数据(兼容 encoding 包)的完整双向 HTML 表单编码器和解码器 (x-www-form-urlencoded)
- gforms - Go 的 HTML 表单
- Go-FORM-it - Go 库,用于轻松创建高度可定制的表单并进行模板渲染。
- GoForms - 表单数据验证、清理和错误报告 - 类似于 django.forms
- htmlfiller - 使用默认值和错误填充 HTML 表单,类似于 Ian Bicking 的 Python htmlfill
- MonstiForm - HTML 表单生成器和验证器库
- revel-csrf - Revel 框架的跨站请求伪造 (CSRF) 攻击防护
- xsrftoken - 一个用于生成和验证防止 XSRF 攻击的 Token 的包
公共 API 包装器
- adn - App.net API 的接口
- anaconda - Twitter 1.1 API 的客户端库
- cloudcomb-go-sdk - CloudComb 的 Go 客户端库
- ddg - DuckDuckGo API 接口
- facebook - 最新的 Facebook Graph API 客户端。方便且灵活
- filepicker-go - Filepicker REST API 的 Go 库
- firebase - Firebase REST API 的客户端库
- gh - GitHub Webhooks API 的可脚本化服务器和 net/http 中间件
- github - 用于访问 GitHub REST API v3 的 Go 库
- githubql - 用于访问 GitHub GraphQL API v4 的 Go 库
- gobo - 新浪微博的客户端库
- gocaptcha - gocaptcha 提供了在 Go 中轻松访问 reCaptcha API 的功能
- go-dealmap - 用于访问 TheDealMap API 的 Go 库
- go-dropbox - Dropbox 的 API 库
- go-flickr - Flickr API 的包装器
- go-get-youtube - 一个简单的库+客户端,用于抓取 Youtube 视频的元数据并下载视频
- go-gravatar - Gravatar API 的包装器
- go-hummingbird - 用于访问 Hummingbird.me API 的 Go 库
- go-libGeoIP - Maxmind 的 Go Lib GeoIP API
- gominatim - 用于访问 nominatim 地理编码服务的 Go 库
- gomojo - Instamojo API 包装器
- gomwapi - 在 Golang 中访问 Mediawiki 内容,例如 Wikipedia、Wiktionary
- go-myanimelist - 用于访问 MyAnimeList API 的 Go 库
- googtrans - Google Translate API v2 的非官方 Go 绑定
- go-recaptcha - 在 Go 中处理 reCaptcha 表单提交
- gorecurly - 一个用于 Recurly API 的客户端应用
- go-salesforce - Salesforce REST API 的包装器
- go.strava - Strava V3 API 的官方客户端库
- go.stripe - 一个使用 Stripe API 进行 Go 信用卡处理的简单库
- Gotank - Searchify 用于 IndexTank 全文搜索 API 的 Go 客户端
- go-tripit - TripIt Web 服务的 Go API 库
- GoTwilio - Go (golang) 的 Twilio 库。目前非常基础
- gravatar - Gravatar 图片/个人资料 API 库
- jsonapi - 从 Go 结构体生成 JSON API
- postmark - 在 Go 中访问 Postmark API
- reddit.go - Reddit API 的客户端库
- shorturl - 与各种 URL 缩短服务交互的通用实现
- SocialSharesCount - 多个社交网站的包装器 API,用于获取 URL 分享统计数据
- Stack on Go - Stack Exchange API 的 Go 包装器
- stripe - 官方 Stripe 客户端库
- twilio - 简单的 Twilio API 包装器
- twittergo - Twitter API 的客户端库
- vksdk - 用于处理 VK API 的 Golang 模块
其他
- adhoc-http - 快速简陋的 HTTP 静态文件服务器
- aop - Go 的面向切面编程。
- assets - 帮助准备 Go Web 应用开发和生产所需的 CSS 和 JS 文件。
- bwl - 一组帮助构建网站的库
- captcha - 图片和音频验证码生成器和服务器
- gaerecords - 围绕 appengine/datastore 的轻量级包装器,提供 Active Record 和 DBO 风格的数据管理
- gcd - 提供用于处理 Google Cloud DataStore 的实用函数。
- get2ch-go - 一个访问日本 2channel 网站论坛的库
- gofeed - 在 Go 中解析 RSS 和 Atom Feed
- go-gzip-file-server - 一个类似于 FileServer 的 net.http.Handler,用于提供 gzipped 内容
- gohaml - 一个使用 Go 语言实现的流行的 XHTML 抽象标记语言。
- go-httpclient - 一个带超时设置的 Go HTTP 客户端
- gojwt - Go 的 JSON Web Token
- go-pkg-rss - 一个读取 RSS 和 Atom Feed 的包
- gorefit - 一个用于现有网站主题化的库
- goreman - foreman 克隆
- GoRequest - 简化的 HTTP 客户端,功能丰富,如代理、超时等(灵感来自 nodejs SuperAgent)
- goroute - 一个非常简单的 URL 路由器,基于正则表达式的命名子匹配,与 http.Handler 配合良好。
- gorouter - 用于 Go 处理 URL 变量的简单路由器
- go-rss - 简单的 RSS 解析器和生成器
- go-rss - 简单的 RSS 解析器,已使用 Wordpress Feed 进行测试。
- goscribble - 一个 MPD Audioscrobble
- go-twitter - 另一个 Twitter 客户端
- go-twitter-oauth - 一个简单的 Twitter 客户端(支持 OAuth)
- grab - 一个用于管理文件下载的包
- grender - Go 静态网站生成器
- halgo - HAL-兼容的 API 客户端和序列化库。
- http-gonsole - 像本地人一样说 HTTP。(简单直观的 HTTP 控制台,golang 版本)
- httprpc - HTTP RPC 编解码器 (json2, soap, rest)
- HypeCMS - 一个使用 Go 和 MongoDB 构建的灵活 CMS。
- Kontl - kon.tl URL 缩短服务的客户端
- mustache.go - Mustache 模板语言的实现
- muxer - 不使用正则表达式的 Go 应用简单多路复用器
- Optimus Sitemap Generator - 一个通用的 XML 站点地图生成器
- passwordreset - 安全 Token 的创建和验证,有助于在 Web 应用中实现“重置忘记的密码”功能。
- pat - Sinatra 风格的模式多路复用器
- persona - persona 的远程验证 API
- plex - 简单、小型、轻量、带链式调用的正则表达式 HTTP 多路复用器
- podcast - Golang 中的 iTunes 和 RSS 2.0 Podcast 生成器
- purell - 用于规范化 URL 的微型 Go 库
- pusher.go - 标准 http 包的 HTTP 服务器推送模块
- rest2go - 基于 rest.go,分叉以进行改进和 REST 一致性
- rest.go (分叉) - 分叉 rest.go 以进行改进和 REST 一致性
- resty - 受 Ruby rest-client 启发的 Go 的简单 HTTP 和 REST 客户端。
- robotstxt - robots.txt 排除协议实现。允许解析和查询 robots.txt 文件。
- scs - 使用服务器端会话存储的 HTTP 会话管理器。
- seshcookie - 一个受 Beaker 启发的 Web 会话库
- soy - Soy 模板 (Google Closure 模板) 的 Go 实现。高性能且支持国际化。
- user_agent - 一个 HTTP User-Agent 解析器
- webtestutil - Web 和 HTTP 功能测试工具。包括 Gorilla 测试支持。
- yt2pod - 一个守护程序,监控 YouTube 频道并发布其音频播客
Windows
- gform - 一个易于使用的 Go Windows GUI 工具集
- go-ole - golang 的 win32 ole 实现
- go-Windows-begin - 适合完全的 Windows-Go 初学者
- w32 - Go 的 Windows API 包装器。
- walk - Go 编程语言的“Windows 应用库工具集”
- Windows Command Line Shutdown - 一个从命令行关闭 Windows 计算机的工具
Unix
未分类;请帮忙!
以下条目尚未归档。请帮忙将它们放到相关类别中。
- consistent - 具有有限负载的一致哈希。
- dotviz-server - 使用 Go 编写的基于 Web 的 DOT 语言可视化工具
- ebml-go - EBML 解码器
- go-bindata - 将任意文件转换为可管理的 Go 源代码,用于将二进制数据嵌入到 Go 程序中。
- GoBot - Go HTTP 僵尸网络的 PoC(概念验证)
- goconsistenthash - 一致哈希库(基于 http://www.lexemetech.com/2007/11/consistent-hashing.html)
- go-cron - 一个小型 cron 作业系统,用于处理计划任务,例如优化数据库或将会话中的空闲用户踢出。为了 go get 兼容性,cron.go 项目已重命名为这个名字。
- godebiancontrol - Golang debian 控制文件解析器
- godotviz - 从“DOT 语言”渲染图形文件。使用 Golang 编写
- go-gmetric - Ganglia gmetric 协议支持
- gographviz - Golang 的 Graphviz DOT 语言解析器
- gopcapreader - 将实时 pcap 数据呈现为 io.Reader 对象
- go.psl - Go regdom-libs/公共后缀列表
- goseq - 一个命令行工具,用 Go 编写,用于使用基于文本的描述语言创建序列图。
- go-webfinger - WebFinger 的简单客户端实现
- img-LinuxFr.org - LinuxFr.org 上使用的外部图片的反向代理缓存
- one-file-pdf - 一个微型的 Go PDF 写入器,代码行数少于 2K 行,仅包含 1 个文件
- seed - 轻松地为 PRNG 提供一些熵
- spellabc - spellabc 包实现了拼读字母代码词编码。
- Tasks - 一个用 Go 编写的简单的待办事项列表管理器
- Twackup - 将您的推文备份到本地文件
- al-Go-rithms - 用于参考目的的关于数组、符文、字符串的算法集合。
此内容是 Go Wiki 的一部分。