go语言开发的程序有:1、GraphJin,用于Postgres的即时GraphQL API;2、go-fits,FITS格式图像和数据读取器;3、goenv,可提供Go版本和Go工作区管理工具;4、go-server,敏捷服务器框架;5、gows,Go工作区管理器;6、GVM,提供了一个管理Go版本的接口;7、oh,使用Go编写的Unix shell;8、automi等等。
本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
go语言开发的程序(项目)有哪些?下面本篇文章给大家分享一些Go语言的开源项目,下面一起看看:
API 服务和工具
图形语言
- GraphJin - 用于 Postgres 的即时 GraphQL API。无需代码,将 GraphQL 编译为 SQL。
MTProto
- MTProto - 在纯 Go 上编写的 Telegram API 的完整本机实现。
天文学
- go-fits - FITS(灵活图像传输系统)格式图像和数据读取器
- astrogo/fitsio - Pure Go FITS(灵活图像传输系统)格式图像和数据读取器/写入器
- cosmo - 常见宇宙学的宇宙距离和时间计算(Friedmann-Lemaître-Robertson-Walker 度量)。
- gonova - libnova的包装器 -- 天体力学、天体测量学和天体动力学库
- meeus - Jean Meeus 的“天文算法”的实现
- novas - 与海军天文台矢量天文测量软件 (NOVAS) 的接口
- utdfgo - 航天器 UTDF 数据包读取器和解码器
构建工具
- beku - 在用户环境(GOPATH 或供应商目录)中管理包的库和程序
- colorgo -着色go 构建输出
- dogo - 监控源文件的变化并自动编译和运行(重启)
- fileembed-go - 这是一个命令行实用程序,用于获取大量源文件,并将它们嵌入到 Go 包中
- gb - Go 的(另一个)构建工具,重点是多包项目
- gg - 一个小型的多 golang 项目 env/make 管理工具。
- GG - Go in 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 - Go 的 LevelDB 风格 LRU 缓存,支持非 GC 对象缓存。
- go-cache - Go 的内存键:值存储/缓存(类似于 Memcached)库,适用于单机应用程序
- golibs/cache - 一个很小的缓存包
- gomemcached - go 中的 memcached 服务器
- gomemcache - 一个 memcached 客户端
- go-slab - go 的Slab 分配器。
- groupcache - 缓存和缓存填充库,旨在在许多情况下替代 memcached
- libmemcache - 使用 memcache 协议的快速客户端和服务器库
- memcached-bench - 内存缓存服务器的基准工具
- memcached - 快速的 memcache 服务器,支持超过可用 RAM 的持久性和缓存大小
- memcache - 转到 memcached 客户端,从 YouTube Vitess 分叉
- rend - 管理数据分块和 L1/L2 缓存的 memcached 代理
- YBC 绑定- YBC 库的绑定为快速进程内 blob 缓存提供 API
- g2cache - 协调的本地和外部两级缓存方案
云计算
- aws-sdk-go - 适用于 Go 编程语言的 AWS 开发工具包。
- Docker - Linux 容器运行时。由 dotCloud 开发。
- 适用于 Go 的Enduro/X ASG应用服务器。为分布式事务处理提供应用服务器和中间件设施。支持基于微服务的应用架构。由 ATR Baltic 开发。
- Flamingo - 轻量级云实例上下文化器。
- gocircuit - 一种分布式操作系统,位于数据中心部署中多台机器上的传统操作系统之上。它提供了一个干净统一的抽象,将整个硬件集群视为一个单一的、单一的计算资源。由 Tumblr 开发。
- gosync - 用于将数据同步到 S3 和从 S3 同步数据的包。
- juju - 由 Canonical 开发的编排工具(部署、配置和生命周期管理)。
- Kubernetes - 来自 Google 的容器集群管理器。
- 基于 liblxc 的LXD守护进程提供 REST API 来管理容器
- mgmt - 由@purpleidea(红帽员工)和 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 Object Storage / Rackspace 云文件的 Go 语言接口
- Tsuru - Tsuru 是由 Globo.com 开发的开源多语言云计算平台即服务 (PaaS)。
命令行选项解析器
- argcfg - 使用反射从命令行参数填充结构中的字段
- autoflags - 从配置结构填充 go 命令行应用程序标志
- cobra - 现代 go CLI 交互的指挥官,支持命令和 POSIX/GNU 标志
- cli - 用于实现命令行界面的 Go 库。
- cmdline - 一个简单的解析器,支持短选项和长选项、默认值、参数和子命令。
- command - 将子命令添加到您的 CLI,提供帮助和使用指南。
- docopt.go - 用 Go 编程语言实现的 docopt。
- flaq - 命令行选项解析库,符合 POSIX/GNU 标准,支持结构标记以及 Go 的标志方法。
- getopt - Go 风格的全功能传统(BSD/POSIX getopt)选项解析
- 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 的标志包的直接替代品,实现了 POSIX/GNU 风格的 --flags。
- subcommands - 一个并发的、经过单元测试的子命令库
- uggo - 另一个选项解析器,提供类似 gnu 的选项解析。这个包装(嵌入)flagset。它还提供基本的管道检测(像 ls 这样的命令在通过管道传输时表现不同)。
- writ - 具有全面测试覆盖率的灵活选项解析器。它的意思是“只是工作”并且不碍事。
命令行工具
- amqp-message-remover - 通过正则表达式模式从 AMQP 队列中删除不需要的消息
- Arduino-cli - Arduino CLI 是一种一体化解决方案,提供构建器、板/库管理器、上传器、发现以及使用任何 Arduino 兼容板和平台所需的许多其他工具。
- awless - 亚马逊网络服务(AWS)的强大命令行界面。
- 锅炉- 一个极快的 CLI 工具,用于从样板模板创建项目。
- box-cli-maker - 为您的 CLI 制作高度定制的 Box。
- 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 编写的跨平台实用程序
- gister - 从命令行管理你的 github gist
- git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪
- gmail2go - 简单的 gmail 多帐户 cli 邮件检查器
- 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 算法的绑定。
- compress - 更快地替换 gzip、zip、zlib、deflate。
- dgolzo - LZO 绑定。
- go-lzo - Pure-Go LZO 压缩器/解压器,忠实地翻译了 C 代码库。
- dictzip - 随机访问
dictzip
格式文件的读写器。 - fast-archiver - 对大量小文件具有快速性能的替代归档工具。
- gbacomp - 用于(解)压缩与 GBA BIOS 兼容的数据的 Go 库。
- go-lz4 - LZ4 无损压缩算法的端口。
- go-lzss - 在 Go 中实现 LZSS 压缩算法。
- go-sevenzip - 包 Sevenzip 实现对 7-zip 档案的访问(包装 LZMA SDK 的 C 接口)。
- go-zip - C 库 libzip 的包装器,提供修改现有 ZIP 档案的能力。
- lz4 - 高性能,并发 LZ4 实现。
- lzma - Go 的压缩/lzma 包。
- pgzip - 多核 gzip,与标准库兼容。
- ppmd-go - LZMA SDK 库的 Golang 绑定。(仅绑定 PPMD)
- s2 - 高吞吐量 Snappy 扩展。
- snappy-go - 谷歌在 Go 中的 Snappy 压缩算法。
- yenc - yenc 解码器包。
- zappy - 包 zappy 实现了 zappy 基于块的压缩格式。它旨在结合良好的速度和合理的压缩。
- zstd - Pure Go Zstandard 压缩/解压缩。
并发和 Goroutines
- grpool - 轻量级 Goroutine 池。
- pool - Go 消费者 goroutine 池,可轻松处理 goroutine + 节省时间。
- tunny - 一个 goroutine 池。
- worker - 一个简单轻量级的并发作业框架。
配置文件解析器
- awsenv - 一个小二进制文件,用于为配置文件加载 Amazon (AWS) 环境变量
code.soquee.net/env
— 从.env
或类似文件中加载环境变量,或从任何文件中加载环境变量io.Reader
并填充本地环境。- confl - nginx 配置语法,宽松,编码/解码,自定义编组
- configor - 支持 YAML、JSON、TOML、Shell 环境的 Golang 配置工具
- fig - 用于从文件和环境变量(带有验证和默认值)读取配置的微型库。
- flagfile - 向标准库标志包添加解析和序列化支持(添加 --flagfile 选项)
- gcfg - 将 INI 风格的配置文件读入 Go 结构体;支持用户定义的类型和小节
- globalconf - 毫不费力地坚持并从 ini 配置文件中读取标志值
- goconf - 配置文件解析器
- goconfig - 基于结构自省的配置,支持环境变量、命令行参数等。
- hjson - 人类 JSON,人类的配置文件格式。宽松的语法,更少的错误,更多的评论。
- hocon - 使用 HOCON(一种人性化的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
- jsonconfig - 具有注释支持的 JSON 配置文件解析器
- koanf - 轻量级,可扩展的库,用于在 Go 应用程序中读取配置。内置对 JSON、TOML、YAML、env、命令行的支持。
- lib/ini - 包 ini 实现了 Git 配置文件语法定义的 INI 文本格式的读写。
- lib/ssh/config - 包配置提供 ssh_config(5) 解析器和 getter。
- properties - 用于读取和写入属性文件的库
- scribeconf - Facebook Scribe 服务器配置文件解析器
- 汤姆:
- uConfig - 一种无偏见、可扩展和可插入的配置管理。支持 YAML、TOML、JSON、Env vars、K8s DAPI 等。
- viper - 一个完整的配置解决方案,支持 YAML、TOML 和 JSON 以及与命令行标志的集成
- 亚姆:
控制台用户界面
- ansi - 轻松创建 ansi 转义代码字符串和闭包以格式化、着色控制台输出
- ansiterm - pkg 驱动响应 ANSI 转义序列的纯文本控制台
- cons - 用于构建交互式控制台工具的简单包。
- gnureadline - GNU Readline 绑定
- go-ansiout - 另一个用于命令行应用程序的 ANSI 转义码序列工具。
- gockel - 文本终端的 Twitter 客户端
- gocui - 旨在创建控制台用户界面的极简库
- gocurse - NCurses 的绑定
- gocurses - NCurses 包装器
- go-ibgetkey - “热键”类型的用户输入包,用于处理命令行应用程序中的击键。
- go.linenoise - Linenoise 绑定(简单易读的提示,可选历史记录,可选选项卡完成)
- goncurses - 一个 ncurses 库,包括表单、菜单和面板扩展
- gopass - 允许输入密码而不回显到屏幕
- go-pullbarz - 类似于 DOS 时代 Lotus 123 中的花式“灯条”菜单。依赖于 go-ibgetkey 和 go-ansiout。
- go.sgr - 终端/控制台颜色和文本装饰(粗体、下划线等)。
- go-stfl - STFL的薄包装,基于 ncurses 的小部件工具包
- goterminal - 一个 go 库,可让您在终端上编写然后重新编写文本,以更新进度。它也适用于 Windows!
- go-web-shell - 远程 web shell,实现 net/http 服务器。
- igo - 一个简单的交互式 Go 解释器,基于 exp / eval 构建,具有一些 readline 改进
- 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 天气服务的命令行界面
持续集成
- goveralls - 集成Coveralls.io连续代码覆盖率跟踪系统。
- 工作服- 用于工作服等工具的多包 go 项目coverprofile
加密货币
- Skycoin - Skycoin 是一种用 Go 编写的下一代加密货币。Skycoin 并非旨在为比特币添加功能,而是通过提高简单性、安全性和去除所有不必要的东西来改进比特币。
密码学
- BLAKE2b - BLAKE2b 哈希函数的 Go 实现
- cryptogo - 一些有用的与密码学相关的函数,包括填充(PKCS7、X.923)、带有随机盐和 IV 的 PBE
- cryptoPadding - 在 Go 中实现的块填充方案
- dkeyczar - Google'e 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 的雌狮宽块密码
- go-minilock - minilock 文件加密系统的 Go 实现。
- GoSkein - Go 的 Skein 哈希和 Threefisch 加密的实现
- go-sphinxmixcrypto - Sphinx 混合网络加密数据包格式操作
- keccak - keccak (SHA-3) 实现
- ketama.go - libketama 风格的一致性哈希
- kindi - 加密命令行工具
- openssl - 用于 go 的 openssl 绑定
- 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 - 漩涡加密散列算法
数据处理
- automi - 在 Go 频道上编写流程和集成流
- 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 等。
- 棘轮- 用于在 Go 中执行数据管道 / ETL 任务的库。
- 推荐- 推荐引擎。
- rrd - rrdtool 的绑定。
- XConv - 在类型(基本类型、结构、数组、切片、映射等)之间转换任何值
数据结构
收藏
- 集合- 几种常见的数据结构
- 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 - 收藏图书馆
哈希表
列表
- fs2/mmlist - 内存映射列表。
- GoArrayList - GoArrayList 是 Java 类 ArrayList 的 Go 语言替代品,具有几乎所有功能。
- goskiplist - Go 中的跳过列表实现。
- itreap - 一个不可变的有序列表,内部是一个 treap。
- ListDict - 用于 Go 的 Python 列表和字典
- skip - 快速位置可寻址的有序映射和多映射。
- Skiplist - 快速可索引的有序多图。
- skiplist - 跳过列表实现。高度可定制且易于使用。
- skiplist - 从 Redis 的 Sorted Sets 移植的 Skiplist 数据结构。
- stackgo - 基于切片的快速堆栈实现。
队列
- fifo_queue - 简单的 FIFO 队列
- figo - 具有可选线程安全版本的简单 fifo 队列。
- go.fifo - 简单的自动调整线程安全的 fifo 队列。
- gopqueue - 容器/堆顶部的优先队列
- go-priority-queue - 具有传统优先级队列接口的易于使用的堆实现。
- golibs/stack - 一个 LIFO 和 ringbuffer 包
- gringo - 使用精简的无锁环缓冲区实现的极简队列
- heap - 一种通用的堆包,无需将元素
interface{}
来回转换。 - queued - 一个简单的网络队列守护进程
- queue - 基于 Redis 的队列管理器
图表
套
- disjoint -不相交集(具有路径压缩的联合查找算法)
- golang-set - Go 的完整线程安全和不安全集实现。
- goset - 一个简单的、线程安全的 Set 实现
- set - 为 Go 设置数据结构
树木
- b - 包 b 实现了带有延迟页面拆分/连接和 O(1) 枚举的 B+树。通过简单的文本替换,可以轻松生成专门用于用户定义的键和值类型的 B+树的源代码。
- btree - 包 btree 实现了具有固定大小键的持久 B 树,http://en.wikipedia.org/wiki/Btree
- btree - 内存中(非持久)B 树实现,类似于 GoLLRB 的 API
- go-avltree - 添加了索引的 AVL 树(Adel'son-Vel'skii & Landis)
- go-btree - 简单的平衡树实现
- go-darts - 用于围棋的双阵列 Trie 系统
- GoLLRB - Google Go 中 2-3 平衡二叉搜索树的左倾红黑(LLRB)实现
- go-merkle - 带有证明的 Merkle 化二叉(搜索)树。
- go-radix , go-radix-immutable - 基数树实现。
- go-stree - 区间范围查询的段树实现
- gtreap - 持久的 treap 实现。
- prefixmap - 用于基于字符串的键的简单的基于 trie 的前缀映射
- rbtree - 高性能红黑树,其 API 类似于 C ++ STL 的集合、映射、多集、多映射。
- rbtree - 另一个红黑树实现,具有类似 C++ STL 的 API
- rtreego - 一个 R 树库
- triego - 用于存储单词的简单 trie 实现
其他
- aurora - 跨平台 Beanstalk 队列服务器控制台。
- bigendian - 二进制解析和打印
- deepcopy - 制作数据结构的深层副本
- dgobloom - 布隆过滤器实现
- epochdate - 以 Unix 纪元以来的天数存储的紧凑日期
- etree - 轻松解析和生成 XML
- excelize - 用于读取和写入 Microsoft Excel(XLSX)文件的 Golang 库。
- fsm - 用于代替布尔值的简约状态机
- go-algs/ed - 广义编辑距离实现
- go-algs/maxflow - 使用最大流量算法的能量最小化工具。
- gocrud - 用于处理任意深度数据结构的框架。
- go-extractor - GNU libextractor 的 Go 包装器
- Gokogiri - 一个轻量级的 libxml 包装库
- GoNetCDF - NetCDF 文件格式库的包装器
- goop - Go 的动态面向对象编程支持
- gopart - 可以在 Go 中索引的任何内容的类型不可知分区。
- godoc - 用 Go 编写的协议缓冲区编译器
- govalid - 数据验证库
- goxlsxwriter - 用于编写 XLSX(Excel)文件的libxlsxwriter 的Golang 绑定
- goxml - 一个围绕 libxml2 的薄包装
- hyperloglog - HyperLogLog 和 HyperLogLog++ 算法的实现,用于使用常量内存估计集合的基数.
- itertools - 提供通用的可迭代生成器函数以及类似于 itertools python 包的功能。
- jsonv - 一个 JSON 验证器
- libgob - 用于从其他语言生成gob的低级库
- mxj - Marshal/Unmarshal XML doc from/to
map[string]interface{}
or JSON - ofxgo - 用于查询 OFX 服务器和/或解析响应(和示例命令行客户端)的库。
- Picugen - 通用哈希/校验和摘要生成器。
- simple-sstable - 一种简单、简洁的 SSTable 格式和 Go 中的实现。
- tribool - Go 的三元(树值)逻辑
- 元组- 元组是一种将包含混合类型/值的 go 类型
- vcard - 在 go 中读写 vcard 文件。RFC 2425(目录信息的 MIME 内容类型)和 RFC 2426(vCard MIME 目录配置文件)的实现。
- weightedrandom - 用于高效加权随机挑选的库
- xlsx - 一个帮助从 Microsoft Office Excel XLSX 文件中提取数据的库。
数据库
另请参阅SQLDrivers 页。
蟑螂数据库
- cockroachdb - 可扩展、可生存、高度一致的 SQL 数据库
Hazelcast IMDG
- Hazelcast危转客户端-为正式进入客户端实现Hazelcast IMDG,开源内存数据网格。
MongoDB
- mgo - 用于 Go 的丰富 MongoDB 驱动程序
- Mongo 驱动程序- 官方 MongoDB Go 驱动程序
- Rocks-stata - MongoDB 备份工具
MySQL
- Go-MySQL-Driver - 用于 Go 的 database/sql 包的轻量级且快速的 MySQL 驱动程序
- MyMySQL - 完全用 Go 编写的 MySQL 客户端 API。
- mysqlsuperdump - 生成 MySQL 数据库的部分和过滤转储
- TiDB - 以 Google 的 F1 设计为模型的 MySQL 兼容分布式数据库。
- vitess - 为网络扩展 MySQL 数据库
ODBC
PostgreSQL
code.soquee.net/migrate
使用与 Rust 的 Diesel 兼容的机制生成、应用和列出 PostgreSQL 数据库迁移的库。- go-libpq - 用于 Go 的数据库/sql 包的基于 cgo 的 Postgres 驱动程序
- go-pgsql - Go 的 PostgreSQL 客户端库
- kallax - PostgreSQL 类型安全 ORM
- pgsql.go - PostgreSQL 高级客户端库包装器
- pgx - Go PostgreSQL 驱动程序,与数据库 / sql 兼容并具有本机接口以提供更多性能和功能
- pq - 用于数据库 / sql 的 Pure Go PostgreSQL 驱动程序
- yoke - 具有自动故障转移和自动集群恢复功能的 Postgres 高可用性集群
QL
- ql - 纯 Go 嵌入式 (S)QL 数据库。
Redis
- godis - Redis 的简单客户端
- Go-Redis - Redis 键值存储的客户端和连接器
- go-redis - 基于 gomemcache 框架构建的 Redis 客户端
- Redigo - Redis 的 Go 客户端。
- redis - Go 的 Redis 客户端
重新思考数据库
- GoRethink - 用于 Go 的 RethinkDB 驱动程序
SQLite
- gosqlite3 - SQLite3 的 Go 接口
- gosqlite (forked) - gosqlite 的一个分支
- gosqlite - Go 的简单 SQLite 绑定。
- go-sqlite - 一个数据库/sql 驱动程序和独立的 sqlite3 接口
- go-sqlite-lite - 一个用于 Go 的简单 SQLite 包。
- mattn 的 go-sqlite3 - 符合内置数据库/sql 接口的 sqlite3 驱动程序
维蒂卡
- 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 - 按结构查询。支持 MySQL、PostgreSQL 和 SQLite3。
- sqlboiler - 通过代码生成的数据库优先 ORM。
- sqlgen - 用于 SQL 交互的 Go 代码生成。
- structable - 结构到表的数据库映射器。
- xorm - 用于 Go 的简单而强大的 ORM。
- 改革- 基于非空接口和代码生成的更好的 Go ORM。
- go-queryset - 用于 Go 的 100% 类型安全 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-stores 的纯 go 实现。
- goleveldb - 纯 Go 中 LevelDB 键/值的另一种实现。
- kv - 另一个键/值持久存储。原子操作、两阶段提交、自动崩溃恢复、...
- leveldb-go - 这是 LevelDB 键/值数据库的实现。
- levigo - levigo 提供了创建和访问 LevelDB 数据库的能力。
- persival - 程序化、持久化、伪键值存储
图数据库
- cayley - 100% Go 图形数据库,受 Freebase 和 Google 知识图的启发。
- Dgraph - 具有类似 GraphQL 的 API 的快速分布式图形数据库。
- go-gremlin - Apache TinkerTop Graph 分析框架(Gremlin 服务器)的 Go 客户端。
无SQL
- couchgo - Go 功能最完整的 CouchDB 适配器。模仿 couch.js。
- influxdb - 用于指标、事件和实时分析的可扩展数据存储
- Kivik - Kivik 为 CouchDB、PouchDB 和类似数据库提供了一个通用的 Go 和 GopherJS 客户端库。
- ledisdb - 像 Redis 一样的高性能 NoSQL。
- nodb - 带有 kv、列表、哈希、zset、位图、集的纯 Go 嵌入 Nosql 数据库。
- iedot - 使用 JSON 进行文档和查询的 NoSQL 文档数据库引擎;它可以嵌入到您的程序中,或者使用 HTTP 作为 API 运行独立服务器。
其他
- 内阁- 京都内阁绑定去
- camlistore - 终身个人分布式存储系统。
- cdb.go - 创建和读取cdb(“常量数据库”)文件
- CodeSearch - 对大量源代码进行索引和执行正则表达式搜索
- dbxml - Oracle Berkeley DB XML 的基本接口
- drive - 谷歌驱动命令行客户端
- Event Horizon - 命令查询职责分离和事件溯源工具包 (CQRS/ES)
- go-batcher - 在 Go 中简单地创建和使用批处理程序
- go-clickhouse - Yandex Clickhouse 的连接器(面向列的数据库)
- go-db-oracle - Oracle DB 的 GO 接口
- gographite - go 中的 statsd 服务器(用于将数据提供给石墨)
- gokabinet - 京都内阁 DBM 实施的绑定
- go-model - 健壮且易于使用的 Go 结构映射器和实用程序方法
- go-notify - libnotify 的 GO 绑定
- goprotodb - 与 Berkeley DB 的绑定,存储编码为协议缓冲区的记录。
- go-rexster-client - Rexster 图形服务器的Go 客户端(图形数据库工具TinkerPop套件的一部分)
- goriak - riak数据库的数据库驱动程序(项目主页现在在 bitbucket.org 上)
- goriakpbc - 使用 Riak 的 protobuf 接口的 Riak 驱动程序
- gotyrant - 东京暴君的 Go 包装器
- go-wikiparse - 用于处理维基百科数据的 mediawiki 转储解析器
- hdfs - 为 libhdfs 绑定
- JGDB - JGDB 代表 Json Git 数据库
- mig - 基于 SQL 的简单数据库迁移
- mongofixtures - 一个 Go 快速而肮脏的实用程序,用于清理 MongoDB 集合并将设备加载到其中。
- Neo4j-GO - Go 中的 Neo4j REST 客户端
- neoism - Neo4j 图形数据库客户端,包括 Cypher 和事务支持。
- null - 用于在 SQL 中处理空值的包
- Optimus Cache Prime - 用于带有 XML 站点地图的网站的智能缓存预加载器。
- piladb - 基于堆栈数据结构的轻量级 RESTful 数据库引擎。
- pravasan - 简单的迁移工具(如 rake db:migrate 具有更大的灵活性)
- remapper - 将数据从一种类型转换/映射到另一种类型的库
- riako - 与 Riak 数据库交互的高级实用方法
- sqlbuilder - 具有行映射的 SQL 查询构建器
- sqlf - 在 Go 中创建参数化 SQL 语句,sprintf 风格
- squirrel - 为 Go 生成流畅的 SQL
- Sublevel - 同一 LevelDB 的不同部分
- Weed 文件系统- 快速分布式密钥文件存储
- 耳语- 用于使用耳语数据库的库
- xo - CLI 为数据库生成惯用的 Go 代码
日期
- date - 用于处理日期的包。
- date - 用于日期、日期范围、时间跨度、时段和时间。
- goment - 受 Moment.js 启发的 Go 时间库
- gostrftime - strftime(3) 类似于time.Time 的格式
- hijri - 根据 Ummul Qura 日历将回历日期转换为公历日期的小型帮助库。
- now - 现在是 golang 的时间工具包。
- tai64 - tai64 和 tai64n 解析和格式化
- Tideland golib - Timex 扩展
- tuesday - 与 Ruby 兼容的 Strftime 实现
Time.strftime
开发工具
- cwrap - C 库的封装(绑定)生成器。
- 需求- 轻松下载、构建、缓存和运行 Go 应用程序。
- glib - GLib 类型系统的绑定
- go-callvis - 使用点格式可视化 Go 程序的调用图。
- gocog - 可以使用任何语言生成代码的代码生成器
- Godepgraph - 为 go 包创建依赖图
- godev - 在源代码更改时重新编译并运行您的 Go 代码。还可以监视所有导入的更改。
- godiff - 带有彩色 html 输出的 diff 文件比较工具
- gonew - 创建新 Go 项目的工具
- go-play - 用于试验 Go 代码的 HTML5 Web 界面。像http://golang.org/doc/play但在您的计算机上运行
- gore - Go REPL。具有行编辑、代码完成等功能
- gorun - 允许将 Go 源文件用作脚本。
- go-spew - 为 Go 数据结构实现一个深度漂亮的打印机以帮助调试
- goven - 轻松地将代码从另一个项目复制到您的项目中
- gowatcher - 通过监视目录自动重新加载指定的 go 程序。
- GoWatch - GoWatch 监视您的 dev 文件夹中是否有修改过的文件,如果文件发生更改,它会重新启动该过程。
- goweb - Donald Knuth 和 Silvio Levy 基于 CWEB 的 Go文学编程工具。
- goyaccfmt - 自动重新格式化 Goyacc 源文件。
- hopwatch - Go 的简单调试器
- hsandbox - 用于快速实验 Go 代码片段的工具
- Inject - Golang 中的依赖注入库(来自 Facebook)
- liccor - 用于更新 Go 源文件中的许可证标头的工具
- liteide - Go 自动构建工具和基于 qt 的 Go ide
- Livedev - Livedev 是一个开发代理服务器,支持实时代码重新加载。
- Martian - 设计用于 E2E 测试的 HTTP 代理。
- nvm-windows - 适用于 Windows 的 Node.js 版本管理器
- Prettybenchcmp - 在本地存储和比较基准历史记录。
- rerun - 重新运行监视您的二进制文件及其所有依赖项,以便在源更改时重建和重新启动。
- sling - 网络流量模拟器和测试自动化工具,通过 HTTP 或 TCP 协议发送文件请求,控制速率频率、并发连接数、延迟、超时,并收集响应时间统计信息、平均值和百分位数。
- syntaxhighlighter - 与语言无关的代码语法高亮库
- 切换- 一个功能切换库,内置支持环境变量支持的切换。可插拔的后备引擎支持。
- trace - 一个简单的调试跟踪
Emacs 标签
分布式/网格计算
- celeriac - 在 Go 中添加对交互和监控 Celery 工人、任务和事件的支持的库
- donut - 在 Go 中构建集群服务的库
- libchan - 网络上类似 Go 的频道
- locker - 建立在etcd之上的分布式锁服务。
- dlock - 使用gRPC的本机 Go 分布式锁管理器(客户端和服务器)。
- mangos - 基于nanomsg的可扩展协议的实现
- redsync - 基于 Redis 的分布式互斥锁实现
- Skynet - Skynet 是为高度可扩展的 API 类型服务提供而设计的分布式进程网格。
- Tideland golib - 包括一个 map/reduce 库
文档
- examplegen - 将.go文件中的代码插入文档(例如,项目自述文件的示例)。
- godocdown - 将包文档 (godoc) 格式化为 GitHub 友好的 Markdown
- GoDoc.org - GoDoc.org 从 Bitbucket、Github、Google Project Hosting 和 Launchpad 上的源代码动态生成文档。
- golangdoc - Golang 的 Godoc,支持翻译。
- Mango - 从 Go 源代码自动生成 unix 手册页
- redoc - Redis 命令文档
- sphinxcontrib-golangdomain - Go 的 Sphinx 域
- test2doc - 从您的单元测试中为您的 go 单元生成文档。
编辑
- A - 基于 Acme 的图形文本和二进制编辑器
- 概念- 概念是一个实验研究项目,旨在成为一个现代 IDE/语言包。 演示视频
- de - 具有 Acme 和 vi 功能的模态图形编辑器
- Gide - 内置在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 - 现代且直观的基于终端的文本编辑器。
- 虎斑- 源代码编辑器
- T - Acme/Sam 之类的文本编辑器
- ViGo - 类似 vim 的文本编辑器。
- Wide - 使用 Golang 的团队的基于 Web 的 IDE。
电子邮件
- chasquid - 用 Go 编写的 SMTP 服务器。
- gmail - 用于从 Gmail 帐户发送电子邮件的简单库,适用于对处理协议细节不感兴趣的人。
- Gomail - 一个简单有效的电子邮件发送包。
- go-mail - 电子邮件实用程序,包括 RFC822 消息和 Google Mail 默认值。
- go-ses - 亚马逊 AWS 简单电子邮件服务 (SES) API 客户端
- go-simple-mail - “用于发送电子邮件的 Golang 包。支持保持活动连接、TLS 和 SSL。易于批量 SMTP。”
- Hectane - 轻量级 SMTP 客户端,包括由磁盘存储支持的内置邮件队列。
- Inbucket - Inbucket 是一种电子邮件测试服务;它将接受任何电子邮件地址的消息,并使其可通过网络界面查看。
- mail.go - 解析电子邮件
- MailHog - 受 MailCatcher 启发的电子邮件测试服务。
- MailSlurper - 一个方便的 SMTP 邮件服务器,可用于本地和团队应用程序开发。将邮件吞没!
错误处理
code.soquee.net/problem
包问题会导致 HTTP API 的错误类似于RFC7807 中描述的错误。- errgo - 错误跟踪和注释。
- 错误- 错误增加和错误与文件和行号。
- 错误- juju/errors 包提供了一种简单的方法来注释错误而不会丢失原始错误上下文,并从记录的位置的错误中获取堆栈跟踪。
- goerr - 允许制作单独的(模块化)和可重用的错误处理程序。使用 Return(error) 和 catch err := OR1(..)
- hierr - 层次结构中的嵌套错误。
- panicparse - 用风格解析恐慌。
- Space Monkey 错误- 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.enmime - Go 的 MIME 电子邮件解析器库(本机)
- go-msgpack - Go 的综合 MsgPack 库,具有打包/解包和 net/rpc 编解码器支持(已弃用,支持编解码器)
- 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 规范的纯 MIME 嗅探库/工具
- msgpack - Go 的 Msgpack 格式实现
- msgpack-json - 在 msgpack 和 json 之间转换的命令行实用程序
- nnz - 序列化为 JSON 和 SQL null 的 String 和 Int 原语
- 可存储- 写入 perl 可存储数据
- TNetstring - tnetstrings(标记的 Netstrings)
文件系统
- afero - Go 的文件系统抽象系统
- go.fs - 虚拟文件系统抽象层。
- poller - 包轮询器是一个文件描述符多路复用器。它允许对多个文件描述符进行并发读取和写入操作。
- vfsgen - 生成静态实现给定虚拟文件系统的 vfsdata.go 文件。
游戏
- Bampf - 基于 Vu 3D 引擎的街机风格游戏。
- bloxorz - bloxorz 基本级别的求解器
- ChessBuddy - 与 Go、HTML5、WebSockets 和随机陌生人下棋!
- Fergulator - 一个 NES 模拟器,使用 SDL 和 OpenGL
- FlappyBird - 一个用 golang 编写的简单的飞扬的鸟克隆。
- Godoku - Go Sudoku Solver - “通过交流分享”的例子
- Gorgo - 用围棋编写的下围棋程序
- gospeccy - ZX Spectrum 48k 模拟器
- Ludo Game - 由 Go on Appengine 提供支持的 Ludo 棋盘游戏
- Pinkman - 基于命令行的国际象棋接口到 UCI 兼容的国际象棋引擎
- Pong - 用 golang 编写的简单 Pong 克隆
- pong-command - 笑话命令,类似乒乓。
- Steven - Go 中的 Minecraft 客户端
- ukodus - Go 中的数独求解器
- WolfenGo - Go 中的 Wolfenstein3D 克隆,使用 OpenGL 2.1
- GoChess - 在终端上与朋友下棋
地理信息系统
- geojson - Go 包以快速轻松地创建 geojson 格式的 json 数据。描述
- go-geom - 具有本机 Go GeoJSON 和 WKB 编码和解码的高效开放地理联盟风格的几何结构(正在进行中)
- go.geo - 针对在线制图的几何/地理库(作者不赞成使用他的新 gis 库
orb
。) - go.geojson - GeoJSON 对象的编组和解组
- gogeos - 用于空间数据操作和几何算法的 Go 库
- go-proj-4 - 制图投影库 PROJ.4 的接口
- go-kml - 谷歌地球 KML 生成
- go-polyline - 谷歌地图折线编码和解码
- orb - 具有 geojson、wkb、mvt 支持的 2d 几何操作(长度、面积、多边形包含等)
- osm - 用于读取、写入和处理 OpenStreetMap 数据的通用库
- UTM - 双向 UTM-WGS84 转换器
- gdal - 为 GDAL 提供一个 go 包装器
Go 实现
- llgo - 基于 LLVM 的 Go 编译器,用 Go 编写
图形和音频
- accumimage -的变体
image.NRGBA
和color.NRGBA
颜色,它支持的积累和平均 - AnsiGo - 用纯 Go 编写的简单 ANSi 到 PNG 转换器
- Arclight - Arclight 是一种渲染图像的工具
- bild - 纯 Go 中的图像处理算法集合
- bimg - 使用 libvips 快速调整图像大小和转换的小型 Go 库
- blend - Go 的图像处理库和渲染工具包。
- bpg - Go 的 BPG 解码器。
- 图表- 以不同的输出格式生成常见图表(饼图、条形图、条形图、散点图、直方图)的库。
- draw2d - 这个包提供了一个 API 来在图像上绘制 2d 几何形状。这个库主要受 postscript、cairo、HTML5 画布的启发。
- ebiten - 一个跨平台的开源游戏库,您可以使用它为多平台使用简单的 API 开发 2D 游戏。不需要 Cgo/c 编译器设置。
- egl - egl 绑定
- es2 - es2 绑定
- fastgallery - 快速的静态图像和视频网络画廊生成器
- Fourcc - 媒体文件中使用的视频编解码器、压缩格式、颜色和像素格式的 FOURCC(四字符代码)(4CC)标识符的 Go 实现。
- freetype-go - FreeType 的 Go 实现
- glfw 3 - GLFW 3 库的绑定
- glfw - 绑定到用于打开窗口、创建 OpenGL 上下文和管理输入的多平台库
- glh - 用于管理文本、纹理、帧缓冲区等的 OpenGL 辅助函数
- gl - 使用 glew 的 OpenGL 绑定
- gltf - 用于编组和解组 glTF 的库
- glu - 绑定到 OpenGL 实用程序库
- GLUI -包装器GLFW简化显示图像
- gmask - 为 Csound 改编 Cmask 实用程序
- goalsa - 用于 ALSA 捕获和播放的 Go 绑定
- go-cairo - 开罗图形库的包装器
- gocl - Go OpenCL (gocl) 绑定,在 Mac/Linux/Windows/Android 上支持 OpenCL 1.1/1.2/2.0
- go-colorful - 颜色空间转换和其他颜色空间操作
- go-csnd6 - 绑定到 Csound6 API
- go-csperfthread - 绑定到 Csound6 API 的 CsoundPerformanceThread 辅助类
- goexif - 从图像文件中检索 EXIF 元数据
- gofb - 用于逐像素绘制的帧缓冲库
- goflac - 使用 libFLAC 解码和编码 FLAC 音频的绑定
- go-gd - GD 的狂欢
- GoGL - OpenGL 绑定生成器
- go-gnuplot - Gnuplot 的绑定
- go-gtk3 - go 的 gtk3 绑定
- go-heatmap - 制作热图的工具包
- GoHM - Go 中的 H.265/HEVC HM 视频编解码器
- goHorde - Horde3d 渲染引擎的 Go 绑定。
- GoMacDraw - go.wde的 mac 实现
- go-openal - Go 的实验性 OpenAL 绑定
- go-opencl - OpenCL 异构并行编程库的 go 包装器
- go-opencv - 在 gocv / 1.x API 在 opencv 中绑定 OpenCV / 2.x API
- Go-OpenGL - OpenGL 的Go 绑定
- Goop - 音频合成器引擎
- goray - 基于 Yafaray 用 Go 编写的光线追踪器
- gosc - Pure Go OSC(开放式声音控制)库
- go-taglib - TagLib 的 Go 包装器,音频元数据解析器
- go-tmx - 读取 Tiled 的 TMX 文件的 Go 库
- govips - 闪电般快速的 Go 图像处理和调整大小库
- GoVisa - Go 中的 H265/HEVC 比特流分析器
- go-vlc - 绑定 libVLC
- go.wde - 一个窗口/绘图/事件界面
- goxscr - 重写 xscreensaver 端口
- graphics2d - 基于路径和路径变换的 2D 图形包
- gst - GStreamer 的绑定
- gumble - Mumble VoIP 协议的客户端库
- hgui - 基于 http 和 gtk-webkit 的 Gui 工具包。
- hsvimage - 支持 HSV 颜色模型和图像
- imaginary - 用于图像调整大小和操作的简单快速的 HTTP 微服务
- 成像- 包成像提供基本的图像处理功能(调整大小、旋转、翻转、裁剪等)以及简化的图像加载和保存。
- imgproxy - 用于调整和转换远程图像的快速且安全的独立服务器
- libvlc-go - VLC 媒体播放器使用的 libVLC 2.X/3.X/4.X 的 Go 绑定
- merlin - 自动视频编码器
- netpbm - 从 Go 程序读取和写入 Netpbm 图像
- opencv - OpenCV 的 Go 绑定
- osmesa - 为 osmesa 进行绑定。
- 唱机- DSP 管道。
- Plotinum - 用于创建绘图的 API
- portaudio - 到 PortAudio 的 Go 绑定
- pulsego - 为 PulseAudio 绑定
- pulse-simple - PulseAudio 的 Simple API 的 Go 绑定,可轻松捕获和播放音频。
- rasterx - SVG 标准渲染、光栅化库。
- 调整大小- 使用不同的插值调整图像大小。
- RiGO - Go 中的 RenderMan 接口实现。
- smartcrop - 内容感知图像裁剪
- starfish - 基于 SDL 构建的简单 Go 图形和用户输入库
- stl - 用于读取、写入和操作用于 3D 打印的立体光刻 (.stl) 文件的库
- svgo - 用于创建和输出 SVG 的库
- tag - 用于读取标签元数据并为音频文件创建元数据不变校验和的库:FLAC、所有 IDv3 变体和 MP4(ACC、ALAC)
- tga - TARGA 图像格式编码/解码库
- tiff - 用于 Go 的丰富 TIFF/BigTIFF/GeoTIFF 解码器/编码器。
- twilio-go - Twilio API 的 Go 客户端。
- videoinput - VideoInput (Windows) 的 Go 绑定。
- vu - 虚拟宇宙。骨架3D引擎。
- vulkan - Vulkan API 的 Golang 绑定。
- webp - Go 的 WebP 解码器和编码器。
- wg - Web 图形,在浏览器中显示实时图形,并带有用户输入。
- window - 针对实时数据优化的移动窗口
- xmorph - 变形和变形图像
GUI 和小部件工具包
- fyne - 基于 Material Design 的跨平台原生 GUI 工具包
- gio - 便携式(iOS/tvOS、Android、Linux(Wayland/X11)、macOS、Windows、FreeBSD、OpenBSD、WASM)即时模式 GUI
- go-fltk - Go 的 FLTK2 GUI 工具包绑定
- GoGi - 完全原生的跨平台 GUI 工具包
- go-gtk - GTK 的绑定
- go-qt5 - 用于 Go 的 QT5 绑定
- gothic - Tcl/Tk Go 绑定
- gotk3 - GTK3 的Go 绑定,需要 GTK 3.8 版
- go.uik - Go 的 UI 套件,在 Go 中。(项目已关闭)
- go- webkit2 - WebKitGTK+ v2 API 的 Go 绑定(带无头浏览器和 JavaScript 支持)
- Gowut - Gowut(Go Web UI 工具包)是一个功能齐全、易于使用、平台无关的 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 绑定。(实现 EWMH 和 ICCCM 规范、键绑定支持等)
- x-go-binding - X 窗口系统的绑定
硬件
- gobot - 用于机器人、无人机和物联网 (IoT) 的 Golang 框架。
- go.hid - 提供与 USB 人机接口设备的通信。
- gortlsdr - 一个 librtlsdr 包装器,可将某些 USB DVB-T 加密狗转换为低成本、通用的软件定义无线电接收器。
- hwio - SoC 板的硬件 I/O 库,包括 BeagleBone Black 和 Raspberry Pi。
- stressdisk -压力测试你的硬盘/存储卡/ USB相信你的宝贵数据恢复到之前棒
语言与语言学
- alpinocorpus-go - Alpino 语料库的读者和作者。
- go-aspell - Go 的 GNU Aspell 拼写检查库绑定。
- go-edlib - 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
- go-l10n - 人类本地化
- go-language - 使用字母频率数据的简单语言检测器。
- goling - 字符串相似度(余弦相似度,Levenshtein 距离),拼写检查,分割
- go-ngram - n-gram 是来自给定文本或语音序列的 n 个项目的连续序列。
- go.stringmetrics - 在 Go 中实现的字符串距离度量
- go-tokenizer - Golang 的文本分词器库
- inflect - Word 屈折库(类似于 Ruby ActiveSupport::Inflector)。Singularize()、Pluralize()、Underscore() 等。
- libtextcat - libtextcat的 Go 包装器。
- nlp - 支持 LSA(潜在语义分析)的 Go 自然语言处理库。
- sego - 中文分割器。
- 雪球- 适用于多种语言的雪球词干分析器
- textcat - 基于 N-gram 的文本分类,支持 utf-8 和原始文本
记录和监控
- colog - CoLog 是 Go 的基于前缀的分级执行日志
- cue - 快速灵活的上下文记录器。支持输出到文件、系统日志、结构化系统日志、stdout/stderr、socket、Loggly、Honeybadger、Opbeat、Rollbar 和 Sentry。
- epazote - 自动化微服务主管。
- factorlog - 真正快速、功能强大的日志记录基础架构(支持颜色、详细程度和多种格式)
- glog - Go 的分级执行日志
- go-logging - 支持不同的日志记录后端,如系统日志、文件和内存。可以使用多个后端,每个后端和记录器的日志级别不同。
- gomol - 一个多输出日志库,设计用于支持带有日志消息的附加元数据的输出。
- gosrvmon - 自托管的正常运行时间监控系统。
- graylog-golang - graylog-golang 是一个完整的实现,用于将 GELF(Graylog 扩展日志格式)中的消息从 Google Go(Golang)发送到 Graylog
- haminer - 用于解析和转发 HAProxy 日志的库和程序
- immortal - *nix 跨平台(与操作系统无关)主管
- jWalterWeatherman - 与 fmt.Println 一样易于使用的无缝终端打印和文件记录
- kemba - 受debug启发的小型调试日志记录工具,非常适合 CLI 工具和应用程序。
- log4go - 类似于 log4j 的日志包
- logger - 使用缓冲输出和多个编写器进行日志记录
- logrus - Go 的结构化、可插入日志记录,带有第三方记录器的内置钩子:Airbrake、Papertrail、Loggly、Sentry ...
- MailJet Live Event Dashboard - API 实时监控。
- Monkit - 用于 Go 的灵活流程数据收集、度量、监控、检测和跟踪库
- Prometheus - 监控系统和时间序列数据库。
- rfw - 旋转文件编写器- 用于记录器的“logrotate”感知文件输出
- sd - 写入 systemd 日志,支持用户定义的 systemd 日志字段
- seelog - 灵活的调度、过滤和格式化
- snap - 遥测框架
- spacelog - Go 的分层、分级和结构化日志库
- statsgod - 在 Go 中重写 StatsD。
- syslog - 使用此软件包,您可以使用自己的处理程序为不同类型的 syslog 消息创建自己的 syslog 服务器
- Tideland golib - 灵活的日志记录
- 木材- Go 的可配置记录器
- ul - 通过 cgo 提供 macOS Sierra/OSX 统一日志记录功能
- vlog - Go 的标准日志上的级别日志
机器学习
- Anna - 人工神经网络 Aspiration,旨在成为自我学习和自我改进的软件。
- bayesian - 朴素贝叶斯分类器。
- ctw - 上下文树加权和 Rissanen-Langdon 算术编码
- Dialex - Dialex 是一种智能管道,可以解读文本并使其机器可读。
- evo - 在 Go 中实现进化算法的框架。
- go-algs/maxflow Maxflow(图形切割)能量最小化库。
- go-galib - 遗传算法。
- golinear - 线性 SVM 和逻辑回归。
- go-mind - 在 Go 中构建的神经网络库
- go_ml - 线性回归、逻辑回归、神经网络、协同过滤、高斯多元分布。
- gott - Go 的神经网络。
- go-porterstemmer - Porter Stemming 算法的高效原生 Go 洁净室实现。
- go-pr - 高斯分类器。
- gorgonia - 神经网络基元库(如 Theano 或 Tensorflow,但适用于 Go)
- mlwebservicego - 使用 Golang、Echo 和 Firebase 为机器学习模型提供服务。
- ntm -神经图灵机实现
- paicehusk - 执行 Paice/Husk Stemmer
- tfgo - Tensorflow + Go,gopher 方式。
数学
- bayesian - Go 的朴素贝叶斯分类
- blas - BLAS(基本线性代数子程序)的 Go 实现
- cartconvert - Go 编程语言的制图函数
- 选择-从N 个项目中生成M个的所有组合
- clp - COIN-OR 线性规划(CLP)库的 Go 绑定
- Cvx - 凸优化包,CVXOPT python 包的端口
- 十进制- 高性能任意精度十进制浮点运算包
- 骰子- 骰子滚动库
- evaler - 一个简单的浮点算术表达式求值器
- fixed - 一个定点(Q32.32 格式)数学库
- geom - 二维几何
- gini - SAT 求解器/布尔逻辑工具
- gochipmunk - 绑定到 Chipmunk 物理库
- gocomplex - 一个复数库
- godec - 多精度十进制算术
- gofd - 并发有限域约束求解器。
- go- fftw - FFTW 的 Go 绑定 - 西方最快的傅立叶变换
- go-fn - 不适合“数学”包的特殊函数
- gographviz - 用于 Go 的 Graphviz DOT 语言解析器
- go-gt - 图论算法
- go-humanize - 为人类格式化数字。
- golibs/xmath - 数学函数的集合(主要是算法)
- go-lm - Go 中的线性模型。通过 cgo -> BLAS/LAPACK 接口提供 WLS 和带有 t 残差的回归。
- go.mahalanobis - 使用 go.matrix 对马哈拉诺比斯距离的简单实现
- gomat - 轻量级 FAST 矩阵和向量数学
- go_matrix_cuda - 基于 CUDA 的 GPU 加速线性代数库
- go.matrix - 线性代数包
- gonum - 科学包(线性代数、BLAS、LAPACK、微分、绘图、线性规划、统计等)
- go-symexpr - 符号数学作为具有导数、简化和非线性回归的 AST
- gsl - GNU 科学图书馆绑定
- 人性化- 将大数字格式化为人类可读的小数字
- 间隔- 包间隔处理位于两个(可能是无限的)边界之间的有序值集。
- mathutil - 包 mathutil 提供了补充标准 'math' 和 'rand' 包的实用程序。
- mt19937_64 - Mersenne Twister int64 随机源
- 排列- 包排列生成切片索引的排列
- polyclip.go - 二维多边形布尔运算算法的实现
- primegen.go - 阿特金素数生成器的筛选
- prime - 分段筛和非分段筛的 Go 版本以生成素数
- 素数- 处理素数的简单功能。
- pso-go - Go 的 PSO(粒子群优化)库。
- rand - 具有梅森扭曲器支持的 math/rand 包的 64 位版本。
- roger - RServer 的 Go 客户端,允许您从 Go 调用 R 程序。
- sparse - 用于线性代数的稀疏矩阵格式,支持科学和机器学习应用程序,与gonum矩阵库兼容。
- 统计- GNU GSL 统计 (GPLv3)
- stats - Golang 标准库中缺少常用函数的统计包。
- Tideland golib - 用于统计分析的数值包
- 单位- 为一些常见的物理类型实现类型、单位、转换器函数和一些数学。库
- vector - 一个小的矢量库。
微服务
- car_registration - 全球汽车注册数据的 API 包装器
- go-doudou - 基于八卦协议和 OpenAPI 3.0 规范的去中心化微服务框架。内置 go-doudou cli 专注于低代码和快速开发可以提高您的生产力。
- gokit - Go Kit 微服务框架(和作者访谈)。
- go-micro - Go Micro 是一个微服务库,它提供了用于大规模编写容错分布式系统的基本构建块。
- kite - RPC 服务器和客户端框架。
各种各样的
- atexit - 简单的 atexit 库
- biogo - Go 语言的基本生物信息学功能。
- Breaker - Breaker 通过使用断路器原语包装不可靠的服务间接口点来实现优雅的降级模式操作。
- btcrpcclient - 启用 Websocket 的比特币 JSON-RPC 客户端。
- cast - 在 Go 中安全且轻松地从一种类型转换为另一种类型
- CGRates - 旨在用于电信运营商世界的评级系统
- cpu - 报告处理器拓扑的 Go 包
- cron - 用于按 cron 格式的计划运行作业(funcs)的库
- daemonigo - 一个用于守护 Go 应用程序的简单库。
- dbus-go - D-Bus Go 库
- 桌面- 使用默认应用程序打开文件/uri(跨平台)
- devboard - 基于 Simple-Khanban 的看板应用
- dioder-api - 宜家二极管 LED 灯条的 API
- doublejump - 改进后的 Google 跳转一致性哈希
- dump - 转储 Go 变量的实用程序,类似于 PHP 的 var_dump
- elPrep - 用于在 DNA 测序管道中准备序列比对/映射文件的高性能工具
- env - 使用默认值轻松提取环境变量
- epub - libepub 读取 epub 内容的绑定。
- EventBus - 具有异步兼容性的轻量级事件总线 Go .
- faker - 生成虚假数据、姓名、文本、地址等。
- fasturl - 使用 Ragel 状态机的高性能 URL 解析库。
- fsnotify - Go 的文件系统通知
- 功能- 函数式编程库,包括惰性列表实现和一些最常用的功能。
- 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电话平台的事件套接字客户端 / 服务器库。
- 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 客户端库
- goturo - NeuroSky 设备的 Go 驱动程序。
- goNI488 - National Instruments NI488.2 通用接口总线(GPIB)驱动程序的 Go 包装器。
- go-osx-plist - 对 Go 的 CoreFoundation 属性列表支持
- go-papi - 转到 PAPI 性能 API 的接口
- go.pcsclite - pcsc-lite 的封装
- Go-PhysicsFS - PhysicsFS 归档访问抽象库的 Go 绑定。
- go.pipeline - 模拟 Unix 管道的库
- go-pkg-mpd - 访问 MPD 音乐守护进程的库
- go-pkg-xmlx - 标准 Go XML 包的扩展。维护一个节点树,允许向前/向后浏览器并公开一些简单的单/多节点搜索功能
- goplan9 - 用于与 Plan 9 交互的库
- goPromise - 类似计划的 Go 延迟评估
- go-qrand - 在 random.irb.hr 上为量子随机位生成器服务的 Go 客户端
- goraphing - 从 JSON 数据文件生成简单图形数据结构的工具
- go-selenium - 用于 Go 的 Selenium WebDriver 客户端
- go-semvar - 语义版本(参见 http://semver.org)
- go-serial - 绑定到 libserialport 以实现串行端口功能 (cgo)。
- goST - 为 Go 编写的蒸汽属性(蒸汽表)库。这被设计为相当于 XSteam 的原生 Go。
- go-taskstats - Linux taskstats 的 Go 接口
- gotenv - 从
.env
文件加载环境变量 - Gotgo - 提供泛型实现的 Go 预处理器
- go-translate - Google 语言翻译库
- go-uuid - 通用唯一标识符生成器和解析器
- gouuid - 与 RFC4122 兼容的 Pure Go UUID v3、4和 5 生成器
- go-villa - 一些杂项包装器和小算法。(切片的包装器、优先级队列、路径相关的 api、字符串集类型)
- go-wkhtmltopdf - wkhtmltopdf Go 绑定和用于 HTML 到 PDF 转换的高级接口。
- Hranoprovod - 命令行卡路里跟踪
- lineup - 一个简约的消息队列服务器
- 缓解- 包缓解提供了防止由错误或漏洞造成的损害的可能性。
- nject - 类型安全的依赖注入
- nma.go - 用于 Go 的 NotifyMyAndroid 客户端。
- notify - 具有类似于 os/signal 的 API 的文件系统事件通知库。
- pargo - 在 Go 中进行并行编程的库。
- passwd - /etc/passwd 文件的解析器
- pool - 通用工作池
- procfile - Procfile 解析器
- Prometheus Instrumentation/Metrics Client - 这是一个用 Go 编写的服务器的白盒检测框架。它自动公开以编程方式生成的指标,以便在 Prometheus 时间序列收集和后处理环境中使用。
- randat - 用于以代码友好的形式生成随机字节串和编码文件的开发工具
- recycler - 比 sync.Pool 更灵活的对象回收系统。为对象提供构造函数和析构函数,并控制空闲长度。
- replaykit - 用于重放时间序列数据的库。
- serial - 串行端口 API(纯 Go)
- sio - 包 sio 可让您访问旧的串行垃圾。它是一个易于使用的 fork 和dustin 的 rs232 包的修改。
- stats - 监控 Go MemStats + 系统统计信息,例如内存、交换和 CPU,并通过 UDP 发送到您想要记录的任何地方等...
- symutils - 处理符号链接的各种工具和库
- toktok - 创建和解决独特的、错字和错误弹性的、人类可读的令牌
- twitterfetcher - 使用仅应用程序身份验证发出 Twitter API 请求的工具
- udis86 - 绑定 libudis86
- ugo - underscore.js 像 Go 的工具箱
- Vboxgo - 像用户一样从 Go 访问 VirtualBox VM。
- 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-csnd6 - 绑定到 Csound6 API
- go-csperfthread - 绑定到 Csound6 API 的 CsoundPerformanceThread 辅助类
- go-libshout - 绑定 libshout
- gompd - MPD(音乐播放器守护程序)的客户端界面
- launchpad - Novation Launchpad 的 Go 客户端
- portmidi - 绑定 libportmidi
联网
域名系统
- bitz - BitMessage 客户端节点和库
- dingo - Go 中的 DNS 客户端,通过 HTTPS 支持 Google DNS
- dns - Go 中的客户端和服务器实现
- dns - Go 中的 DNS 库
- dnsimple - DNSimple API 的接口
- dnss - DNS 安全代理,支持 DNS over HTTPS 和 GRPC
- domainerator - 将单词列表和后缀 / TLD 组合到域名中并检查它们是否已注册的命令行工具。
- dyndnscd - 一个可配置的 dyndns 客户端
- GeoDNS - 地理感知权威 DNS 服务器
- grong - 小型权威 DNS 名称服务器
- hostsfile - /etc/hostsfile 反向查找 IP => 名称
- lib/dns - 客户端或服务器的 DNS 库,支持 UDP、TCP 和 DNS over HTTPS
- mdns - Go 的多播 DNS 库
- rescached - DNS 解析器缓存守护进程
FTP
- ftp4go - Go 的 FTP 客户端,作为标准 Python FTP 客户端库的端口启动
- ftp - 包 ftp 提供了 RFC 959 中定义的最小 FTP 客户端
- ftps - FTPS 协议的实现
- goftp - FTP 客户端库
HTTP
- apiproxy - 具有可配置缓存超时的 HTTP/REST API 代理
- 繁荣- HTTP(s)基准测试工具,Apache Benchmark替代品
- Ddosify - 用 Golang 编写的高性能负载测试工具
- eventsource - 服务器发送的 net/http 服务器事件。
- fasthttp - Go 的快速 HTTP 包
- gbench - 受 Apache Benchmark 和 Siege 启发的 HTTP(s) 负载测试和基准测试工具。
- gobench - HTTP/HTTPS 负载测试和基准测试工具
- go-curl - 支持 go func 回调的 libcurl 绑定
- goproxy - 一个可编程的 HTTP 代理。
- gostax - 用于 XML (StAX) 的流 API
- handlers - 有用的 HTTP 中间件的集合。
- HTTPLab - HTTPLabs 可让您检查 HTTP 请求并伪造响应。
- httpmock - 轻松模拟来自外部资源的 HTTP 响应
- httptail - 工具将 stdout/stderr 推送到 http 分块
- sling - 用于创建和发送 API 请求的 Go HTTP 客户端库。
- 压力- 替换 ApacheBench(ab),支持事务请求,支持命令行和包引用到 HTTP 压力测试工具。
IMAP
即时通讯
- gobir - 具有通道管理、可见支持和 go 文档查询功能的可扩展 IRC 机器人
- goexmpp - XMPP 客户端实现
- goirc - 基于事件的有状态 IRC 客户端框架
- go-irc - 简单的 IRC 客户端库
- gorobot - 模块化 IRC 机器人
- go-xmpp - XMPP 客户端库
- hanu - 编写 Slack 机器人的框架
- ircflu - 支持命令、脚本和网络钩子的 IRC 机器人
- irc.go - 去 IRC 机器人框架
mellium.im/xmpp
一个低级 XMPP 客户端和服务器库,专注于良好的文档和干净、可用的 API- Sirius - [链接已断开] 用 Go 编写的快速且超轻量级的聊天服务器
- xmpp-client - 具有 OTR(非记录)支持的 XMPP 客户端
NNTP
- go-nntp - 用于 go 的 NNTP 客户端和服务器库
协议缓冲区
- gogoprotobuf - Protocol Buffers 的另一个 Go 实现,但带有扩展和代码生成插件。
- golang_protobuf_extensions - 支持流消息编码和解码的协议缓冲区扩展。
- goprotobuf - Google 协议缓冲区的 Go 实现
- protorpc - 用于 Go 和 C++ 的 Google Protocol Buffers RPC
同步
- replican-sync - Go 中的 rsync 算法实现
- Rsync - Rsync 算法作为 Go 库
远程登录
- telnet - 包 telnet 为 Go 编程语言提供 TELNET 和 TELNETS 客户端和服务器实现,其风格类似于“net/http”库(这是 Go 标准库的一部分),包括对“中间件”的支持;TELNETS 是安全的 TELNET,具有基于安全 TLS(或 SSL)连接的 TELNET 协议。
- telnet - 与 Telnet 连接交互的简单界面
- telnets - TELNETS(安全 TELNET)协议的客户端。
虚拟网络
- glibvnc - 使用 CGO 为 libvnc 库进行包装。
网络套接字
- Gorilla WebSocket - WebSocket 协议实现
- lib/websocket - 用于编写 websocket 客户端和服务器的库(使用 epoll)
- websocketd - 将 STDIN/STDOUT 程序转换为 WebSockets 服务的 HTTP 服务器。还处理 HTML 和 CGI。
- ws-cli - WebSocket 命令行客户端
- wst - 一个简单的 WebSocket 测试器
零MQ
- goczmq - CZMQv3 接口的包装器 -博客文章
- gozmq - 0mq (zeromq/zmq) 的绑定
- 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 的接口
- createdend-go - Monitor http://www.campaignmonitor.com(电子邮件活动服务)的API 客户端
- cwmp-proxy - 反向 cwmp 代理
- dmrgo - 带有 Hadoop 流映射/减少的库
- doozerconfig - 在 Doozer 中管理 json 编码配置的 Go 包
- doozerd - 一致的分布式数据存储
- Go 服务器的无休止零停机重启(替代 http.ListenAndServe/TLS)
- gearman-go - 带有 Go 的 Gearman API 的本机实现。
- Glue - 强大的 Go 和 Javascript Socket 库(替代 Socket.io)
- goagain - Go 中的零停机重启
- Go Ajax - Go Ajax 是一个 JSON-RPC 实现,旨在创建 AJAX 驱动的网站。
- gobeanstalk - Go Beanstalkd 客户端库
- go-camo - 转到 http 图像代理(迷彩克隆)以通过 SSL 路由图像
- go-dbus - 连接到 D-bus 消息传递系统的库
- go-diameter - 直径堆栈和基本协议 (RFC 6733)
- go-flowrate - 数据传输速率控制(监控和限制)
- gogammu - 发送和接收短信的库
- go-icap - ICAP(互联网内容适配协议)服务器库
- Gollum - 一个 n:m 多路复用器,它收集来自不同来源的消息并将它们广播到一组目的地。
- go-nat-pmp - Apple 和开源路由器中使用的 NAT-PMP 协议的客户端
- gottbench - 简单的 TCP 基准测试工具
- gottcheck - 检查一般互联网访问的包
- goodhosts - Go 中的简单主机文件 (/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
- gosnmp - 用 GoLang 编写的 SNMP 库。
- go-socket.io - 用 Go 编写的 Socket.IO 后端实现
- gosocks - Go 中的 SOCKS(SOCKS4、SOCKS4A 和 SOCKS5)代理客户端库。
- go-sslterminator - SSL 终止代理
- go-statsd-client - 去 statsd 客户端库
- Grumble - Mumble (VoIP) 服务器实现
- handlersocket-go - 连接到 InnoDB 表的 HandlerSocket 接口的本地库
- HomeControl - Apple 的 HomeKit 附件协议 (HAP) 的实现
- Hprose - Hprose 是一个高性能远程对象服务引擎。
- httpfstream - 流式附加和跟踪 HTTP 资源(使用 WebSockets)
- humanize-bytes - 将“MiB”等转换为原始数字并返回的命令行实用程序
- ipaddress - 方便的ip地址功能:ip -> int,int -> ip,以及IPNet广播地址
- iris-go - Iris 去中心化消息传递框架的 Go 绑定。
- iris - 用于后端去中心化的点对点消息传递。
- kafka.go - Kafka 消息系统的生产者和消费者
- lcvpn - 去中心化 VPN 实施
- ldap - GO 编程语言的基本 LDAP v3 功能。
- mbxchan - 使用标准 Go 通道和远程过程调用的分布式 Go 应用程序之间的轻松通信。
- mqtt - Go 中的 MQTT 堆栈
- nagiosplugin - 用于编写 Nagios/监控插件的包
- NATS - 用于 Go 的 NATS 分布式消息传递系统客户端
- netsnail - 低带宽模拟器
- netstat-nat - 在 Linux 系统上显示 NAT 条目
- netutils - 用于将 TCP 套接字转换为通道的简单接口。
- norm - 使用多播和单播套接字的可靠 UDP
- npipe - Windows 命名管道的纯 Go 包装器
- opendap - Openldap 的包装器
- pusher-http-go - 用于与 Pusher Realtime API 交互的 Go 库
- QRP - QRP 是一个简单的基于数据包的 RPC 协议,旨在作为 Go 的 rpc 的简单替代品,可以在 UDP 上运行
- remotize - 一个 remotize 包和命令,可帮助 remotizing 方法,而无需更改它们的 rpc 签名
- Resgate - 用于 NATS 的实时 + REST API 网关,可使用实时数据创建 Web API
- rs232 - 我们这些仍然拥有调制解调器(或 arduinos)的人的串行接口
- rss - RSS 解析库。
- 无缝- 使用 HTTP 管理 API 反向 TCP 代理
- sftp -draft-ietf-secsh-filexfer-02.txt 中定义的 SSH 文件传输协议 v3。
- shell2http - 通过简单的 http 服务器执行 shell 命令
- sockjs-go - 为 SockJS 客户端浏览器库实现服务器端对应物。
- SOCKS5 服务器- 具有访问控制列表的可扩展 SOCKS5 服务器
- spark - 紧急网络服务器(用于静态文件)
- spdy - SPDY 库,连接到 net/http,目前仅支持服务器。
- statsd-go - Go 中的 Statsd 实现,从 gographite 分叉,提交给 Ganglia
- stompngo_examples - stompngo 的示例。
- stompngo - 符合 Stomp 1.1 的客户端
- tcp_fallback - 实现简单回退机制的 TCP 代理。
- tcpmeter - TCP 吞吐量测量工具
- toxiproxy - 模拟网络条件的框架。
- traceroute - 跟踪路由实现
- traefik - Go 中的现代反向代理
- Uniqush - 一个免费的开源软件,它为移动设备上的应用程序提供统一的服务器端通知推送服务。
- uritemplates - URI 模板的第 4 级实现(RFC 6570)
- VDED - Vector Delta Engine Daemon - 跟踪不断增加的值的增量(用 Go 编写)
- zero-downtime-daemon - 可配置的零停机守护程序(热更新)框架,适用于任何类型的 TCP、HTTP、FCGI 服务
- zeroupgrade - 以零停机时间升级网络服务器
操作系统接口
- Go FUSE 文件系统库- 基于 Russ Cox' 的内核用户空间通信协议的从头实现。
- Go-fuse - 在 Go 中编写 FUSE 文件系统的库
- go-nbd - 在 Go 中为 Linux 编写块设备的库。
- go-osx-xattr - 包 xattr 包装 OS X 函数来操作文件、目录和符号链接的扩展属性。
- 检查/操作系统- 用于操作系统测量的指标库(Linux/MacOSX)
- service - 服务将在 Windows/Linux 和 OSX 上安装/卸载、启动/停止和将程序作为服务(守护进程)运行。
其他随机玩具、实验和示例代码
- goconc - Go 的有用并发习语和函数的集合,已编译
- go-crazy - go的实验性源到源编译器
- go-gtk-demo - 如何在 Go 中使用 GTK+的演示。
- go-hashmap - 作为 Go 性能实验的纯 Go 哈希表
- golang-examples - 一堆 golang 示例
- GolangSortingVisualization - Go 中各种排序算法的可视化
- golibs - 一个小型 go 包的集合(也是各种 CI 和覆盖服务的测试仓库)
- goplay - Go 中的一堆随机小程序
- lifegame-on-golang - 围棋生活游戏
- 线性- 玩弄线性代数
- pl0 - PL/0 前端、编译器和 VM。.
- go中的项目 euler - Go 中的项目 Euler 的解决方案
- shadergo - 使用 Go 进行着色器测试
- travisci-golang-example - Go 的 Travis-CI 示例
P2P 和文件共享
- DHT - 台北种子使用的 Kademlia DHT 节点,与 BitTorrent 兼容
- DHT - BitTorrent DHT 协议和 DHT 蜘蛛。
- ed2kcrawler - eDonkey2000 链接爬虫
- gop2p - 一个简单的 p2p 应用程序来学习围棋
- go-p2p - 用于区块链等的 P2P 模块
- GoTella - Gnutella 协议的 Go 实现
- Rain - BitTorrent 客户端和库
- 台北种子- BitTorrent 客户端
- Tendermint - P2P 拜占庭容错共识和区块链堆栈
- wgo - 部分基于Taipei-Torrent 和gobit 代码的简单BitTorrent 客户端
编程
- go-clang - cgo 绑定到 libclang 的 C-API
- 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 shuffle(或 Knuth shuffle)。
资源嵌入
- fileb0x - 将文件嵌入到 go 中的简单工具,专注于“定制”和易用性。
- go-bindata - 将任何文件转换为可管理的 Go 源代码的包。
- go-resources - 嵌入 Go 的非花哨资源。
- go.rice - go.rice 是一个 Go 包,它使处理 html、js、css、图像和模板等资源变得非常容易。
- 植入- 植入允许从一系列目录(递归)嵌入静态资源。
- statics - 将静态资源嵌入到 go 文件中以进行单个二进制编译 + 与 http.FileSystem + 符号链接一起使用。
RPC
扫描器和解析器生成器
- ebnf2y - 用于将 EBNF 语法转换为 yacc 兼容的骨架 .y 文件的实用程序。
- flexgo - 可以生成 Go 代码的 flex 版本。
- fsm - FSM(NFA,DFA)实用程序。
- gocc - Go 编译器编译器
- golex - Lex/flex 类快速(DFA)扫描仪生成器。
- gopp - 去解析器解析器
- goyacc -Goyacc 是生成 Go 解析器的 yacc 版本。
- lexmachine - Golang词法分析框架
- Ragel - 状态机编译器
- y - 包 y 将 .y (yacc) 源文件转换为适合解析器生成器的数据。
- yy - yacc 到 yacc 编译器。
安全
- acme - ACME 证书获取工具
- acra - SQL 数据库保护套件:强选择性加密、SQL 注入预防、入侵检测系统
- casbin - 支持 MAC、RBAC、ABAC 等访问控制模型的授权库
- docker-slim - 容器安全和优化
- gryffin - 雅虎的大型安全扫描仪!
- hyperfox - 用于代理和记录 LAN 上 HTTP 和 HTTPs 通信的安全工具
- lego - 让我们加密客户端和 ACME 库
- webseclab - Web 安全测试用例的示例集和构建新测试用例的工具包
仿真建模
- Godes - 用于构建离散事件模拟模型的库
排序
- 冒泡排序-冒泡排序算法的最小实现
- 鸡尾酒调酒器排序-鸡尾酒调酒器排序算法的最小实现
- funnelsort - 懒惰漏斗排序 - 一种缓存遗忘的排序算法
- Sortutil - Go 的嵌套、不区分大小写和反向排序。
- sortutil - Go 标准“sort”包的补充工具
- tarjan - 基于 Tarjan 算法的图循环检测功能
- timsort - 快速、稳定的排序,使用外部比较器或 sort.Interface
源代码管理
- Gitfile - 用于安装 git repos 的轻量级包管理器
- go-deps - 分析并递归安装 Go 包 deps(库功能类似于
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 扩展
- 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 - 二进制差异和补丁
- 黑色星期五- 降价处理器
- 代号生成器- 用于命名软件版本的代号生成器
- columnize - 将切片或数组格式化为对齐的列
- csvplus -使用流畅的界面、惰性流操作、索引和连接扩展标准 Go编码 / csv包。
- csvutil - 一个重型 CSV 读写库。
- dgohash - 字符串散列函数的集合,包括 Murmur3 等
- 柔雅系列-一个简单的CSS解析器和衬里在Go。
- dsv - 用于处理定界分隔值 (DSV) 的库。
- 通量- golang 中的流畅正则表达式
- frontmatter - 用于检测和解码各种内容前端格式的 Go 库。
- genex - 正则表达式的扩展
- gettext-go - GNU 的 gettext 支持,用纯 Go 编写
- gettext - gettext 的Golang 绑定;功能完成,cgo
- goagrep - 使用预计算的快速模糊字符串匹配
- go-colortext - 更改控制台中文本和背景的颜色,适用于 Windows 和其他系统。
- go-guess - 为 libguess 封装
- goini - 解析 INI 文件的 go 库
- golorem - lorem ipsum 生成器
- go-migemo - go 的 migemo 扩展(日语增量文本搜索)
- Go-ngram用于 Go 的 N-gram 索引
- goregen - 用于从正则表达式生成随机字符串的 Go 库。
- goskirt - Go 的Upskirt markdown 库绑定
- gosphinx - Sphinx 独立全文搜索引擎的 Go 客户端界面
- govalidator - 字符串验证器和消毒器包
- gpKMP - 使用 Knuth Morris Pratt 算法在 Go 中进行字符串匹配
- 韩文-方便的工具来操作韩文字符
- html2text - Golang HTML 到文本转换库
- 实习生- 将字符串映射到符号以进行恒定时间比较
- kasia.go - HTML 和其他文本文档的模板系统
- kview - kasia.go 模板的简单包装器。它有助于模块化网站的内容
- Liquid - Shopify Liquid 模板的完整实现
- logparse - 最常见日志格式的解析器
- NTemplate - 嵌套模板
- parse - 使用反射来定义语法的 PEG 解析器
- peg - 解析表达式语法分析器
- 鸽子- 用于 Go 的解析表达式语法 (PEG) 解析器生成器
- 复数- 无需大惊小怪的复数形式,用于格式化可数和连续范围的值。
- polyglot - Go 的字符串翻译实用程序
- Pretty.go - go 值的漂亮打印
- raymond - Go 中完整的车把实现。
- rubex - 一个简单的正则表达式库,支持 Ruby 的正则表达式语法。它比正则表达式快。
- sanitize - 包 sanitize 提供了清理 html 和文本的功能。
- 扫描器- 一种解析原始类型的文本扫描器,类似于 Java 的
- segment - Norvig 递归分词算法的实现
- sprig - Go 模板的模板函数。
- strftime - strftime 实现
- strit - 包 strit 引入了一种新类型的字符串迭代器,以及许多迭代器构造函数、包装器和组合器。
- strogonoff - Go 速记
- strutil - 用于计算字符串相似度和其他字符串实用函数的 Golang 指标。
- strutil - 包 strutil 收集补充标准字符串包的 utils。
- text - 文本段落换行和格式设置
- Tideland golib - 用于统计分析的 Stringex 包
- TySug - 关于键盘布局的替代建议。
- useragent - 用户代理字符串解析器
- xurls - 从文本中提取 url
测试
- assert - 断言进行测试。
- assert - 方便的断言包。
- assert - 与本机 go 测试一起使用的基本断言库,带有用于自定义断言的构建块
- assert - 类似 JUnit 的断言,带有极好的错误消息
- biff - 分叉测试框架,BDD 兼容。
- charlatan - 为测试生成假接口实现的工具。
code.soquee.net/testlog
Alog.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 - 银杏的首选匹配库。
- gomock - Go 的模拟框架。
- GoSpec - BDD 框架
- gospecify - 另一个 BDD 框架
- go-stat - Go 的高性能检测/分析
- go-tap - Go 中的 TAP(测试任何协议)解析器
- go-testdeep - 极其灵活的深度比较,扩展了测试包
- go-test-report - 捕获 go test 输出并将其解析为一个独立的 HTML 文件。
- gotestsum - 具有可定制和彩色输出的测试运行器
- gotest.tools - 一组用于编写可读测试的包
- gounit - 用于 Go 的xunit
- GSpec -富有表现力、可靠、并发和可扩展的Go 测试框架,可以有效地组织和验证软件的思维模型。
- httpexpect - 简洁、声明式且易于使用的端到端 HTTP 和 REST API 测试
- make.go.mock - 为 Go 接口和函数生成类型安全的模拟。
- mspec - BDD 框架,可让您首先使用自然 BDD 语言对代码进行存根和规范。
- muxy - 模拟真实世界的分布式系统故障。
- Nitro - 一个快速简单的 Go 分析器
- Pegomock - 基于golang/mock 的模拟框架,但使用与Mockito密切相关的 DSL 。
- 具有集成收缩功能的基于属性的快速测试库
- terst - 一个简洁、易于使用的 Go 测试库
- test2doc - 从您的单元测试中为您的 go 单元生成文档。
- testfixtures - Rails 之类的测试装置,用于测试数据库驱动的应用程序。
- testflight - Go 中的无痛 http 测试
- Testify - 一组包,提供了许多工具来证明您的代码会按照您的预期运行。
- ut - 没有魔法的很棒的模拟。
转译器
验证
以上就是go语言开发的程序有哪些的详细内容,更多请关注php中文网其它相关文章!