精选的 Go 框架,库和软件的精选清单

来自:https://learnku.com/articles/41230

精选的 Go 框架,库和软件的精选清单

概述

这是一个 Go 相关的框架,库和软件的精选清单,引用自 awesome-go 项目,并翻译补充而来这是一个 Go 相关的框架,库和软件的精选清单,引用自 awesome-go 项目,并翻译补充而来

如果看到不再维护的项目,请及时联系发帖者或留言,谢谢!*

音频和音乐

用于处理音频的库。

  • EasyMIDI -EasyMidi 是一个简单可靠的库,用于处理标准 Midi 文件(SMF)。

  • flac 支持 FLAC 流的 Native Go FLAC 编码器 / 解码器。

  • gaad 机 Go AAC 比特流解析器。

  • go- sox - 用于 go 的 libsox 绑定。

  • go_mediainfo- 用于 go 的 libmediainfo 绑定。

  • gosamplerate- 用于 go 的 libsamplerate 绑定。

  • id3v2- 用于 Go 的快速,稳定的 ID3 解析和编写库。

  • malgo- 迷你音频库。

  • minimp3- 轻量级 MP3 解码器库。

  • mix - 为音乐应用程序基于序列转到本地音频混合器。

  • mp3 -Native Go MP3 解码器。

  • music-theory -Go 中的音乐理论模型。

  • Oto- 在多个平台上播放声音的低级库。

  • PortAudio- 用于 PortAudio 音频 I / O 库的绑定。

  • portmidi- 绑定 PortMidi。

  • taglib- 为 taglib 绑定。

  • vorbis- “本机” Go Vorbis 解码器(使用 CGO,但没有依赖项)。

  • waveform -Go 程序包,能够从音频流生成波形图像。

身份验证和 OAuth

用于实施认证方案的库。

  • authboss -Web 的模块化身份验证系统。它尝试删除尽可能多的样板文件和 “硬东西”,以便每次在 Go 中启动新的 Web 项目时,都可以将其插入,配置并开始构建应用程序,而不必每次都构建身份验证系统。

  • branca -Branca 令牌的 Golang 实现。

  • casbin 授权库,支持访问控制模型,如 ACL,RBAC,ABAC。

  • cookiestxt 提供 cookies.txt 文件格式的解析器。

  • go-jose -JOSE 工作组的 JSON Web 令牌,JSON Web 签名和 JSON Web 加密规范的相当完整的实现。

  • go-oauth2 server - 用 Golang 编写的独立,符合规范的 OAuth2 服务器。

  • gologin 用于使用 OAuth1 和 OAuth2 身份验证提供程序登录的可链接处理程序。

  • gorbac 提供基于角色的轻量级访问控制(RBAC)实现。

  • goth - 提供一种简单,干净且惯用的方式来使用 OAuth 和 OAuth2。开箱即用地处理多个提供程序。

  • httpauth -HTTP 身份验证中间件。

  • jeff 具有可插拔后端的简单,灵活,安全且惯用的 Web 会话管理。

  • jwt 干净且易于使用的 JSON Web 令牌(JWT)实现。

  • jwt 轻量级 JSON Web 令牌(JWT)库。

  • jwt-auth auth - 用于 Golang http 服务器的 JWT 中间件,具有许多配置选项。

  • jwt-go -JSON Web 令牌(JWT)的 Golang 实现。

  • loginsrv- 具有可插入后端的 JWT 登录微服务,例如 OAuth2(Github),htpasswd 和 osiam。

  • oauth2 -goauth2 的后继者。JWT,Google API,Compute Engine 和 App Engine 支持随附的通用 OAuth 2.0 程序包。

  • osin -Golang OAuth2 服务器库。

  • paseto 与平台无关的安全令牌(PASETO)的 Golang 实现。

  • permissions2 2 - 用于跟踪用户,登录状态和权限的库。使用安全的 cookie 和 bcrypt。

  • rbac- 用于 Go 应用程序的简约 RBAC 软件包。

  • scope - 在 Go 中轻松管理 OAuth2 范围。

  • scs -HTTP 服务器的会话管理器。

  • securecookie- 高效的安全 cookie 编码 / 解码。

  • session -Web 服务器的 Go 会话管理(包括对 Google App Engine-GAE 的支持)。

  • sessiongate- go - 使用 SessionGate Redis 模块进行 Go 会话管理。

  • sessions - 用于 go http 服务器的简单,高性能,高度可定制的会话服务。

  • sessionup- 简单但有效的 HTTP 会话管理和标识包。

  • signedvalue - 签署并兼容时间戳的字符串龙卷风 create_signed_valuedecode_signed_value 以及因此 set_secure_cookie 而 get_secure_cookie

  • sjwt- 简单的 jwt 生成器和解析器。

机器人

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

  • go-chat- bot - 用 Go 编写的 IRC,Slack 和 Telegram 机器人。

  • go- joe - 受 Hubot 启发但用 Go 编写的通用 bot 库。

  • go-sarah- 为所需的聊天服务(包括 LINE,Slack,Gitter 等)构建机器人的框架。

  • go-tgbot- 纯 Golang 电报 Bot API 包装器,由 swagger 文件,基于会话的路由器和中间件生成。

  • go-twitch-irc- 库为 twitch.tv 聊天写机器人

  • Golang CryptoTrading Bot - 基于控制台的交易机器人的 golang 实现,用于加密货币交易。

  • govkbot- 简单的 Go VK 机器人库。

  • hanu- 编写 Slack 机器人的框架。

  • stellar(Kelp)-Stellar DEX 的官方交易和做市机器人。开箱即用,用 Golang 编写,可与集中交易和自定义交易策略兼容。

  • margelet- 构建 Telegram 机器人的框架。

  • micha- 用于电报 Bot API 的库。

  • slacker- 易于使用的框架来创建 Slack 机器人。

  • slackscot- 用于构建 Slack 机器人的另一个框架。

  • tbot- 具有类似于 net /http 的 API 的电报 bot 服务器。

  • telebot- 用 Go 编写的电报 bot 框架。

  • telegram-bot-api- 简单干净的 Telegram bot 客户端。

  • Tenyks- 使用 Redis 和 JSON 进行消息传递的面向服务的 IRC 机器人。

命令行

标准 CLI

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

  • 1build- 命令行工具,可轻松管理特定于项目的命令。

  • argparse- 受 Python 的 argparse 模块启发的命令行参数解析器。

  • argv -Go 库使用 bash 语法将命令行字符串拆分为参数数组。

  • CLI - 基于 golang 结构标签易于使用的命令行包功能丰富。

  • cli- 用于在 Go 中构建命令行界面的简单而完整的 API。

  • cli- init - 开始构建 Golang 命令行应用程序的简单方法。

  • climax - 按照 Go 命令的精神,具有 “人脸” 功能的替代 CLI。

  • clîr- 简单清晰的 CLI 库。无依赖关系。

  • cmd- 扩展标准 flag 软件包以支持子命令,并以 idomatic 方式提供更多支持。

  • cmdr- 一种 POSIX / GNU 样式,类似于 getopt 的命令行 UI Go 库。

  • cobra - 现代 Go CLI 交互的指挥官。

  • commandeer- 开发人员友好的 CLI 应用程序:根据结构字段和标签设置标志,默认值和用法。

  • complete- 在 Go + Go 命令 bash 完成中编写 bash 完成。

  • Dnote- 具有多设备同步功能的简单命令行笔记本。

  • docopt.go- 命令行参数解析器,它将使您微笑。

  • env- 基于标记的结构环境配置。

  • flag - 简单但功能强大的命令行选项解析库,用于支持围棋子。

  • flaggy- 强大而惯用的标志包,具有出色的子命令支持。

  • flagvar -Go 的标准 flag 软件包的标志参数类型的集合。

  • go-arg -Go 中基于结构的参数解析。

  • go-commander -Go 库可简化 CLI 工作流程。

  • go-flags -go 命令行选项解析器。

  • go-getoptions -Go 选项解析器,它启发了 Perl 的 GetOpt :: Long 的灵活性。

  • gocmd- 用于构建命令行应用程序的 Go 库。

  • hiboot cli- 具有自动配置和依赖项注入的 cli 应用程序框架。

  • job -JOB,将您的短期命令作为一项长期工作。

  • kingpin- 支持子命令的命令行和标志解析器。

  • liner - 用于命令行界面的类似于 readline 的库。

  • mitchellh / cli- 用于实现命令行界面的 Go 库。

  • mow.cli -Go 库,用于使用复杂的标志和参数解析和验证来构建 CLI 应用程序。

  • ops -Unikernel 生成器 / 协调器。

  • pflag -Go 的标志包的直接替换,实现 POSIX / GNU 样式的–flags。

  • readline- 纯的 golang 实现,根据 MIT 许可在 GNU-Readline 中提供大多数功能。

  • sand- 用于创建解释器的简单 API 等。

  • sflags- 基于结构的标志生成器,用于标志,urfave /cli,pflag,眼镜蛇,主销和其他库。

  • strumt- 创建提示链的库。

  • ts- 时间戳转换和比较工具。

  • ukautz / clif- 小型命令行界面框架。

  • urfave / cli- 简单,快速,有趣的软件包,用于在 Go 中构建命令行应用程序(以前为 codegangsta /cli)。

  • wlog- 支持跨平台颜色和并发性的简单日志记录界面。

  • wmenu- 用于 cli 应用程序的易于使用的菜单结构,提示用户做出选择。

高级控制台用户界面

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

  • asciigraph -Go 软件包,可在命令行应用程序中制作轻量级的 ASCII 线图 graph,而无需其他依赖项。

  • aurora - ANSI 终端颜色支持 fmt.Printf/sprintf 的。

  • cfmt- 受引导程序颜色类启发的上下文 fmt。

  • chalk - 直观的包装,用于美化终端 / 控制台输出。

  • colourize -Go 库,用于终端中的 ANSI 颜色文本。

  • ctc- 非侵入性跨平台终端颜色库不需要修改 Print 方法。

  • go-ataman -Go 库,用于在终端中呈现 ANSI 彩色文本模板。

  • go-colorable -Windows 的可着色书写器。

  • go-colortext- 用于在终端输出颜色的 Go 库。

  • go-isatty -golang 的 isatty。

  • go- prompt - 受 python-prompt-toolkit 启发,用于构建功能强大的交互式提示的库。

  • gocui- 极简主义 Go 库,旨在创建控制台用户界面。

  • gommon / color- 样式终端文本。

  • gookit / color- 终端颜色渲染工具库,支持 16 种颜色,256 种颜色,RGB 颜色渲染输出,与 Windows 兼容。

  • mpb- 终端应用程序的多进度条。

  • progressbar- 在每个 OS 中均可使用的基本线程安全进度条。

  • simpletable -Go 终端中的简单表。

  • tabby - 超级简单 Golang 表一个小小的图书馆。

  • tabular - 从命令行实用程序打印 ASCII 表,而无需将大量数据传递给 API。

  • termbox-go -Termbox 是用于创建跨平台基于文本的界面的库。

  • termdash- 基于 termbox 的并受 termui 启发的终端仪表板。

  • termui- 基于 termbox-go 的终端仪表板,其灵感来自 blessed-contrib

  • uilive- 用于实时更新终端输出的库。

  • uiprogress- 灵活的库,用于在终端应用程序中呈现进度条。

  • uitable- 使用表格数据提高终端应用程序可读性的库。

组态

用于配置解析的库。

  • cleanenv- 简约的配置读取器(来自文件,ENV,以及您想要的任何位置)。

  • config- 用于 Go 项目的轻量级但功能强大的配置包。

  • config- 云本机应用程序配置。仅两行将 ENV 绑定到结构。

  • config - JSON 或 YAML 配置与包装环境变量和标志解析。

  • configure- 通过多个来源提供配置,包括 JSON,标志和环境变量。

  • confita- 从多个后端以级联方式将配置加载到结构中。

  • conflate - 图书馆 / 工具合并来自任意 URL,验证多个 JSON / YAML / TOML 文件针对 JSON 模式,并在架构中定义的默认值应用。

  • ENV - 解析环境变量去结构(使用默认值)。

  • envcfg 环境变量解编为 Go 结构。

  • envconf- 来自环境的配置。

  • envconfig- 从环境变量中读取您的配置。

  • envh- 帮助程序管理环境变量。

  • gcfg- 将 INI 样式的配置文件读取到 Go 结构中;支持用户定义的类型和子节。

  • genv- 通过 dotenv 支持轻松读取环境变量。

  • go-ssm-config -Go 实用程序,用于从 AWS SSM(参数存储)加载配置参数。

  • go-up- 一个简单的配置库,具有递归占位符解析度,没有魔术。

  • goConfig- 将结构解析为输入,并使用命令行,环境变量和配置文件中的参数填充此结构的字段。

  • godotenv -Ruby 的 dotenv 库的 Go 端口(从加载环境变量.env)。

  • gofigure Go 应用程序的配置。

  • missing / jconf- 模块化 JSON 配置。在不牺牲完整的配置序列化的情况下,使您的配置结构以及它们配置的代码以及将解析委派给子模块的过程。

  • gookit / config- 应用程序配置管理(加载,获取,设置)。支持 JSON,YAML,TOML,INI,HCL。多文件加载,数据覆盖合并。

  • harvester - 一个易于使用的静态和动态配置包 supportig 播种,ENV VAR 和集成领事。

  • hjson -Human JSON,人类的配置文件格式。轻松的语法,更少的错误,更多的注释。

  • ingo- 标志 ingo 在类似 ini 的配置文件中。

  • ini- 转到包中以读取和写入 INI 文件。

  • joshbetz / config -Go 的小型配置库,用于解析环境变量,JSON 文件,并在 SIGHUP 上自动重新加载。

  • kelseyhightower / envconfig -Go 库,用于管理来自环境变量的配置数据。

  • koanf- 轻巧,可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON,TOML,YAML,env,命令行的支持。

  • konfig- 在分布式处理时代,Go 的可组合,可观察和高性能配置处理。

  • mini -Golang 软件包,用于解析 ini 样式的配置文件。

  • nasermirzaei89 / env- 用于读取环境变量的简单有用的程序包。

  • onion - 用于 Go 的基于层的配置,支持 JSON,TOML,YAML,属性,etcd,env 和使用 PGP 加密。

  • sprbox- 构建环境感知工具箱工厂和不可知的配置解析器(YAML,TOML,JSON 和环境变量)。

  • store -Go 的轻量级配置管理器。

  • viper - 使用尖牙进行配置。

  • xdg- 遵循 XDG 标准的跨平台软件包。

持续集成

持续集成帮助工具。

  • CDS- 企业级 CI / CD 和 DevOps 自动化开源平台。

  • drone -Drone 是一个基于 Go 编写的基于 Docker 的持续集成平台。

  • duci- 简单的 ci 服务器,不需要特定于域的语言。

  • gomason- 在干净的工作区中测试,构建,签名和发布 go 二进制文件。

  • goveralls -Go Coveralls.io 连续代码覆盖率跟踪系统的集成。

  • overalls - 适用于工具包之类的 Multi-Package go project coverprofile。

  • roveralls- 递归覆盖率测试工具。

CSS 预处理器

用于预处理 CSS 文件的库。

  • gcss -Pure Go CSS 预处理器。

  • go-libsass- 转到与 100%Sass 兼容的 libsass 项目的包装器。

数据结构

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

  • algorithms - 算法和数据结构。CLRS 研究。

  • binpacker- 二进制打包程序和解压缩程序可帮助用户构建自定义二进制流。

  • bit - 具有额外的位旋转功能的 Golang 设置数据结构。

  • bitset - 实现位集的 Go 包。

  • bloom- 在 Go 中实现的 Bloom 过滤器。

  • bloom -Golang Bloom 过滤器实现。

  • boomfilters- 用于处理连续,无界流的概率数据结构。

  • parallel-writer - 的高度并发替代 bufio.Writer

  • conjungo- 一个小型,强大而灵活的合并库。

  • count-min-log- 执行 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用较少的内存)。

  • crunch -Go 包实现了用于轻松处理各种数据类型的缓冲区。

  • cuckoofilter -Cuckoo 过滤器:是 Go 中实现的计数布隆过滤器的很好替代。

  • deque- 高度优化的双端队列。

  • deque- 快速环形缓冲区双端队列(双端队列)。

  • dict -Go 的类似 Python 的字典(dict)。

  • encoding -Go 的整数压缩库。

  • go-adaptive-radix-tree - 自适应基数树的 Go 实现。

  • go-datastructures- 有用,高性能和线程安全的数据结构的集合。

  • go-ef -Elias-Fano 编码的 Go 实现。

  • go-geoindex- 内存中的地理索引。

  • go-mcache- 快速内存键:值存储 / 缓存库。指针缓存。

  • go-rquad- 具有有效点位置和邻居发现功能的区域四叉树。

  • gocache- 具有多个存储(内存,memcache,redis 等),可链接,可加载,指标缓存等的完整 Go 缓存库。

  • goconcurrentqueue- 并发 FIFO 队列。

  • gods - 数据结构。容器,集合,列表,堆栈,地图,BidiMap,树,HashSet 等。

  • gofal -Go 的小数 api。

  • golang-set - Go 的线程安全和非线程安全高性能集。

  • goset -Go 的有用的 Set 集合实现。

  • goskiplist -Go 中的跳过列表实现。

  • gostl - go 的数据结构和算法库,旨在提供类似于 C ++ STL 的功能。

  • gota -Go 的数据框,序列和数据整理方法的实现。

  • hide -ID 类型,将其编组进 / 出哈希以防止将 ID 发送给客户端。

  • hilbert -Go 程序包,用于在空间填充曲线(例如 Hilbert 和 Peano 曲线)之间映射值。

  • hyperloglog- 具有稀疏,LogLog-Beta 偏差校正和 TailCut 空间缩减的 HyperLogLog 实现。

  • iter -C ++ STL 迭代器和算法的实现。

  • levenshtein -Levenshtein 距离和相似性度量标准,具有可自定义的编辑费用和通用前缀的类似于 Winkler 的奖金。

  • levenshtein- 在 Go 中计算 levenshtein 距离的实现。

  • mafsa- 具有最小完美散列的 MA-FSA 实现。

  • merkletree -merkle 树的实现,可对数据结构的内容进行有效且安全的验证。

  • mspm- 用于信息检索的多字符串模式匹配算法。

  • null - 可空转到类型,可以被编组 / 解组到 / 从 JSON。

  • parsefields- 用于解析类似 JSON 日志的工具,以收集唯一的字段和事件。

  • pipeline - 具有扇入和扇出的管线的实现。

  • ptrie- 前缀树的实现。

  • remember-go - 缓存慢速数据库查询的通用接口(由 redis,memcached,ristretto 或内存支持)。

  • ring - 围棋实现了高性能,线程安全的布隆过滤器。

  • roaring - 实施压缩位集的软件包。

  • set - 使用 LinkedHashMap 的围棋设置简单的数据结构实现。

  • skiplist- 非常快地执行 Skiplist。

  • skiplist -Go 中的跳过列表实现。

  • timedmap- 具有过期的键 / 值对的地图。

  • treap- 使用树堆的持久,快速排序的地图。

  • trie -Go 中的 Trie 实现。

  • ttlcache- 内存中的 LRU 字符串接口 {} 映射,其中包含 golang 的到期时间。

  • typ- 空类型,安全的原始类型转换和从复杂结构中获取值。

  • willf / bloom- 实施 Bloom 过滤器的 Go 软件包。

数据库

在 Go 中实现的数据库。

  • badger -Go 中的快速键值存储。

  • bbolt -Go 的嵌入式键 / 值数据库。

  • bcache- 最终一致的分布式内存缓存 Go 库。

  • BigCache- 高效的键 / 值缓存,用于千兆字节的数据。

  • Bitcask -Bitcask 是使用纯 Go 编写的可嵌入,持久且快速的键值(KV)数据库,由于具有 bitcask 磁盘布局(LSM + WAL),因此具有可预测的读 / 写性能,低延迟和高吞吐量。

  • buntdb- 快速,可嵌入的内存中键 / 值数据库,用于 Go,具有自定义索引和空间支持。

  • cache - 内存中键:具有到期时间,0 个依存关系,100%覆盖率的值存储。

  • cache2go- 内存键:值缓存,支持基于超时的自动失效。

  • clusteredBigCache- 具有集群支持和单个项到期的 BigCache。

  • cockroach - 可扩展,地理复制,事务性数据存储。

  • coffer - 支持事务的简单 ACID 键值数据库。

  • couchcache- 由 Couchbase 服务器支持的 RESTful 缓存微服务。

  • CovenantSQL -CovenantSQL 是区块链上的 SQL 数据库。

  • Databunker- 建立符合 GDPR 和 CCPA 的个人身份信息(PII)存储服务。

  • dgraph- 可扩展,分布式,低延迟,高吞吐量图形数据库。

  • diskv- 本地支持的磁盘键值存储。

  • eliasdb- 具有 REST API,短语搜索和类似 SQL 的查询语言的无依赖关系的事务图数据库。

  • fastcache- 快速线程安全的内存高速缓存,用于大量条目。最大限度地减少 GC 开销。

  • GCache- 缓存库,支持过期的缓存,LFU,LRU 和 ARC。

  • go-cache -Go 的内存中键:值存储 / 缓存(类似于 Memcached)库,适用于单机应用程序。

  • goleveldb - Go 中 LevelDB 键 / 值数据库的实现。

  • gorocksdb -Gorocksdb 是用 Go 编写的 RocksDB 的包装。

  • gostore -Gostore 是用 Go 语言编写的一种简单,持久的嵌入式键值存储引擎。

  • groupcache -Groupcache 是一个缓存和缓存填充库,在许多情况下可以替代 memcached。

  • influxdb- 可扩展的数据存储区,用于指标,事件和实时分析。

  • Kivik -Kivik 为 CouchDB,PouchDB 和类似数据库提供了通用的 Go 和 GopherJS 客户端库。

  • ledisdb -Ledisdb 是基于 LevelDB 的高性能 NoSQL,如 Redis。

  • levigo -Levigo 是 LevelDB 的 Go 包装器。

  • moss -Moss 是用 100%Go 编写的简单 LSM 键值存储引擎。

  • nutsdb -Nutsdb 是用纯 Go 编写的简单,快速,可嵌入,持久性键 / 值存储。它支持完全可序列化的事务和许多数据结构,例如列表,集合,排序集合。

  • piladb- 基于堆栈数据结构的轻量级 RESTful 数据库引擎。

  • prometheus- 监视系统和时间序列数据库。

  • pudge- 使用 Go 的标准库编写的快速简单的键 / 值存储。

  • rqlite- 基于 SQLite 构建的轻型,分布式,关系数据库。

  • golang-scribble - 小型平面文件 JSON 存储。

  • slowpoke- 具有持久性的键值存储。

  • tempdb- 临时项目的键值存储。

  • tidb -TiDB 是分布式 SQL 数据库。受到 Google F1 设计的启发。

  • tieot- 由 Golang 提供支持的 NoSQL 数据库。

  • tracedb- 用于 IoT,实时消息传递应用程序的快速时间序列数据库。使用 github.com/unit-io/trace 应用程序通过 tcp 或 websocket 通过 pubsub 访问 tracedb。

  • Vasto- 分布式高性能键值存储。在磁盘上。最终一致。哈。能够增长或收缩而不会中断服务。

  • VictoriaMetrics- 快速,资源有效且可扩展的开源时间序列数据库。可用作 Prometheus 的长期远程存储。支持 PromQL。

数据库架构迁移。

  • avro- 发现 SQL 模式并将其转换为 AVRO 模式。将 SQL 记录查询为 AVRO 字节。

  • darwin -Go 的数据库架构演化库。

  • go-fixtures- 用于 Golang 出色的内置数据库 /sql 库的 Django 样式的夹具。

  • go-pg-migrations- 一个 Go 软件包,可帮助使用 go-pg /pg 编写迁移。

  • gondolier - 使用结构修饰符的数据库迁移库。

  • goose- 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。

  • gormigrate -Gorm ORM 的数据库架构迁移帮助器。

  • migrate - 数据库迁移。CLI 和 Golang 库。

  • migrator- 简单的 Go 数据库迁移库。

  • pravasan- 简单迁移工具 - 当前用于 MySQL,但计划很快支持 Postgres,SQLite,MongoDB 等。

  • schema- 用于在 Go 二进制文件中嵌入数据库 /sql 兼容数据库的模式迁移的库。

  • skeema -MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。

  • soda - 用于 MySQL,PostgreSQL 和 SQLite 的数据库迁移,创建,ORM 等。

  • sql-migrate- 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。

数据库工具。

  • bucket - 为 Couchbase 优化数据结构框架,专门在一个水桶使用。

  • chproxy -ClickHouse 数据库的 HTTP 代理。

  • clickhouse-bulk- 收集小的广告素材并将大的请求发送到 ClickHouse 服务器。

  • datagen 多表并支持多行 DML 的快速数据生成器。

  • dbbench- 数据库基准测试工具,支持多个数据库和脚本。

  • go-mysql -Go 工具集,用于处理 MySQL 协议和复制。

  • go-mysql- elasticsearch - 自动将您的 MySQL 数据同步到 Elasticsearch 中。

  • kingshard -kingshard 是由 Golang 支持的 MySQL 的高性能代理。

  • myreplication -MySql 二进制日志复制侦听器。支持基于语句和行的复制。

  • octillery- 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL)。

  • orchestrator 器 - MySQL 复制拓扑管理器和可视化器。

  • pgweb- 基于 Web 的 PostgreSQL 数据库浏览器。

  • prep - 使用准备好的 SQL 语句而不更改代码。

  • perst- 从任何 PostgreSQL 数据库提供 RESTful API。

  • rwdb -rwdb 为多个数据库服务器设置提供只读副本功能。

  • vitess -vitess 提供了服务器和工具,这些工具和工具有助于为大型 Web 服务扩展 MySQL 数据库。

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

  • dbq -Go 的零样板数据库操作。

  • Dotsql -Go 库,可帮助您将 sql 文件保存在一个位置并轻松使用它们。

  • gendry- 非侵入性 SQL 构建器和强大的数据绑定器。

  • godbal - go 的数据库抽象层(dbal)。支持 SQL Builder,轻松获得结果。

  • goqu SQL 构建器和查询库。

  • igor -PostgreSQL 的抽象层,支持高级功能并使用类似于 gorm 的语法。

  • jet - 框架写在 Go 类型安全的 SQL 查询,有能力轻松地转换数据库查询结果到期望的任意对象结构。

  • mpath- 用于 SQL 记录的 MPTT(修改的预排序树遍历)包 - 物化路径的实现。

  • ormlite- 轻量级软件包,包含一些类似于 ORM 的功能和 sqlite 数据库的帮助程序。

  • ozzo-dbx- 强大的数据检索方法以及与数据库无关的查询构建功能。

  • qry- 使用原始 SQL 查询从文件生成常量的工具。

  • sqlf- 快速的 SQL 查询生成器。

  • sqrl -SQL 查询生成器,Squirrel 的分支,具有改进的性能。

  • Squalus -Go SQL 包上的薄层,使执行查询更加容易。

  • Squirrel -Go 库,可帮助您构建 SQL 查询。

  • xo- 根据现有的架构定义或支持 PostgreSQL,MySQL,SQLite,Oracle 和 Microsoft SQL Server 的自定义查询为数据库生成惯用的 Go 代码。

数据库驱动程序

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

  • 关系数据库

    • avatica- 用于数据库 /sql 的 Apache Avatica / Phoenix SQL 驱动程序。

    • bgc -BigQuery for go 的数据存储连接。

    • firebirdsql -Go 的 Firebird RDBMS SQL 驱动程序。

    • go-adodb- 用于使用数据库 /sql 的 go 的 Microsoft ActiveX 对象数据库驱动程序。

    • go-mssqldb -Go 的 Microsoft MSSQL 驱动程序。

    • go-oci8- 使用数据库 /sql 的 go 的 Oracle 驱动程序。

    • go-sql-driver / mysql -Go 的 MySQL 驱动程序

    • go-sqlite3- 使用数据库 /sql 的 go 的 SQLite3 驱动程序。

    • gofreetds -Microsoft MSSQL 驱动程序。在 FreeTDS 上进行包装。

    • goracle -Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。

    • pgx -PostgreSQL 驱动程序支持的功能超出了数据库 /sql 所公开的功能。

    • pq- 用于数据库 /sql 的 Pure Go Postgres 驱动程序。

  • NoSQL 数据库

    • aerospike-client-go -Go 语言的 Aerospike 客户端。

    • arangolite- 用于 ArangoDB 的轻量级 golang 驱动程序。

    • ASC - 数据存储连通性的塞式走。

    • dynago -Dynago 是 DynamoDB 的最少惊喜客户端的原则。

    • forestdb 绑定。

    • go-couchbase -Go 中的 Couchbase 客户端。

    • go-pilosa-Pilosa 的 Go 客户端库。

    • go-rejson- 使用 Redigo golang 客户端的 Redislabs ReJSON 模块的 Golang 客户端。轻松将结构作为 JSON 对象存储和操作在 Redis 中。

    • gocb- 官方 Couchbase Go SDK。

    • gocql -Apache Cassandra 的 Go 语言驱动程序。

    • godis- 受 jedis 启发,由 golang 编写的 redis 客户端工具。

    • godscache -Google Cloud Platform Go 数据存储区程序包的包装,可使用 memcached 添加缓存。

    • gomemcache -Go 编程语言的 memcache 客户端库。

    • gorethink- 用于 RethinkDB 的 Go 语言驱动程序。

    • goriak -Riak KV 的 Go 语言驱动程序。

    • mgm -Go 的基于 MongoDB 模型的 ODM(基于官方的 MongoDB 驱动程序)。

    • mgo-(无需维护)用于 Go 语言的 MongoDB 驱动程序,该驱动程序遵循标准的 Go 习惯用法,通过非常简单的 API 来实现丰富且经过测试的功能选择。

    • mongo-go-driver -Go 语言的官方 MongoDB 驱动程序。

    • neo4j- 用于 Golang 的 Neo4j Rest API 绑定。

    • Neo4j-GO -golang 中的 Neo4j REST 客户端。

    • neoism - Golang 的 Neo4j 客户。

    • redeo- 与 Redis 协议兼容的 TCP 服务器 / 服务。

    • redigo -Redigo 是 Redis 数据库的 Go 客户端。

    • redis -Golang 的 Redis 客户端

    • xredis,可自定义,干净且易于使用的 Redis 客户端。

  • 搜索和分析数据库。

    • bleve -go 的现代文本索引库。

    • elastic -Go 的 Elasticsearch 客户端

    • elasticsql - 转换 SQL 到 elasticsearch DSL 围棋。

    • elastigo -Elasticsearch 客户端库。

    • go-elasticsearch -Go 的官方 Elasticsearch 客户。

    • goes - 与 Elasticsearch 进行交互的库。

    • riot- 开源,分布式,简单高效的搜索引擎。

    • Skizze- 概率数据结构服务和存储。

  • 多个后端。

    • cachego- 用于多个驱动程序的 Golang 缓存组件。

    • cayley- 支持多个后端的 Graph 数据库。

    • dsc -SQL,NoSQL,结构化文件的数据存储连接。

    • gokv -Go 的简单键值存储抽象和实现(Redis,Consul,etcd,bbolt,BadgerDB,LevelDB,Memcached,DynamoDB,S3,PostgreSQL,MongoDB,CockroachDB 等)。

日期和时间

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

  • carbon - 简单的时间延长了很多 UTIL 方法,从 PHP 碳库移植。

  • cronrange- 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。

  • date -Augments 用于处理日期,日期范围,时间跨度,期间和日期的时间。

  • dateparse- 在不知道格式的情况下解析日期。

  • durafmt -Go 的持续时间格式库。

  • feiertage- 计算德国公共假期的功能集,包括 德国(Bundesländer)州的专业。复活节,五旬节,感恩节等

  • go-persian-calendar -Go(golang)中波斯(Solar Hijri)日历的实现。

  • go-str2duration- 将字符串转换为持续时间。支持时间。持续时间返回了字符串等。

  • go-sunrise - 计算给定位置的日出和日落时间。

  • go-week - 使用 ISO8601 周日期的有效软件包。

  • iso8601- 无需正则表达式即可有效解析 ISO8601 日期时间

  • kair- 日期和时间 - Golang 格式库。

  • now - 现在是 golang 的时间工具包。

  • NullTime -Nullable time.Time

  • strftime- 与 C99 兼容的 strftime 格式化程序。

  • timespan - 用于与时间间隔互动,定义为开始时间和持续时间。

  • timeutil -golang 时间包的有用扩展(Timedelta,Strftime 等)。

  • tuesday - 兼容 Ruby 的 Strftime 函数。

分布式系统

有助于构建分布式系统的软件包。

  • celeriac- 用于添加支持以交互和监视 Go 中的 Celery 工作者,任务和事件的库。

  • consistent - 具有受限负载的一致哈希。

  • dht -BitTorrent Kademlia DHT 实施。

  • digota -grpc 电子商务微服务。

  • dot - 使用操作转换 / OT 进行分布式同步。

  • doublejump- 改进后的 Google 的跳转一致性哈希。

  • dragonboat 功能齐全的高性能多组 Raft 库。

  • drmaa- 基于 DRMAA 标准的集群调度程序的作业提交库。

  • dynamolock -DynamoDB 支持的分布式锁定实现。

  • dynatomic- 将 DynamoDB 用作原子计数器的库。

  • itter-io- 使用 MQTT,Websockets 和 love 构建的高性能,分布式,安全和低延迟的发布 - 订阅平台。

  • flowgraph- 基于流的编程包。

  • gleam - 用纯围棋和 Luajit 快速和可扩展的分布式的 map /reduce 系统,具有 Luajit 的高性能结合 Go 的高并发,单独运行或分发。

  • glow- 易于使用的可扩展的分布式大数据处理,Map-Reduce,DAG 执行,全部以纯 Go 进行。

  • go- health - 用于在服务中启用异步依赖项运行状况检查的库。

  • go-jump -Google 的 “Jump” 一致哈希函数的端口。

  • Go- kit - 支持服务发现,负载平衡,可插拔传输,请求跟踪等的微服务工具包

  • go-pdu- 一个基于身份的去中心化社交网络。

  • go-sundheit- 建立用于支持定义 golang 服务的异步服务运行状况检查的库。

  • gorpc- 简单,快速和可扩展的 RPC 库,可实现高负载。

  • grpc-go - gRPC 的 Go 语言实现。基于 HTTP / 2 的 RPC。

  • hprose- 极新的 RPC 库,现在支持 25 种以上的语言。

  • jsonrpc -jsonrpc 软件包可帮助实现 JSON-RPC 2.0。

  • jsonrpc -JSON-RPC 2.0 HTTP 客户端实现。

  • KrakenD- 具有中间件的超高性能 API 网关框架。

  • liftbridge -NATS 的轻量级,容错消息流。

  • micro - 可插拔的 microService 工具箱和分布式系统平台。

  • NATS- 用于微服务,物联网和云本机系统的轻量级高性能消息传递系统。

  • outboxer -outboxer 是一个执行库,用于实现 outbox 模式。

  • pglock -PostgreSQL 支持的分布式锁定实现。

  • raft -HashiCorp 的 Raft 共识协议的 Golang 实现。

  • raft - 围棋实施筏一致协议,由 CoreOS 的。

  • BitTorrent -BitTorrent 客户端和库。

  • redis-lock- 使用 Redis 的简化分布式锁定实现。

  • resgate- 用于构建 REST,实时和 RPC API 的实时 API 网关,其中所有客户端都可以无缝同步。

  • ringpop-go -Go 应用程序的可扩展,容错应用程序层分片。

  • rpcx- 分布式可插入 RPC 服务框架,例如阿里巴巴 Dubbo。

  • sleuth- 用于在 HTTP 服务之间进行无主 p2p 自动发现和 RPC 的库(使用 ZeroMQ)。

  • bidmint- 高性能中间件,用于使用 Tendermint 共识和区块链协议将以任何编程语言编写的状态机转换为拜占庭容错复制状态机。

  • torrent -BitTorrent 客户端软件包。

动态 DNS

用于更新动态 DNS 记录的工具。

  • DDNS- 以 Digital Ocean Networking DNS 作为后端的个人 DDNS 客户端。

  • dyndns -Background Go 流程可定期自动检查您的 IP 地址,并在您的地址发生更改时更新(一个或多个)Google 域的动态 DNS 记录。

  • GoDNS- 动态 DNS 客户端工具,支持用 Go 编写的 DNSPod 和 HE.net。

电子邮件

实现电子邮件创建和发送的库和工具。

  • chasquid- 用 Go 编写的 SMTP 服务器。

  • douceur - CSS 内衬为您的 HTML 电子邮件。

  • email- 用于 Go 的强大而灵活的电子邮件库。

  • go-dkim -DKIM 库,用于签名和验证电子邮件。

  • go-imap- 用于客户端和服务器的 IMAP 库。

  • go-message -Internet 邮件格式和邮件的流媒体库。

  • go-premailer -Go 中 HTML 邮件的内联样式。

  • go-simple-mail- 非常简单的程序包,用于使用 SMTP 保持活动状态发送电子邮件和两个超时:连接和发送。

  • Hectane- 提供 HTTP API 的轻型 SMTP 客户端。

  • hermes -Golang 软件包,可生成干净的响应式 HTML 电子邮件。

  • mailchain- 将加密的电子邮件发送到用 Go 编写的区块链地址。

  • mailgun-go -Go 库,用于使用 Mailgun API 发送邮件。

  • MailHog- 带有 Web 和 API 界面的电子邮件和 SMTP 测试。

  • SendGrid -SendGrid 的 Go 库,用于发送电子邮件。

  • smtp -SMTP 服务器协议状态机。

嵌入式脚本语言

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

  • anko- 用 Go 语言编写的可编写脚本的解释器。

  • binder - 转到基于 gopher-lua 的 Lua 绑定库。

  • cel-go- 具有渐进式输入功能的快速,便携式,非图灵完整表达式评估。

  • expr- 可以评估表达式的引擎。

  • gentee- 可嵌入的脚本编程语言。

  • gisp -Go 中的简单 LISP。

  • go-duktape -Go 的 Duktape JavaScript 引擎绑定。

  • go-lua -Lua 5.2 VM 到纯 Go 的端口。

  • go-php -Go 的 PHP 绑定。

  • go-python- 与 CPython C-API 的天真 go 绑定。

  • golua -Lua C API 的绑定。

  • gopher-lua- 用 Go 编写的 Lua 5.1 VM 和编译器。

  • gval- 用 Go 编写的高度可定制的表达语言。

  • ngaro- 可嵌入的 Ngaro VM 实现,支持在 Retro 中编写脚本。

  • otto- 用 Go 编写的 JavaScript 解释器。

  • purl -Go 中嵌入的 Perl 5.18.2。

  • tengo- 用于 Go 的字节码编译脚本语言。

错误处理

用于处理错误的库。

  • emperror -Go 库和应用程序的错误处理工具和最佳实践。

  • eris -Go 中处理,跟踪和记录错误的更好方法。与标准错误库和 github.com/pkg/errors 兼容。

  • errlog - 可破解的软件包,用于确定错误的负责任的源代码(以及其他一些快速调试功能)。可就地插入任何记录器。

  • errors - 下拉更换为标准库的错误包和 github.com/pkg/errors。提供各种错误处理原语。

  • errors- 提供简单错误处理原语的软件包。

  • neuronlabs/errors - 简单 golang 错误处理与分类元。

  • errors- 最简单的错误包装器,具有出色的性能和最小的内存开销。

  • errorx- 具有堆栈跟踪,错误组成等的功能丰富的错误包。

  • Falcon- 一个简单但功能强大的错误处理软件包。

  • go-multierror -Go(golang)软件包,用于将错误列表表示为单个错误。

  • tracerr- 带有堆栈跟踪和源代码片段的 Golang 错误。

  • werr- 错误包装器为 Go 中的错误类型创建了一个包装器,该包装器捕获了被调用位置的文件,行和堆栈。

档案

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

  • afero -Go 的文件系统抽象系统。

  • afs -Go 的抽象文件存储(mem,scp,zip,tar,云:s3,gs)。

  • bigfile- 文件传输系统,支持使用 http api,rpc 调用和 ftp 客户端管理文件。

  • checksum - 计算大型文件的消息摘要,例如 MD5 和 SHA256。

  • copy - 递归复制目录。

  • flop- 文件操作库,旨在与 GNU cp 镜像功能奇偶校验。

  • go-csv- tag - 使用标签加载 csv 文件。

  • go-decent-copy- 复制人类文件。

  • go-exiftool -ExifTool 的 Go 绑定,这是众所周知的库,用于从文件(图片,PDF,office,…)中提取尽可能多的元数据(EXIF,IPTC 等)。

  • go-gtfs- 在 go 中加载 gtfs 文件。

  • gut / yos- 简单可靠的文件操作包,例如文件,目录和符号链接上的复制 / 移动 / 差异 / 列表。

  • notify- 具有简单 API 的文件系统事件通知库,类似于 os /signal。

  • opc- 加载 Go 的开放包装约定(OPC)文件。

  • parquet - 读取和写入实木复合地板文件。

  • pdfcpu -PDF 处理器。

  • skywalker- 一种软件包,允许一个人轻松地同时通过文件系统。

  • stl- 读取和写入 STL(立体光刻)文件的模块。并发读取算法。

  • tarfs - tar 文件 FileSystem 接口的实现。

  • vfs -Go 的一组可插拔,可扩展且自觉的文件系统功能,可跨多种文件系统类型(例如 os,S3 和 GCS)使用。

金融

会计和财务软件包。

  • accounting -golang 的货币和货币格式。

  • currency - 高性能和准确的货币计算包。

  • decimal - 任意精度定点十进制数字。

  • go-finance -Go 中的综合金融市场数据。

  • go- finance - 货币时间价值(年金),现金流量,利率转换,债券和折旧计算的财务函数库。

  • go-finance- 获取汇率,通过 VIES 检查增值税号和检查 IBAN 银行帐号的模块。

  • go-finnhub- 来自 finnhub.io 的股票,外汇和加密数据客户端。访问来自 60 多个证券交易所,10 个外汇经纪人和 15 多个加密交易所的实时金融市场数据。

  • go-money -Fowler 的 Money 模式的实现。

  • ofxgo- 查询 OFX 服务器和 / 或解析响应(使用示例命令行客户端)。

  • 手持订单 - 匹配引擎的限价订单在 Golang。

  • techan- 具有高级市场分析和交易策略的技术分析库。

  • transaction- 在多线程模式下运行的嵌入式帐户事务数据库。

  • vat - 增值税号验证和欧盟增值税率。

形式

用于处理表单的库。

  • robfig/bind - 绑定表单数据到任何围棋值。

  • mholt/binding - 将 net /http 请求中的表单和 JSON 数据绑定到结构。

  • conform - 检查用户输入。根据 struct 标签对数据进行整理,清理和清理。

  • form - 将 url.Values 解码为 Go 值,并将 Go 值编码为 url.Values。双阵列和全图支持。

  • formam- 将表单的值解码为结构。

  • forms - 与框架无关的库,用于解析和验证支持多部分表单和文件的表单 / JSON 数据。

  • gorilla / csrf -Go Web 应用程序和服务的 CSRF 保护。

  • nosurf -Go 的 CSRF 保护中间件。

  • queryparam- 解码 url.Values 为标准或自定义类型的可用结构值。

功能性

支持 Go 中功能编程的软件包。

  • fpGo -Monad,用于 Golang 的功能编程功能。

  • fuego -Go 中的功能实验。

  • go-underscore- 有用的 Go 收集实用程序的有用集合。

游戏开发

很棒的游戏开发库。

  • Azul3D- 用 Go 语言编写的 3D 游戏引擎。

  • Ebiten -Go 中死的简单 2D 游戏库。

  • engo -Engo 是用 Go 语言编写的开源 2D 游戏引擎。它遵循实体组件系统范式。

  • g3n -Go 3D 游戏引擎。

  • GarageEngine- 用 Go 语言编写的 2D 游戏引擎,可在 OpenGL 上使用。

  • glop -Glop(权力游戏库)是一个相当简单的跨平台游戏库。

  • go-astar -A * 路径查找算法的 Go 实现。

  • go-collada- 用于 Collada 文件格式的 Go 软件包。

  • go-sdl2- 简单 DirectMedia 层的 Go 绑定。

  • go3d- 用于 Go 的面向性能的 2D / 3D 数学软件包。

  • gonet- 使用 golang 实现的游戏服务器框架。

  • goworld- 可扩展的游戏服务器引擎,具有空间实体框架和热插拔功能。

  • Leaf- 轻量级游戏服务器框架。

  • nano - 重量轻,设备,高性能的基于 golang 游戏服务器架构。

  • Oak -Pure Go 游戏引擎。

  • Pitaya- 可扩展的游戏服务器框架,具有群集支持以及通过 C SDK 的 iOS,Android,Unity 等客户端库。

  • pixel -Go 中的手工制作 2D 游戏库。

  • raylib-go - raylib 的 Go 绑定,raylib 是一个简单易用的库,用于学习视频游戏编程。

  • termloop- 基于 Termbox 的 Go 终端游戏引擎。

代与泛型

通过代码生成通过泛型等功能增强语言的工具。

  • efaceconv- 代码生成工具,用于从接口 {} 到不分配的不可变类型的高性能转换。

  • gen- 用于类似 “泛型” 功能的代码生成工具。

  • Generis- 代码生成工具,提供泛型,自由格式的宏,条件编译和 HTML 模板。

  • go- enum - 从代码注释生成枚举的代码。

  • go-linq- 用于 Go 的.NET LINQ 式查询方法。

  • go-xray - 简化反射使用的助手。

  • goderive- 从输入类型派生函数。

  • gotype -Golang 源代码解析,用法类似于反射包。

  • GoWrap- 使用简单的模板为 Go 界面生成装饰器。

  • interfaces- 用于生成接口定义的命令行工具。

  • jennifer- 生成没有模板的任意 Go 代码。

  • pkgreflect- 用于包范围反射的预处理器。

  • typeregistry- 一个动态创建类型的库。

地域

地理工具和服务器

  • geocache- 内存中缓存,适用于基于地理位置的应用程序。

  • geoserver -geoserver 是 Go 软件包,用于通过 GeoServer REST API 操纵 GeoServer 实例。

  • gismanager - 将 GIS 数据(矢量数据)发布到 PostGIS 和 Geoserver。

  • mbtileserver- 一种简单的基于 Go 的服务器,用于以 mbtiles 格式存储地图图块。

  • osm- 用于读取,编写和使用 OpenStreetMap 数据和 API 的库。

  • pbf -OpenStreetMap PBF golang 编码器 / 解码器。

  • S2geo -Go 中的 S2 几何库。

  • Tile38- 具有空间索引和实时地理围栏的地理位置数据库。

  • WGS84 - 库坐标转换和变换(ETRS89,OSGB36,NAD83,RGF93,网络墨卡托 UTM)。

编译器

编译工具转到其他语言。

  • c4go- 将 C 代码转换为 Go 代码。

  • f4go- 将 FORTRAN 77 代码转换为 Go 代码。

  • gopherjs- 从 Go 到 JavaScript 的编译器。

  • llgo -Go 的基于 LLVM 的编译器。

  • tardisgo -Golang 转换为 CPP / CSharp / Java / JavaScript 转译器。

Goroutines

用于管理和使用 Goroutines 的工具。

  • ants -Go 中的高性能和低成本 goroutine 池。

  • artifex -Golang 使用基于工作程序的分派的简单内存中作业队列。

  • async - 一种异步执行功能的安全方法,以防万一。

  • breaker - 灵活的机制,使执行流程可中断。

  • conexec- 一个并发工具包,可帮助以高效,安全的方式并发执行 func,它支持指定整体超时以避免阻塞,并使用 goroutine 池来提高效率。

  • cyclicbarrier- 用于 golang 的 CyclicBarrier。

  • go- floc - 轻松编排 goroutine。

  • go- flow - 控制 goroutine 的执行顺序。

  • go-tools / multithreading- 使用带有简单 API 的轻量级库管理 goroutine 池。

  • go-trylock- 支持 Golang 的读写锁的 TryLock。

  • go-waitgroup-sync.WaitGroup 与错误处理和并发控制类似。

  • gohive -Go 的高性能和易于使用的 Goroutine 池。

  • gollback- 异步简单函数实用程序,用于管理闭包和回调的执行。

  • GoSlaves- 简单和异步 Goroutine 池库。

  • goworker -goworker 是基于 Go 的后台工作者。

  • gowp -gowp 是并发限制 goroutine 池。

  • gpool- 管理可调整大小的上下文感知 goroutine 池以绑定并发。

  • grpool- 轻巧的 Goroutine 池。

  • Hunch - 预感提供功能,如:AllFirstRetryWaterfall 等等,这使得异步流控制更加直观。

  • kyoo- 提供无限的作业队列和并发工作池。

  • oversight - 监督是 Erlang 监督树的完整实现。

  • parallel -fn 运行功能。

  • pool - 有限的消费者 goroutine 池或无限的 goroutine 池,以便更轻松地处理和取消 goroutine。

  • queue - 为您提供 sync.WaitGroup 类似的队列组可访问性。帮助您限制和限制 goroutine,等待所有 goroutine 结束等等。

  • routine - 具有上下文和支持的例程控制:Main,Go,Pool 和一些有用的 Executors。

  • semaphore - 基于通道和上下文的具有锁定 / 解锁操作超时的信号量模式实现。

  • marusama/semaphore - 基于 CAS 的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。

  • stl- 基于软件交易内存(STM)并发控制机制的软件交易锁。

  • threadpool -Golang 线程池实现。

  • tunny - 够程池 golang。

  • worker-pool -goworker 是一个简单的 Go 异步工作池。

  • workerpool -Goroutine 池,它限制任务执行的并发性,而不是排队的任务数。

图形用户界面

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

工具包

  • app- 打包以使用 GO,HTML 和 CSS 创建应用的程序。支持:MacOS,Windows 正在开发中。

  • fyne- 基于 Material Design 为 Go 设计的跨平台本机 GUI。支持:Linux,macOS,Windows,BSD,iOS 和 Android。

  • go-astilectron- 使用 GO 和 HTML / JS / CSS(由 Electron 支持)构建跨平台 GUI 应用。

  • go-gtk -GTK 的绑定。

  • go-sciter-Sciter 的 Go 绑定:用于现代桌面 UI 开发的可嵌入 HTML / CSS /script 引擎。跨平台。

  • gotk3 -GTK3 的绑定。

  • gowd- 使用 GO,HTML,CSS 和 NW.js 进行快速,简单的桌面 UI 开发。跨平台。

  • qt -Go 的 Qt 绑定(支持 Windows /macOS/ Linux / Android /iOS/ Sailfish OS / Raspberry Pi)。

  • ui -Go 的平台本地 GUI 库。跨平台。

  • wails - 使用内置 OS HTML 渲染器的 HTML UI 的 Mac,Windows,Linux 桌面应用程序。

  • walk -Go 的 Windows 应用程序库工具包。

  • webview- 具有简单双向 JavaScript 绑定的跨平台 Webview 窗口(Windows /macOS/ Linux)。

相互作用

  • go-appindicator -libappindicator3 C 库的 Go 绑定。

  • gosx-notifier -Go 的 OSX 桌面通知库。

  • mac-activity-tracker -OSX 库,用于通知计算机上的任何(可插入)活动。

  • mac-sleep-notifier -golang 中的 OSX 睡眠 / 唤醒通知。

  • robotgo -Go 本机跨平台 GUI 系统自动化。控制鼠标,键盘等。

  • systray- 跨平台执行库,用于在通知区域中放置图标和菜单。

  • trayhost- 跨平台的 Go 库,用于在主机操作系统的任务栏中放置一个图标。

硬件

与硬件交互的库,工具和教程。

有关完整列表,请参见硬件

图片

用于处理图像的库。

  • bild- 纯 Go 中图像处理算法的集合。

  • bimg- 使用 libvips 进行快速有效图像处理的小包装。

  • cameron -Go 的头像生成器。

  • canvas - 将矢量图形转换为 PDF,SVG 或光栅图像。

  • darkroom - 具有可变存储后端的图像代理和侧重于速度和弹性的图像处理引擎。

  • geopattern- 从字符串创建漂亮的生成图像图案。

  • gg- 纯 Go 中的 2D 渲染。

  • gift- 图像处理过滤器的包装。

  • gltf- 高效,强大的 glTF 2.0 读取器,写入器和验证器。

  • go-cairo- 用于 cairo 图形库的绑定。

  • go-gd -GD 库的绑定。

  • go- nude - 使用 Go 进行裸体检测。

  • go-opencv- 用于 OpenCV 的绑定。

  • go-webcolors -webcolors 库的端口,从 Python 到 Go。

  • gocv- 使用 OpenCV 3.3 + 进行计算机视觉的 Go 软件包。

  • goimagehash -Go 感知图像哈希包。

  • goimghdr -imghdr 模块确定 Go 文件中包含的图像类型。

  • govatar- 用于生成有趣头像的库和 CMD 工具。

  • image2ascii- 将图像转换为 ASCII。

  • imagick- 绑定到 ImageMagick 的 MagickWand C API。

  • imaginary - 用于图像大小调整的快速,简单的 HTTP 微服务。

  • imaging - 简单的 Go 图像处理包。

  • img- 选择图像处理工具。

  • ln -Go 中的 3D 线条艺术渲染。

  • mergi- 用于图像处理(合并,裁切,调整大小,水印,动画)的 Tool&Go 库。

  • mort- 用 Go 编写的存储和图像处理服务器。

  • mpo- 用于 MPO 3D 照片的解码器和转换工具。

  • picfit- 用 Go 编写的图像大小调整服务器。

  • pt- 用 Go 语言编写的路径跟踪引擎。

  • resize - 使用常见的插值方法为 Go 调整图像大小。

  • rez- 在纯 Go 和 SIMD 中调整图像大小。

  • smartcrop- 查找适合任意图像和尺寸的优质作物。

  • steganography - 用于 LSB 隐写术的 Pure Go 库。

  • stegify- 用于 LSB 隐写术的 Go 工具,能够隐藏图像中的任何文件。

  • svgo- 用于 SVG 生成的 Go 语言库。

  • tga- 软件包 tga 是 TARGA 图像格式的解码器 / 编码器。

物联网

物联网设备编程库。

  • connectordb- 量化自我和物联网的开源平台。

  • devices - 物联网设备库套件,针对 x /exp/io 进行实验。

  • eywa -Project Eywa 本质上是一个连接管理器,用于跟踪连接的设备。

  • flogo -Project Flogo 是一个用于 IoT Edge 应用和集成的开源框架。

  • GATT - 盖特是一个围棋包构建低功耗蓝牙外设。

  • gobot -Gobot 是机器人技术,物理计算和物联网的框架。

  • huego- 适用于 Go 的广泛的 Philips Hue 客户端库。

  • iot - 物联网是实现物联网谷歌核心设备的简单框架。

  • mainflux- 工业物联网消息和设备管理服务器。

  • PERIPH - 外设 I / O 与低级别的主板设备接口。

  • sensorbee- 用于物联网的轻量级流处理引擎。

工作计划

用于计划作业的库。

  • clockwerk- 使用简单,流利的语法打包程序以安排定期作业。

  • Clockwork -Go 中简单直观的工作计划库。

  • go- cron - 用于 go 的简单 Cron 库,可以在不同的时间间隔执行闭包或函数,从每秒一次到每年一次在特定日期和时间。主要用于 Web 应用程序和长期运行的守护程序。

  • gron- 使用简单的 Go API 定义基于时间的任务,Gron 的调度程序将相应地运行它们。

  • JobRunner- 内置功能,工作队列和实时监控的智能功能强大的 cron 作业计划程序。

  • jobs - 持久灵活的后台作业库。

  • leprechaun - 作业调度,支持网络挂接,crons 和经典的调度。

  • scheduler -Cronjobs 调度变得容易。

JSON 格式

用于 JSON 的库。

  • ajson- 具有 JSONPath 支持的 golang 的抽象 JSON。

  • ej- 简洁地从不同来源写入和读取 JSON。

  • gjo- 用于创建 JSON 对象的小型实用程序。

  • GJSON- 使用一行代码获取 JSON 值。

  • go-jsonerror -Go-JsonError 使我们能够轻松创建遵循 JsonApi 规范的 json 响应错误。

  • go-respond -Go 包,用于处理常见的 HTTP JSON 响应。

  • gojq - Golang 中的 JSON 查询。

  • gojson- 从示例 JSON 自动生成 Go(golang)结构定义。

  • JayDiff- 用 Go 编写的 JSON diff 实用程序。

  • jettison- 用于 Go 的高性能,无反射 JSON 编码器。

  • JSON-to-Go- 将 JSON 转换为 Go 结构。

  • json2go- 高级 JSON 到 Go 结构转换。提供可以解析多个 JSON 文档并创建适合所有 JSON 的结构的包。

  • jsonapi-errors- 根据 JSON API 错误参考进行绑定。

  • jsonf- 突出显示格式和获取 JSON 的结构查询的控制台工具。

  • jsongo -Fluent API,可以更轻松地创建 Json 对象。

  • jsonhal- 简单的 Go 包,用于将自定义结构编组为 HAL 兼容的 JSON 响应。

  • kazaam- 用于 JSON 文档的任意转换的 API。

  • mapslice- json - 使用 MapSlice 进行 JSON 中地图的有序编组 / 解组。

  • mp- 简单的 cli 电子邮件解析器。当前,它使用标准输入并输出 JSON。

记录中

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

  • distillog 级别的日志记录(将其视为 stdlib + 日志级别)。

  • glg -glg 是用于 Go 的简单快速的日志记录库。

  • GLO - PHP 独白灵感记录设备具有相同的严重性级别。

  • glog -Go 的级别执行日志。

  • go-cronowriter- 简单的作家,可以根据当前日期和时间自动旋转日志文件,例如 cronolog。

  • go-log- 具有跟踪跟踪,对象转储和可选时间戳记的日志记录库。

  • go-log- 在 Go 中进行简单且可配置的日志记录,包括级别,格式化程序和编写器。

  • go-log- 日志库支持级别和多处理程序。

  • go-log -Go 中的 Log4j 实现。

  • go-logger -Go 程序的简单记录器,带有级别处理程序。

  • gologger- 用于 go 的简单易用的日志库,可在彩色控制台,简单控制台,文件或 Elasticsearch 中登录。

  • gomol -Go 的多输出,结构化日志记录,具有可扩展的日志记录输出。

  • log - 快速,可扩展,全功能,std-lib 源兼容的日志库。

  • journald- 实现 systemd Journal 的本机 API 进行日志记录的实现。

  • aerogo/log -O(1)日志记录系统,允许您将一个日志连接到多个写入器(例如,stdout,文件和 TCP 连接)。

  • log -Go 的结构化日志记录包。

  • o-playground/log - 简单,可配置和可扩展的 Go 结构化日志记录。

  • log -Go 的结构化日志界面将日志记录外观与其实现完全分开。

  • log- voyage - 用 golang 编写的全功能日志记录 saas。

  • log15- 简单,强大的 Go 日志记录。

  • logdump- 用于多级日志记录的软件包。

  • logex -Golang 日志库,支持跟踪和级别,按标准日志库包装。

  • logger - 简约日志库进行搜索。

  • logmatic- 具有动态日志级别配置的 Golang 彩色记录器。

  • logo -Golang 记录器可用于其他可配置的编写器。

  • logrus -Go 的结构化记录器。

  • logrusiowriter - io.Writer 使用实施 logrus 记录。

  • logrusly - logrus 插件,用于将错误发送到 Loggly

  • logutils- 实用程序,用于在 Go(Golang)中更好地记录日志,以扩展标准记录器。

  • logxi -12 要素应用程序记录器,运行速度快,让您满意。

  • lumberjack - 简单滚动记录,实施 io.WriteCloser。

  • mlog- 用于 go 的简单日志记录模块,具有 5 个级别,可选的旋转日志文件功能和 stdout /stderr 输出。

  • onelog -Onelog 是一个简单但高效的 JSON 记录器。在所有情况下,它都是最快的 JSON 记录器。而且,它是分配最低的记录器之一。

  • ozzo-log- 高性能日志记录,支持日志严重性,分类和过滤。可以将过滤后的日志消息发送到各种目标(例如,控制台,网络,邮件)。

  • RollingWriter -RollingWriter 是 io.Writer 具有多个策略的自动旋转实现,可提供日志文件旋转。

  • seelog- 具有灵活的调度,过滤和格式化的日志记录功能。

  • spew- 为 Go 数据结构实现深层漂亮的打印机,以帮助调试。

  • stdlog -Stdlog 是一个面向对象的库,提供分级日志记录。这对于 cron 作业非常有用。

  • tail -Go 程序包,旨在模仿 BSD tail 程序的功能。

  • xlog -Go 的插件架构和灵活的日志系统,具有 ctrl 级,多个日志目标和自定义日志格式。

  • xlog- 结构化的记录器,可 net/context 通过灵活的调度来感知 HTTP 处理程序。

  • zap -Go 中快速,结构化,分级的日志记录。

  • zerolog- 零分配 JSON 记录器。

机器学习

机器学习图书馆。

  • bayesian -Golang 的朴素贝叶斯分类。

  • CloudForest- 快速,灵活,多线程的决策树集合,用于纯 Go 中的机器学习。

  • eaopt- 进化优化库。

  • evoli- 遗传算法和粒子群优化库。

  • fonet- 用 Go 编写的深度神经网络库。

  • go-cluster -k 模式和 k - 原型聚类算法的 Go 实现。

  • go-deep -Go 中功能丰富的神经网络库

  • go- fann - 快速人工神经网络(FANN)库的 Go 绑定。

  • go-galib- 用 Go /golang 编写的遗传算法库。

  • go-pr -Go lang 中的模式识别包。

  • gobrain- 用 go 语言编写的神经网络

  • Godist- 各种概率分布及相关方法。

  • goga -Go 的遗传算法库。

  • GoLearn- 用于 Go 的通用机器学习库。

  • golinear -Go 的 liblinear 绑定。

  • GoMind -Go 中的简单神经网络库。

  • goml -Go 中的在线机器学习。

  • gonet -Go 的神经网络。

  • Goptuna- 用于 Go 语言编写的黑盒函数的贝叶斯优化框架。一切都会被优化。

  • goRecommend- 用 Go 编写的推荐算法库。

  • gorgonia- 基于图形的计算库,例如 Theano for Go,它提供了用于构建各种机器学习和神经网络算法的原语。

  • gorse- 基于 Go 编写的协作过滤的离线推荐系统后端。

  • goscore- 用于 PMML 的 Go Scoring API。

  • gosseract- 使用 Tesseract C ++ 库的 OCR(光学字符识别)软件包。

  • LIBSVM - 基于 LIBSVM 3.14 libsvm 的 golang 版本衍生作品。

  • neat - 用于增强拓扑神经进化(NEAT)的即插即用,并行 Go 框架。

  • neuro- go - 在 Go 中实现的多层感知器网络,通过反向传播进行训练。

  • ocrserver- 一个简单的 OCR API 服务器,非常容易被 Docker 和 Heroku 部署。

  • onnx-go- 转到开放神经网络交换(ONNX)的接口。

  • probab- 概率分布函数。贝叶斯推断。用纯 Go 语言编写。

  • randomforest- 易于使用的随机森林库。

  • regommend- 建议和协作过滤引擎。

  • shield- 贝叶斯文本分类器,具有灵活的标记器和 Go 的存储后端。

  • tfgo- 易于使用的 Tensorflow 绑定:简化了官方 Tensorflow Go 绑定的使用。在 Go 中定义计算图,加载并执行经过 Python 训练的模型。

  • Varis -Golang 神经网络。

讯息传递

实现消息传递系统的库。

  • ami 客户端转到基于 Redis 群集流的可靠队列。

  • APNs2- 用于 Go 的 HTTP / 2 Apple Push Notification 提供程序 — 将推送通知发送到 iOS,tvOS,Safari 和 OSX 应用程序。

  • Beaver- 实时消息服务器,用于构建可扩展的应用内通知,多人游戏,Web 和移动应用中的聊天应用。

  • Benthos- 一系列协议之间的消息流桥。

  • bus - 用于内部通信的极简消息总线实现。

  • Centrifugo -Go 中的实时消息传递(Websockets 或 SockJS)服务器。

  • commander - 一个高级事件驱动的消费者 / 生产者,支持各种 “方言”,例如 Apache Kafka。

  • dbus -D-Bus 的本机 Go 绑定。

  • drone- line - 使用二进制文件,docker 或 Drone CI 发送通知。

  • emitter - 使用 Go 方式发出事件,并使用通配符,谓词,取消可能性和许多其他好成绩。

  • event - 模式观察器的实现。

  • EventBus- 具有异步兼容性的轻量级事件总线。

  • gaurun- client - 用 Go 编写的 Gaurun 客户端。

  • glue - 强大的围棋和 Javascript 的 Socket 库(替代 Socket.io)。

  • go-notify -freedesktop 通知规范的本地实现。

  • go-nsq-NSQ 的官方 Go 软件包。

  • go -socket.io - 用于 golang(实时应用程序框架)的 socket.io 库。

  • go-vitotrol -Viessmann Vitotrol Web 服务的客户端库。

  • Gollum- 一个 n:m 多路复用器,可从不同来源收集消息并将其广播到一组目标。

  • golongpoll- 使 Web pub-sub 变得简单的 HTTP longpoll 服务器库。

  • gopush-cluster -gopush-cluster 是 go push 服务器群集。

  • gorush- 使用 APNs2 和 Google GCM 的推送通知服务器。

  • guble- 使用推送通知(Google Firebase Cloud Messaging,Apple 推送通知服务,SMS)以及 websockets,REST API 的消息服务器,具有分布式操作和消息持久性。

  • hub -Go 应用程序的消息 / 事件中心,使用发布 / 订阅模式并支持如 RabbitMQ 交换之类的别名。

  • jazz- 一个简单的 RabbitMQ 抽象层,用于队列管理以及消息的发布和使用。

  • machinery - 基于分布式消息传递的异步任务队列 / 作业队列。

  • mangos - 具有传输互操作性的 Nanomsg(“可伸缩协议”)的纯 go 实现。

  • melody - 为处理 WebSocket 的会议简约的框架,包括广播和自动平 / 乒乓处理。

  • Mercure- 服务器和库,用于使用 Mercure 协议(建立在 Server-Sent Events 之上)调度服务器发送的更新。

  • messagebus -messagebus 是一种 Go 简单的异步消息总线,非常适合在进行事件源,CQRS 和 DDD 时用作事件总线。

  • NATS Go Client- 轻便,高性能的发布订阅和分布式排队消息系统 - 这是 Go 库。

  • nsq-event- bus - 围绕 NSQ 主题和渠道的小包装。

  • oplog -REST API 的通用 oplog / 复制系统。

  • pubsub- 用于 go 的简单 pubsub 软件包。

  • rabbus -amqp 交换和队列上的小包装。

  • rabtap -RabbitMQ 瑞士军刀 cli 应用程序。

  • RapidMQ -RapidMQ 是用于管理本地消息队列的轻量级且可靠的库。

  • redisqueue -redisqueue 提供使用 Redis 流的队列的生产者和消费者。

  • rmqconn -RabbitMQ 重新连接。包装在 amqp.Connection 和 amqp.Dial 上。允许在断开对 Close()方法的调用之前关闭连接时允许重新连接。

  • sarama -Apache Kafka 的 Go 库。

  • Uniqush-Push -Redis 支持的统一推送服务,用于向移动设备的服务器端通知。

  • zmq4- 到 ZeroMQ 版本 4 的接口。也可用于版本 3 和版本 2

微软办公软件

  • unioffice -Pure Go 库,用于创建和处理 Office Word(.docx),Excel(.xlsx)和 Powerpoint(.pptx)文档。

微软 Excel

用于使用 Microsoft Excel 的库。

  • excelize - 用于读取和写入 Microsoft Excel™(XLSX)文件的 Golang 库。

  • go-excel- 一个简单而轻便的阅读器,可以将类似于 related-db 的 excel 读取为表格。

  • goxlsxwriter -libxlsxwriter 的 Golang 绑定,用于编写 XLSX(Microsoft Excel)文件。

  • xlsx- 用于简化读取 Go 程序中最新版本的 Microsoft Excel 使用的 XML 格式的库。

  • xlsx- 在 Go 程序中读取 / 更新现有 Microsoft Excel 文件的快速安全方法。

依赖注入

用于依赖注入的库。

  • alice -Golang 的附加依赖项注入容器。

  • container - 具有流利且易于使用的界面的强大 IoC 容器。

  • dig -Go 的基于反射的依赖注入工具包。

  • dingo- 基于 Guice 的 Go 依赖注入工具包。

  • fx -Go 的基于依赖项注入的应用程序框架(建立在 dig 之上)。

  • gocontainer- 简单依赖项注入容器。

  • inject- 具有简单接口的基于反射的依赖项注入容器。

  • linker - 基于反射的依赖项注入和具有组件生命周期支持的控制库反转。

  • wire -Golang 的严格运行时依赖注入。

项目布局

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

字符串

用于处理字符串的库。

  • strutil- 字符串实用程序。

  • xstrings- 从其他语言移植的有用的字符串函数的集合。

将这些库放在此处是因为其他类别似乎都不适合。

  • anagent- 具有依赖项注入功能的简约,可插入 Golang evloop /timer 处理程序。

  • antch- 快速,强大且可扩展的 Web 爬网和抓取框架。

  • archiver- 用于制作和提取.zip 和.tar.gz 档案的库和命令。

  • autoflags -Go 程序包可从 struct 字段自动定义命令行标志。

  • avgRating- 根据 Wilson 得分方程计算平均得分和等级。

  • banner - 将精美的横幅广告添加到 Go 应用程序中。

  • base64Captcha -Base64captch 支持数字,数字,字母,算术,音频和数字字母验证码。

  • battery - 跨平台,标准化的电池信息库。

  • bitio- 高度优化的 Go 语言位读写器。

  • browscap_go- 用于浏览器功能项目的 GoLang 库。

  • captcha - 验证软件包为生成验证码提供了一个易于使用的,不受限制的 API。

  • conv- 包 conv 可在 Go 类型之间提供快速直观的转换。

  • datacounter- 用于读者 / 作家 /http.ResponseWriter 的计数器。

  • ffmt- 美化人类的数据显示。

  • ghorg- 快速将整个组织 / 用户存储库克隆到一个目录中 - 支持 GitHub,GitLab 和 Bitbucket。

  • go-commons-pool -Golang 的通用对象池。

  • go-openapi- 解析和利用 open-api 模式的软件包集合。

  • go-resiliency -golang 的弹性模式。

  • go-unarr- 用于 RAR,TAR,ZIP 和 7z 存档的解压缩库。

  • gofakeit- 用 go 编写的随机数据生成器。

  • gommit- 分析 git commit 消息以确保它们遵循定义的模式。

  • gopsutil- 跨平台库,用于检索进程和系统利用率(CPU,内存,磁盘等)。

  • gosh- 提供 Go 统计处理程序,结构,度量方法。

  • gosms -Go 中您自己的本地 SMS 网关,可用于发送 SMS。

  • gotoprom- 官方 Prometheus 客户端的类型安全度量构建器包装器库。

  • gountries- 展示国家和细分数据的软件包。

  • health - 易于使用的可扩展健康检查库。

  • healthcheck- 用于 RESTful 服务的经过审慎并发的运行状况检查 HTTP 处理程序。

  • hostutils- 用于打包和解压缩 FQDN 列表的 golang 库。

  • indigo - 使用 Sonyflake 并由 Base58 编码的分布式唯一 ID 生成器。

  • LK - 一个简单的牌库 golang。

  • llvm- 用于在纯 Go 语言中与 LLVM IR 交互的库。

  • metrics - 指标检测和 Prometheus 展示的库。

  • morse- 可以在莫尔斯电码之间来回转换的库。

  • numa -NUMA 是一个实用的库,用 go 编写。它有助于我们编写一些 NUMA-AWARED 代码。

  • pdfgen -HTTP 服务,用于从 Json 请求生成 PDF。

  • persian-go 中波斯语语言的一些实用程序。

  • sandid- 地球上的每一粒沙都有自己的 ID。

  • shellwords- 一个 Golang 库,用于根据 UNIX Bourne shell 的单词解析规则来操作字符串。

  • shortid- 分布式生成的超短,唯一,非顺序,URL 友好的 ID。

  • stateless - 用于创建状态机的流畅库。

  • stats - 监视 Go MemStats 和系统统计信息(例如内存,交换和 CPU),并通过 UDP 发送到您想要记录的任何位置等。

  • turtle -Go 表情符号。

  • url- shortener - 具有 mysql 支持的现代,强大而强大的 URL 缩短器微服务。

  • VarHandler- 生成样板 http 输入和输出处理。

  • XDG - FreeDesktop.org(XDG)规格的围棋实现。

  • xkg -X 键盘抓取器。

自然语言处理

用于使用人类语言的图书馆。

  • detectlanguage- 语言检测 API Go 客户端。支持批量请求,短短语或单词语言检测。

  • getlang- 快速自然语言检测程序包。

  • go-i18n- 用于处理本地化文本的软件包和一个随附工具。

  • go-localize- 简单易用的 i18n(国际化和本地化)引擎 - 用于翻译语言环境字符串。

  • go-mystem -CGo 与 Yandex.Mystem 的绑定 - 俄罗斯形态分析仪。

  • go-nlp- 用于处理离散概率分布的实用程序和其他可用于执行 NLP 工作的工具。

  • go-pinyin -CN Hanzi 至 Hanyu 拼音转换器。

  • go- stem - 搬运程序阻止算法的实现。

  • go-unidecode -Unicode 文本的 ASCII 音译。

  • go2vec- 用于 word2vec 嵌入的阅读器和实用程序功能。

  • gojieba - 这是一个围棋实施解霸其中中国分词算法。

  • golibstemmer- 转到雪球 libstemmer 库的绑定,包括 porter 2。

  • gotokenizer- 基于字典和 Goram 语言的 Bigram 语言模型的标记器。(现在仅支持中文细分)

  • gounidecode -Go 的 Unicode 音译器(也称为 unidecode)。

  • gse - 进行有效的文本分割;支持英语,中文,日语等。

  • ICU - CGO 结合为 ICU4C C 库检测和转换功能。保证与版本 50.1 兼容。

  • kagome- 用纯 Go 语言编写的 JP 形态分析仪。

  • libtextcat -libtextcat C 库的 Cgo 绑定。保证与 2.2 版兼容。

  • MMSEGO- 这是 MMSEG 的 GO 实现,它是中文分词算法。

  • nlp- 从字符串中提取值,并用 nlp 填充您的结构。

  • nlp- 支持 LSA(潜在语义分析)的 Go Natural Language Processing 库。

  • paicehusk -Paice / Husk 提取算法的 Golang 实现。

  • petrovich- 彼得罗维奇(Petrovich)是图书馆,在给定的语法情况下使用俄语名称。

  • porter- 这是 Martin Porter 的 Porter 词干算法的 C 实现的相当简单的移植。

  • porter2- 非常快的 Porter 2 提取器

  • prose- 用于文本处理的库,支持标记化,词性标记,命名实体提取等。仅限英语。

  • RAKE.go- 快速自动关键字提取算法(RAKE)的 Go 端口。

  • segment- 用于执行 Unicode 标准附件#29 中所述的 Unicode 文本分段的 Go 库

  • 句子 - 句子标记器:将文本转换为句子列表。

  • shamoji -shamoji 是用 Go 编写的单词过滤程序包。

  • snowball -Go 的雪球茎端口(cgo 包装器)。提供单词词干提取功能 Snowball 本机

  • stemmer- 用于 Go 编程语言的 Stemmer 软件包。包括英语和德语词干。

  • textcat -Go 包,用于基于 n-gram 的文本分类,并支持 utf-8 和原始文本。

  • whatlanggo -Go 的自然语言检测程序包。支持 84 种语言和 24 种脚本(书写系统,例如拉丁语,西里尔字母等)。

  •  - 自然 EN 和 RU 语言日期 / 时间分析器具有可插拔的规则。

联网

用于处理网络各层的库。

  • arp- 包 arp 实现 ARP 协议,如 RFC 826 中所述。

  • buffstreams- 通过 TCP 流化协议缓冲区数据变得容易。

  • canopus -CoAP 客户端 / 服务器实施(RFC 7252)。

  • cidranger -Go 的快速 IP 到 CIDR 查找。

  • dhcp6- 软件包 dhcp6 实现了 DHCPv6 服务器,如 RFC 3315 中所述。

  • dns- 使用 DNS 的 Go 库。

  • ether- 用于发送和接收以太网帧的跨平台 Go 软件包。

  • ethernet- 程序包 ethernet 实现对 IEEE 802.3 以太网 II 帧和 IEEE 802.1Q VLAN 标签的封送处理。

  • fasthttp- 软件包 fasthttp 是 Go 的一种快速 HTTP 实现,比 net /http 快 10 倍。

  • fortio- 负载测试库和命令行工具,高级回显服务器和 Web UI。允许指定设置的每秒查询负载,并记录延迟直方图和其他有用的统计数据并对其进行图形化。Tcp,Http,gRPC。

  • ftp- 程序包 ftp 实现 RFC 959 中所述的 FTP 客户端。

  • gaio- 在 proactor 模式下用于 Golang 的高性能 async-io 网络。

  • gev -gev 是基于 Reactor 模式的轻量级,快速,无阻塞的 TCP 网络库。

  • gmqtt -Gmqtt 是一个灵活的高性能 MQTT 代理库,它完全实现了 MQTT 协议 V3.1.1。

  • gnet - gnet 是一种高性能,轻量化,非阻塞,事件驱动的网络用纯围棋框架。

  • gNxI- 使用 gNMI 和 gNOI 协议的网络管理工具的集合。

  • go-getter -Go 库,可使用 URL 从各种来源下载文件或目录。

  • go-powerdns-Golang 的 PowerDNS API 绑定。

  • go-stun -STUN 客户端的 Go 实现(RFC 3489 和 RFC 5389)。

  • gobgp- 使用 Go 编程语言实现的 BGP。

  • golibwireshark- 软件包 golibwireshark 使用 libwireshark 库来解码 pcap 文件并分析解剖数据。

  • gopacket -Go 库,用于使用 libpcap 绑定进行数据包处理。

  • gopcap -libpcap 的包装器。

  • goshark- 软件包 goshark 使用 tshark 解码 IP 数据包并创建数据结构以分析数据包。

  • gosnmp- 用于执行 SNMP 操作的本机 Go 库。

  • gosocsvr- 套接字服务器变得简单。

  • gotcp- 用于快速编写 tcp 应用程序的 Go 软件包。

  • grab - 用于管理文件下载的软件包。

  • graval- 实验性 FTP 服务器框架。

  • HTTPLab -HTTPLabs 可让您检查 HTTP 请求并伪造响应。

  • httpproxy -HTTP 代理处理程序和拨号程序。

  • iplib- 受 python ipaddress 和 ruby ipaddr 启发而使用 IP 地址(net.IP,net.IPNet)的库

  • jazigo -Jazigo 是用 Go 语言编写的工具,用于检索多个网络设备的配置。

  • kcp-go - KCP- 快速可靠的 ARQ 协议。

  • kcptun- 基于 KCP 协议的极其简单和快速的 udp 隧道。

  • lhttp- 强大的 websocket 框架,可以更轻松地构建 IM 服务器。

  • linkio- 用于读取器 / 写入器接口的网络链接速度模拟。

  • llb- 这是代理服务器的非常简单但快速的后端。对于零内存分配和快速响应的快速重定向到预定义域很有用。

  • mdns -Golang 中的简单 mDNS(多播 DNS)客户端 / 服务器库。

  • mqttPaho -Paho Go 客户端提供了一个 MQTT 客户端库,用于通过 TCP,TLS 或 WebSockets 连接到 MQTT 代理。

  • NFF-Go- 用于快速开发云和裸机(以前的 YANFF)的高性能网络功能的框架。

  • packet - 通过 TCP 和 UDP 发送数据包。如果需要,它可以缓冲消息和热交换连接。

  • peerdiscovery -Pure Go 库,用于使用 UDP 多播进行跨平台的本地对等发现。

  • portproxy- 简单的 TCP 代理,它将不支持它的 API 添加到 CORS 支持中。

  • publicip- 包 publicip 返回您的面向公众的 IPv4 地址(互联网出口)。

  • quic- go - 在纯 Go 中实现 QUIC 协议。

  • raw- 包 raw 允许在设备驱动程序级别为网络接口读取和写入数据。

  • sftp- 包 sftp 实现 SSH 文件传输协议,如 https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt 中所述

  • ssh- 用于构建 SSH 服务器的高级 API(包装 crypto /ssh)。

  • sslb- 这是一个超级简单的负载均衡器,只是一个实现某种性能的小项目。

  • stun -RFC 5389 STUN 协议的实现。

  • tcp_server- 用于更快地构建 tcp 服务器的 Go 库。

  • tspool -TCP 库使用工作池来提高性能并保护您的服务器。

  • UTP - 围棋 UTP 微传输协议的实现。

  • water - 简单的 TUN / TAP 库。

  • webrtc -WebRTC API 的纯 Go 实现。

  • winrm- 进入 WinRM 客户端以在 Windows 计算机上远程执行命令。

  • xtcp- 具有同步全双工通信,安全关闭,自定义协议的 TCP Server Framework。

HTTP 客户端

用于发出 HTTP 请求的库。

  • gentleman - 功能齐全的插件驱动的 HTTP 客户端库。

  • grequests- 著名的 Requests 库的 Go 克隆。

  • heimdall- 具有重试和 hystrix 功能的增强型 http 客户端。

  • httpretry- 使用重试功能丰富默认的 go HTTP 客户端。

  • pester - 使用重试,退避和并发进行 HTTP 客户端调用。

  • resty- 受 Ruby rest-client 启发的 Go 的简单 HTTP 和 REST 客户端。

  • rq -golang stdlib HTTP 客户端的更好接口。

  • sling -Sling 是 Go HTTP 客户端库,用于创建和发送 API 请求。

的 OpenGL

在 Go 中使用 OpenGL 的库。

  • gl- 用于 OpenGL 的绑定(通过 glow 生成)。

  • glfw -GLFW 3 的绑定。

  • goxjs / gl- 跨平台的 OpenGL 绑定(OS X,Linux,Windows,浏览器,iOS,Android)。

  • goxjs / glfw- 跨平台的 glfw 库,用于创建 OpenGL 上下文并接收事件。

  • mathgl- 受 GLM 启发,专门用于 3D 数学的 Pure Go 数学软件包。

ORM

实现对象关系映射或数据映射技术的库。

  • beego orm- 强大的 orm 框架。支持:pq /mysql/sqlite3。

  • go-firestorm -Google / Firebase Cloud Firestore 的简单 ORM。

  • go-pg -PostgreSQL ORM,专注于 PostgreSQL 特定的功能和性能。

  • go-queryset- 具有代码生成功能的 100%类型安全的 ORM,并基于 GORM 支持 MySQL,PostgreSQL,Sqlite3,SQL Server。

  • go-sqlbuilder- 灵活而强大的 SQL 字符串构建器库以及零配置 ORM。

  • go- store - 用于 Go 的简单快速的 Redis 支持的键值存储库。

  • GORM - 这些巨大的 ORM 库 Golang,目的是开发者友好。

  • gormt - 将 MySQL 数据库转换为 golang gorm 结构。

  • gorp -Go Relational Persistence,用于 Go 的 ORM 类库。

  • grimoire -Grimoire 是数据库访问层和 golang 验证。(支持:MySQL,PostgreSQL 和 SQLite3)。

  • lore - 用于 Go 的简单轻便的伪 ORM / 伪结构映射环境。

  • Marlow- 从项目结构生成的 ORM,用于编译时安全保证。

  • pop / soda -MySQL,PostgreSQL 和 SQLite 的数据库迁移,创建,ORM 等。

  • QBS- 代表按结构查询。Go ORM。

  • reform - 基于非空接口和代码生成的更好的 ORM for Go。

  • rel - Golang SQL 库层清洁(洋葱)架构。

  • SQLBoiler -ORM 生成器。生成针对您的数据库模式量身定制的功能强大且快速的 ORM。

  • upper.io/db- 用于使用包装成熟的数据库驱动程序的适配器与不同数据源进行交互的单个接口。

  • Xorm -Go 的简单而强大的 ORM。

  • zoom - 超快数据存储和查询引擎建立在 Redis 的。

包装管理

依赖和程序包管理的官方工具

  • go modules- 模块是源代码交换和版本控制的单元。go 命令直接支持使用模块,包括记录和解决对其他模块的依赖性。

用于包管理的官方实验工具

  • dep -Go 依赖工具。

  • vgo- 版本化的 Go。

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

  • gigo- 用于 golang 的类似 PIP 的依赖项工具,支持私有存储库和哈希。

  • glide - 轻松管理您的 golang 供应商和供应商软件包。受到 Maven,Bundler 和 Pip 等工具的启发。

  • godep -go 的依赖工具,godep 通过修复程序包的依赖关系可重复构建软件包。

  • gom -Go Manager-Go 捆绑包。

  • GOOP - 简单的依赖经理围棋(golang),通过捆扎机的启发。

  • gop - 在 GOPATH 之外构建和管理 Go 应用程序。

  • gopm- 转到软件包管理器。

  • govendor -Go 软件包管理器。使用标准供应商文件的 Go 供应商工具。

  • gpm- 准系统 Go 的准系统依赖管理器。

  • johnny-deps- 使用 Git 的最小依赖版本。

  • mvn-golang - 该插件提供了自动加载 Golang SDK,依赖性管理以及在 Maven 项目基础架构中启动构建环境的方式。

  • nut -Vendor Go 依赖项。

  • VenGO- 创建和管理可导出的隔离 go 虚拟环境。

性能

  • jaeger- 分布式跟踪系统。

  • profile - 简单的分析支持包围棋。

  • tracer - 简单,轻便的跟踪。

查询语言

  • gojsonq- 一个用于查询 JSON 数据的简单 Go 包。

  • graphql -graphql 解析器和实用程序。

  • graphql- 专注于易用性的 GraphQL 服务器。

  • graphql-go -GraphQL for Go 的实现。

  • jsonql - Golang 中的 JSON 查询表达式库。

  • jsonslice- 具有高级过滤器的 Jsonpath 查询。

  • rql -REST API 的资源查询语言。

  • straf- 轻松将 Golang 结构转换为 GraphQL 对象。

资源嵌入

  • ESC - 嵌入功能文件到电脑围棋程序,并提供 http.FileSystem 接口给他们。

  • fileb0x- 嵌入文件的简单工具,重点放在 “自定义” 上,易于使用。

  • go-embed- 生成 go 代码以将资源文件嵌入到您的库或可执行文件中。

  • go-resources -Go 中嵌入的多余资源。

  • go.rice -go.rice 是一个 Go 程序包,使处理 html,js,css,图像和模板等资源非常容易。

  • packr- 将静态文件嵌入 Go 二进制文件的简单方法。

  • statics - 将静态资源嵌入 go 文件中以进行单个二进制编译 + 与 http.FileSystem + 符号链接一起使用。

  • statik - 将静态文件嵌入 Go 可执行文件。

  • templify- 将外部模板文件嵌入 Go 代码中以创建单个文件二进制文件。

  • vfsgen- 生成静态实现给定虚拟文件系统的 vfsdata.go 文件。

科学与数据分析

用于科学计算和数据分析的图书馆。

  • assocentity- 包关联性返回单词到给定实体的平均距离。

  • bradleyterry- 提供 Bradley-Terry 模型进行成对比较。

  • chart -Go 的简单图表绘图库。支持多种图形类型。

  • dataframe - go - 用于机器学习和统计的数据框(类似于熊猫)。

  • evaler- 简单的浮点算术表达式评估器。

  • ewma- 指数加权移动平均值。

  • geom -golang 的 2D 几何。

  • go-dsp -Go 的数字信号处理。

  • go- gt - 用 “Go” 语言编写的图论算法。

  • goent- 熵测度的 GO 实施。

  • gohistogram- 数据流的近似直方图。

  • gonum - Gonum 是 Go 编程语言的一组数字库。它包含用于矩阵,统计信息,优化等的库。

  • gonum / plot -gonum /plot 提供了一个用于在 Go 中构建和绘制图的 API。

  • goraph -Pure Go 图论库(数据结构,算法可视化)。

  • gosl -Go 科学图书馆,提供线性代数,FFT,几何,NURBS,数值方法,概率,优化,微分方程等。

  • GoStats -GoStats 是用于数学统计的开源 GoLang 库,主要用于机器学习领域,它涵盖了大多数统计度量功能。

  • graph- 基本图形算法库。

  • ode- 常微分方程(ODE)求解器,支持扩展状态和基于通道的迭代停止条件。

  • ORB - 二维几何类型与剪裁外,GeoJSON 和 Mapbox 矢量砖支撑。

  • pagerank- 在 Go 中实现的加权 PageRank 算法。

  • piecewiselinear- 微小的线性插值库。

  • PiHex- 十六进制数 Pi 的 “Bailey-Borwein-Plouffe” 算法的实现。

  • rootfinding- 用于查找二次函数根的寻根算法库。

  • 稀疏 - 线性代数的 Go 稀疏矩阵格式,支持科学和机器学习应用程序,与 gonum 矩阵库兼容。

  • stats -Golang 标准库中缺少常用功能的统计信息包。

  • streamtools- 用于处理数据流的通用图形工具。

  • TextRank -Golang 中的 TextRank 实现,具有可扩展的功能(摘要,加权,短语提取)和多线程(goroutine)支持。

  • triangolatte -2D 三角剖分库。允许将线和多边形(均基于点)转换为 GPU 的语言。

安全

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

  • acmetool- 具有自动续订功能的 ACME(我们加密)客户端工具。

  • acra- 网络加密代理,可保护基于数据库的应用程序免遭数据泄漏:强大的选择性加密,SQL 注入预防,入侵检测系统。

  • argon2pw- 具有恒定时间密码比较的 Argon2 密码哈希生成。

  • autocert- 自动配置让我们加密证书并启动 TLS 服务器。

  • BadActor- 基于 fail2ban 精神构建的内存中应用程序驱动的狱卒。

  • Cameradar- 从远程监控摄像机远程破解 RTSP 流的工具和库。

  • certificates - 用于生成 tls 证书的自以为是的工具。

  • go-generate-password- 密码生成器,可以在 cli 上使用或用作库。

  • go-yara -Go Bindings for YARA,“用于恶意软件研究人员(和其他所有人)的模式匹配瑞士刀”。

  • goArgonPass -Argon2 密码哈希和验证,旨在与现有的 Python 和 PHP 实现兼容。

  • goSecretBoxPassword- 一个可能偏执的软件包,用于安全地哈希和加密密码。

  • interpol - 基于规则的数据生成器,用于模糊和渗透测试。

  • lego -Pure Go ACME 客户端库和 CLI 工具(与 Let’s Encrypt 一起使用)。

  • memguard- 用于处理内存中敏感值的纯 Go 库。

  • nacl -NaCL API 集的实现。

  • passlib - 永不过时的密码哈希库。

  • secure - 用于 Go 的 HTTP 中间件,有助于快速赢得安全性。

  • simple- scrypt - 具有简单,明显 API 和内置自动成本校准功能的 Scrypt 软件包。

  • ssh- vault - 使用 ssh 密钥加密 / 解密。

  • sslmgr- 通过围绕 acme /autocert 的高级包装,可以轻松实现 SSL 证书。

序列化

库和二进制序列化工具。

  • asn1- 用于 golang 的 Asn.1 BER 和 DER 编码库。

  • bambam - 开始使用 Cap’n Proto 模式的生成器。

  • BEL - 生成围棋结构 / 接口打字稿接口。对 JSON RPC 有用。

  • binstruct -Golang 二进制解码器,用于将数据映射到结构中。

  • cbor- 小型,安全和便捷的 CBOR 编码和解码库。

  • colfer -Colfer 二进制格式的代码生成。

  • csvutil- 对本地 Go 结构的高性能,惯用 CSV 记录编码和解码。

  • elastic - 无论何时,都可以在运行时跨不同类型转换切片,地图或任何其他未知值。

  • fixedwidth- 固定宽度的文本格式(支持 UTF-8)。

  • fwencoder - Go 的固定宽度文件解析器(编码和解码库)。

  • go-capnproto -Cap’n Proto 库和 go 解析器。

  • go- codec - 用于 msgpack,cbor 和 json 的高性能,功能丰富,惯用的编码,解码和 rpc 库,具有基于运行时的 OR 代码生成支持。

  • gogoprotobuf -Go 与小工具一起使用的协议缓冲区。

  • goprotobuf- 以库和协议编译器插件的形式提供对 Google 协议缓冲区的支持。

  • jsoniter- “encoding /json” 的高性能 100%兼容的嵌入式替换。

  • mapstructure -Go 库,用于将通用地图值解码为本地 Go 结构。

  • php_session_decoder -GoLang 库,用于使用 PHP 会话格式和 PHP 序列化 / 反序列化功能。

  • pletter - 为消息代理包装原始消息的标准方法。

  • structomap- 从静态结构轻松动态地生成地图的库。

服务器应用

  • algernon -HTTP / 2 Web 服务器,内置对 Lua,Markdown,GCSS 和 Amber 的支持。

  • Caddy -Caddy 是易于配置和使用的备用 HTTP / 2 Web 服务器。

  • consul -Consul 是用于服务发现,监视和配置的工具。

  • devd- 开发人员的本地网络服务器。

  • discovery - 用于弹性中间层负载平衡和故障转移的注册表。

  • dudeldu- 一个简单的 SHOUTcast 服务器。

  • etcd- 高可用性的键值存储,用于共享配置和服务发现。

  • Fider -Fider 是一个开放平台,用于收集和组织客户反馈。

  • Flagr -Flagr 是一种开源功能标记和 A / B 测试服务。

  • flipt- 用 Go 和 Vue.js 编写的自包含功能标志解决方案

  • jackal- 用 Go 编写的 XMPP 服务器。

  • minio - Minio 是分布式对象存储服务器。

  • nginx-prometheus -Nginx 日志解析器和 Prometheus 的导出器。

  • nsq- 实时分布式消息传递平台。

  • psql-streamer- 将数据库事件从 PostgreSQL 流化到 Kafka。

  • riemann-relay- 中继以实现 Riemann 事件的负载平衡和 / 或将其转换为 Carbon。

  • RoadRunner- 高性能 PHP 应用程序服务器,负载平衡器和进程管理器。

  • SFTPGo- 功能齐全且可高度配置的 SFTP 服务器软件。

  • Trickster -HTTP 反向代理缓存和时间序列加速器。

  • yakvs- 小型网络内存中键值存储。

流处理

用于流处理和反应式编程的库和工具。

模板引擎

用于模板化和词汇化的库和工具。

  • ace -Ace 是 Go 语言的 HTML 模板引擎,其灵感来自 Slim 和 Jade。王牌是黄金的提炼。

  • amber - 琥珀色是 Go 编程语言的优雅模板引擎,其灵感来自 HAML 和 Jade。

  • damsel- 标记语言,具有通过 css-selectors 进行 html 概述的功能,可通过 pkg html /template 等扩展。

  • ego- 轻量级的模板语言,可让您在 Go 中编写模板。模板被翻译成 Go 并被编译。

  • extemplate- 围绕 html /template 的微型包装器,可轻松实现基于文件的模板继承。

  • fasttemplate- 简单快速的模板引擎。替换模板占位符的速度比 text / template 快 10 倍。

  • gofpdf- 具有高级支持的文本,图形和图像的 PDF 文档生成器。

  • gospin- 文章旋转和 spintax /spinning 语法引擎,适用于 A / B,测试文本 / 文章并创建更自然的对话。

  • goview -Goview 是一个基于 golang html /template 的轻量级,极简且惯用的模板库,用于构建 Go Web 应用程序。

  • hero -Hero 是一个方便,快速且强大的 go 模板引擎。

  • jet -Jet 模板引擎。

  • kasia.go -HTML 和其他文本文档的模板系统 - 执行。

  • liquid -Shopify Liquid 模板的实现。

  • maroto- 一种创建 PDF 的 maroto 方法。Maroto 受 Bootstrap 启发,并使用 gofpdf。快速简单。

  • mustache -Mustache 模板语言的 Go 实现。

  • pongo2 -Go 的类似 Django 的模板引擎。

  • quicktemplate- 快速,强大但易于使用的模板引擎。将模板转换为 Go 代码,然后进行编译。

  • raymond -Go 中完整的车把实现。

  • Razor -Golang 的 Razor 视图引擎。

  • 遵循官方规格的 Go 的 Soy -closure 模板(也称为 Soy 模板)。

  • velvet -Go 中完整的车把实现。

测试中

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

  • 测试框架

    • apitest- 用于基于 REST 的服务或 HTTP 处理程序的简单且可扩展的行为测试库,支持模拟外部 http 调用和序列图的呈现。

    • assert- 与本地本机 go 测试一起使用的基本断言库,带有用于自定义断言的构建块。

    • badio -Go testing/iotest 包的扩展。

    • baloo- 表达性和通用性的端到端 HTTP API 测试变得容易。

    • biff- 分叉测试框架,与 BDD 兼容。

    • charlatan- 生成用于测试的虚假接口实现的工具。

    • commander- 用于在 Windows,Linux 和 osx 上测试 cli 应用程序的工具。

    • cupaloy- 适用于您的测试框架的简单快照测试插件。

    • dbcleaner- 受 database_cleanerRuby 启发,清理数据库以进行测试。

    • dsunit- 数据存储区测试 SQL,NoSQL,结构化文件。

    • Embedded- Postgres - 作为另一个 Go 应用程序或测试的一部分,在 Linux,OSX 或 Windows 上本地运行真实的 Postgres 数据库。

    • endly - 声明式端到端功能测试。

    • flute -HTTP 客户端测试框架。

    • frisby -REST API 测试框架。

    • ginkgo -Go 的 BDD 测试框架。

    • go-carpet- 用于在终端中查看测试覆盖率的工具。

    • go-cmp- 用于比较测试中 Go 值的软件包。

    • go-mutesting -Go 源代码的变异测试。

    • go-testdeep- 极其灵活的 golang 深度比较,扩展了 go 测试包。

    • go-vcr- 记录并重放 HTTP 交互,以进行快速,确定性和准确的测试。

    • goblin - 摩卡(Mocha)像 Go 的测试框架

    • gocheck - 比 getest 更高级的测试框架。

    • GoConvey- 具有 Web UI 和实时重载的 BDD 样式的框架。

    • gocrest -Go 断言的可组合的类似于 hamcrest 的匹配器。

    • godog- 类似于 Go 的 BDD 框架的 Cucumber 或 Behat

    • gofight -Golang 路由器框架的 API 处理程序测试。

    • gogiven -Go 的类似 YATSPEC 的 BDD 测试框架。

    • gomatch- 创建用于根据模式测试 JSON 的库。

    • gomega - Rspec,例如匹配器 / 断言库。

    • GoSpec- 用于 Go 编程语言的 BDD 样式测试框架。

    • gospecify- 这提供了 BDD 语法来测试您的 Go 代码。使用过 rspec 之类的库的任何人都应该熟悉。

    • gosuite-testing 利用 Go1.7 的子测试,使带有设置 / 拆卸功能的轻量级测试套件成为可能。

    • gotest.tools- 软件包的集合,以增强 go 测试软件包并支持常见模式。

    • Hamcrest- 用于声明式 Matcher 对象的流利框架,将其应用于输入值时,会产生自描述结果。

    • httpexpect- 简洁,声明性且易于使用的端到端 HTTP 和 REST API 测试。

    • jsonassert- 用于验证 JSON 有效负载已正确序列化的软件包。

    • restit- 微型框架,可帮助编写 RESTful API 集成测试。

    • schema - 在请求和响应中使用 JSON 模式方便快捷则表达式匹配。

    • testcase - 行为驱动开发的惯用测试框架。

    • testfixtures -Rails 的测试夹具,用于测试数据库应用程序。

    • testify - 对标准 go 测试包的神圣扩展。

    • testmd- 将 markdown 代码片段转换为可测试的 go 代码。

    • testsql- 在测试之前从 SQL 文件生成测试数据,并在完成后将其清除。

    • trial - 快速简单的可扩展断言,无需引入太多样板文件。

    • Tt- 简单而丰富多彩的测试工具。

    • wstest -Websocket 客户端,用于对 websocket http.Handler 进行单元测试。

  • 嘲笑

    • counterfeiter - 生成独立模拟对象的工具。

    • go-sqlmock- 用于测试数据库交互的模拟 SQL 驱动程序。

    • go-txdb- 基于单事务的数据库驱动程序,主要用于测试目的。

    • gock- 多种 HTTP 模拟变得容易。

    • gomock -Go 编程语言的模拟框架。

    • govcr- 用于 Golang 的 HTTP 模拟:记录和重放 HTTP 交互以进行脱机测试。

    • hoverfly -HTTP(S)代理,用于使用可扩展的中间件和易于使用的 CLI 记录和模拟 REST / SOAP API。

    • httpmock- 轻松模拟来自外部资源的 HTTP 响应。

    • minimock -Go 接口的模拟生成器。

    • mockhttp -Go http.ResponseWriter 的模拟对象。

    • timex- 对本机 time 软件包的测试友好替代。

  • 调试。

    • go-fuzz- 随机测试系统。

    • gofuzz- 用于使用随机值填充 go 对象的库。

    • Tavor- 通用的模糊和增量调试框架。

  • 浏览器控制工具。

    • cdp -Chrome 调试协议的类型安全绑定,可与实现该协议的浏览器或其他调试目标一起使用。

    • chromedp- 一种驱动 / 测试 Chrome,Safari,Edge,Android Webview 和其他支持 Chrome 调试协议的浏览器的方法。

    • ggr- 轻量级服务器,将 Selenium WebDriver 请求路由和代理到多个 Selenium 集线器。

    • rod - A 镀铬 devtools 控制器,很容易和安全使用。

    • selenoid- 在容器内启动浏览器的备用 Selenium 集线器服务器。

  • 注入

文字处理

用于解析和处理文本的库。

  • 特定格式

    • align- 对齐文本的通用应用程序。

    • allot -CLI 工具和漫游器的占位符和通配符文本解析。

    • bbConvert- 将 bbCode 转换为 HTML,使您可以添加对自定义 bbCode 标记的支持。

    • blackfriday -Go 中的 Markdown 处理器。

    • bluemonday -HTML 清理工具。

    • codetree- 解析缩进的代码(python,pixy,scarlet 等)并返回树结构。

    • colly -Gophers 的快速优雅的刮取框架。

    • commonregex -Go 的通用正则表达式的集合。

    • dataflowkit -Web 抓取框架,用于将网站转换为结构化数据。

    • did 了 - Go 中的 DID(分散标识符)解析器和 Stringer。

    • doi -Go 中的文档对象标识符(doi)解析器。

    • editorconfig-core-go -Go 的 Editorconfig 文件解析器和操纵器。

    • enca - libenca 的最小 cgo 绑定。

    • encdec- 程序包为编码器和解码器提供通用接口。

    • genex- 计算正则表达式并将其扩展为所有匹配的字符串。

    • github_flavored_markdown -GitHub Flavored Markdown 渲染器(使用 blackfriday),带有围栏代码块突出显示,可单击的标头锚链接。

    • go-fixedwidth- 固定宽度的文本格式(带反射的编码器 / 解码器)。

    • go- humanize - 将时间,数字和内存大小的格式化程序转换为可读格式。

    • go-nmea- 用于 Go 语言的 NMEA 解析器库。

    • go-runewidth- 获取固定宽度的字符或字符串的函数。

    • go-slugify- 通过多种语言支持,使之非常出色。

    • go-toml- 具有查询支持和方便的 cli 工具的 TOML 格式的 Go 库。

    • go-vcard- 解析和格式化 vCard。

    • go-zero-width -Go 的零宽度字符检测和删除。

    • gofeed- 在 Go 中解析 RSS 和 Atom 提要。

    • gographviz- 解析 Graphviz DOT 语言。

    • gommon /bytes - 将字节格式化为字符串。

    • gonameparts - 将人名解析为单独的名称部分。

    • goq- 使用带有 jQuery 语法的 struct 标记对 HTML 进行声明式解封(使用 GoQuery)。

    • GoQuery -GoQuery 为 Go 语言带来了一种类似于 jQuery 的语法和一组功能。

    • goregen- 用于从正则表达式生成随机字符串的库。

    • goribot- 一个简单的 golang 爬虫 / 抓取框架,分 3 行构建一个蜘蛛。

    • gotext -Go 的 GNU gettext 实用程序。

    • guesslanguage- 确定 unicode 文本的自然语言的功能。

    • htmlquery- 用于 HTML 的 XPath 查询包,可让您通过 XPath 表达式从 HTML 文档中提取数据或评估。

    • 注入 - 包注入提供基于反射的注入器。

    • ltsv- 用于 Go 的高性能 LTSV(标签制表符分隔值)阅读器。

    • mxj- 将 XML 编码 / 解码为 JSON 或 map [string] interface {}; 使用点符号路径和通配符提取值。替换 x2j 和 j2x 软件包。

    • podcast -Golang 中的 iTunes 兼容和 RSS 2.0 Podcast Generator

    • sdp -SDP:会话描述协议 [ RFC 4566 ]。

    • sh -Shell 解析器和格式化程序。

    • slug - URL 友好 slugify 多语言支持。

    • Slugify- 去处理字符串的 Slugify 应用程序。

    • syndfeed -Atom 1.0 和 RSS 2.0 的联合供稿。

    • toml -TOML 配置格式(带反射的编码器 / 解码器)。

  • 效用

    • gofuckyourself- 用于 Go 的基于消毒的发誓过滤器。

    • gotabulate- 使用 Go 轻松漂亮地打印表格数据。

    • kace- 涵盖常见首字母缩写的常见案例转换。

    • parseargs-go- 理解引号和反斜杠的字符串参数解析器。

    • parth -URL 路径分段解析。

    • radix- 快速字符串排序算法。

    • Tagify- 从给定的来源产生一组标签。

    • textwrap-textwrap 从 Python 实现模块。

    • TySug- 关于键盘布局的替代建议。

    • xj2go- 将 xml 或 json 转换为 struct。

    • xurls- 从文本中提取 URL。

第三方 API

用于访问第三方 API 的库。

实用工具

通用工具和工具,使您的生活更轻松。

  • APM - 用于 Golang 应用程序与 HTTP API 过程管理器。

  • backscanner- 类似于 bufio.Scanner 的扫描仪,但是它以相反的顺序读取和返回行,从给定位置开始并向后移动。

  • beyond -Go 工具将带您进入 AOP 世界!

  • blank - 验证或删除字符串中的空格和空格。

  • boilr - 十分快速的 CLI 工具,用于从样板模板创建项目。

  • chyle- 使用 git 存储库的 Changelog 生成器,具有多种配置可能性。

  • circuit - 高效和完整的功能猬比如去执行断路器的格局。

  • circuitbreaker - 断路器在 Go。

  • clockwork - 用于 golang 的简单假时钟。

  • cmd- 在 osx,windows 和 linux 上执行 shell 命令的库。

  • command - 命令模式的围棋与线程安全的串行和并行调度。

  • copy-pasta- 通用多工作站剪贴板,使用后端等 S3 进行存储。

  • countries - 全面实施 ISO-3166-1,ISO-4217,ITU-T E.164,Unicode CLDR 和 IANA ccTLD 标准。

  • CTOP - 顶状接口(例如 HTOP),用于容器的指标。

  • ctxutil- 上下文的实用程序功能的集合。

  • dbt- 一种框架,用于从受信任的中央存储库运行自更新签名的二进制文件。

  • death - 通过信号管理 go 应用程序关闭。

  • Deepcopier -Go 的简单结构复制。

  • delve- 调试器。

  • dlog- 编译时控制的记录器,可在不删除调试调用的情况下缩小发行版。

  • ergo 了在不同端口上运行的多个本地服务的管理。

  • evaluator - 根据 s 表达式动态求值。它很容易扩展。

  • filetype- 小包,用于推断检查魔术数字签名的文件类型。

  • filler - 使用 “填充” 标签的小工具来填充结构。

  • filter - 提供过滤,消毒,和转到数据的转换。

  • fzf- 用 Go 编写的命令行模糊查找器。

  • gaper- 在 Go 项目崩溃或某些观看的文件更改时生成并重新启动 Go 项目。

  • generate- 运行 go 在指定的路径或环境变量上递归生成,并且可以通过正则表达式进行过滤。

  • ghokin- 并行化的格式化程序,没有黄瓜的外部依赖关系(黄瓜,behat …)。

  • git-time-metric -Git 的简单,无缝,轻量级时间跟踪。

  • go-astitodo- 在您的 GO 代码中解析 TODO

  • go-bind-plugin -go:generate 工具,用于包装由 golang 插件导出的符号(仅限 1.8)。

  • go-bsdiff- 纯 Go bsdiff 和 bspatch 库以及 CLI 工具。

  • go-dry -Go 的干燥包装(请勿重复)。

  • go-funk- 现代 Go 实用程序库,提供了帮助程序(映射,查找,包含,过滤器,块,反向等)。

  • go-health - 运行状况软件包简化了将运行状况检查添加到服务中的方式。

  • go-httpheader -Go 库,用于将结构编码为 Header 字段。

  • go-problemdetails- 用于处理问题详细信息的 Go 软件包。

  • go-rate -Go 的定时速率限制器。

  • go-sitemap- generator - 用 Go 编写的 XML Sitemap 生成器。

  • go-trigger -Go-lang 全局事件触发程序,使用 ID 注册事件并从项目的任何位置触发事件。

  • goback - 使用简单的指数补偿程序包。

  • godaemon- 编写守护程序的实用程序。

  • godropbox- 用于从 Dropbox 编写 Go 服务 / 应用程序的通用库。

  • gohper- 各种工具 / 模块有助于开发。

  • golarm- 具有系统事件的火灾警报。

  • golog- 简单,轻量级的 CLI 工具,可定时跟踪您的任务。

  • gopencils- 小型简单的程序包,可轻松使用 REST API。

  • goplaceholder- 一个小的 golang 库,用于生成占位符图像。

  • goreadability- 使用 Facebook Open Graph 和 arc90 的可读性的网页摘要提取器。

  • goreleaser- 尽可能快速,轻松地交付 Go 二进制文件。

  • goreporter -Golang 工具,可进行静态分析,单元测试,代码审查并生成代码质量报告。

  • goseaweedfs- 具有几乎全部功能的 SeaweedFS 客户端库。

  • gostrutils- 字符串操作和转换函数的集合。

  • gotenv- 从 Go .env 或任何 io.ReaderGo 中加载环境变量。

  • gpath- 使用 Go 的反射形式简化访问结构字段的库。

  • gubrak -Golang 实用程序库,带有语法糖。就像 lodash,但对于 golang。

  • handy - 字符串处理程序 / 格式化程序和验证程序等许多实用程序和帮助程序。

  • htcat- 并行和流水线 HTTP GET 实用程序。

  • hub- 包装 git 命令,并带有其他功能以从终端与 github 交互。

  • hystrix-go- 实现程序员定义的备用(又称为断路器)的 Hystrix 模式。

  • 不朽 -* nix 跨平台(不可知操作系统)主管。

  • intrinsic - 使用 x86 SIMD 而不编写任何汇编代码。

  • jsend- 用 Go 语言编写的 JSend 实现。

  • jump - 跳跃可帮助您通过学习习惯来更快地导航。

  • koazee- 受到懒惰评估和函数式编程启发的库,消除了使用数组的麻烦。

  • limiters -Golang 中分布式应用程序的速率限制器,具有可配置的后端和分布式锁。

  • lrserver -Go 的 LiveReload 服务器。

  • mc -Minio Client 提供了最少的工具来与 Amazon S3 兼容的云存储和文件系统一起使用。

  • mergo- 在 Golang 中合并结构和地图的助手。对于配置默认值很有用,避免了混乱的 if 语句。

  • mimemagic -Pure Go 高性能 MIME 嗅探库 / 实用程序。

  • mimesniffer -Go 的 MIME 类型嗅探器。

  • mimetype- 用于基于幻数的 MIME 类型检测的软件包。

  • minify-HTML,CSS,JS,XML,JSON 和 SVG 文件格式的快速缩小器

  • minquery- 支持高效分页的 MongoDB /mgo.v2 查询(光标继续列出我们停下来的文档)。

  • mmake- 现代品牌。

  • Moldova- 用于基于输入模板生成随机数据的实用程序。

  • mole -cli 应用程序,可轻松创建 ssh 隧道。

  • mssqlx- 数据库客户端库,任何主从服务器,主主服务器结构的代理。轻巧且自动平衡。

  • multitick- 用于对齐的行情的多路复用器。

  • myhttp- 使用超时支持发出 HTTP GET 请求的简单 API。

  • okrun- 运行错误压路机。

  • olaf -Go 中实现的 Twitter Snowflake。

  • onecache- 缓存库,支持多个后端存储(Redis,Memcached,文件系统等)。

  • panicparse - 将类似的 goroutines 分组并为堆栈转储着色。

  • pattern- match - 模式匹配 libray。

  • peco- 简化的交互式过滤工具。

  • pgo -PHP 社区的便捷功能。

  • pm - 过程(即够程)与 HTTP API 管理器。

  • ptr- 提供用于简化从基本类型的常量创建指针的功能的软件包。

  • r - range()Go 的类似 Python 的体验。

  • rclient- 用于 REST API 的可读,灵活,易于使用的客户端。

  • realize - 使用文件监视程序构建系统并实时重新加载。使用自定义路径运行,构建和监视文件更改。

  • repeat - 实施不同的退避策略,对重试操作和心跳很有用。

  • request- 转到 “人类 HTTP 请求”。

  • rerate- 用于 Go 的基于 Redis 的速率计数器和速率限制器。

  • rerun - 在源更改时重新编译并重新运行 go 应用。

  • rest-go- 一个软件包,提供了许多使用 rest api 的有用方法。

  • kamilsk/retry - 最先进的功能机制,可以重复执行操作直到成功。

  • retry - 用于 Go 的简单但高度可配置的重试包。

  • retry - 用于 Go 的简单重试机制包。

  • retry - 一个非常简单的库,以确保完成您的工作。

  • retry-go -golang 的重试变得简单容易。

  • robustly - 灵活运行功能,捕获并重新启动紧急情况。

  • scan - 扫描 golang sql.Rows 直接结构,条带或基本类型。

  • serve - 您需要的任何位置的静态 http 服务器。

  • shutdown- 应用关机钩子进行 os.Signal 处理。

  • silk - 读取丝绸 netflow 文件。

  • slice- 常见的 Go slice 操作的类型安全函数。

  • sliceconv- 基本类型之间的切片转换。

  • slicer - 使切片操作更加轻松。

  • Spinner -Go 程序包,可轻松为终端 Spinner 提供选项。

  • sqlx- 在出色的内置数据库 /sql 软件包的基础上提供了一组扩展。

  • storm - 简单和 BoltDB 强大的工具包。

  • structs- 实现简单的功能来操纵结构。

  • task - 简单的 “制作” 替代方案。

  • tome -Tome 旨在分页简单的 RESTful API。

  • toolbox - 切片,映射,多图,结构,函数,数据转换实用程序。服务路由器,宏评估程序,令牌生成器。

  • ugo -ugo 是切片工具箱,具有 Go 的简洁语法。

  • UNIS -Go 中字符串实用程序的 Common Architecture™。

  • usql -usql 是 SQL 数据库的通用命令行界面。

  • util- 有用的实用程序功能的集合。(字符串,并发,操作等)。

  • wuzz- 用于 HTTP 检查的交互式 cli 工具。

  • xferspdy -Xferspdy 在 golang 中提供了二进制差异和补丁库。

UUID

用于处理 UUID 的库。

  • goid- 生成并解析符合 RFC4122 的 V4 UUID。

  • nanoid- 微型高效的 Go 唯一字符串 ID 生成器。

  • sno- 具有嵌入式元数据的紧凑,可排序和快速的唯一 ID。

  • ulid -ULID(通用唯一词典分类排序标识符)的实现。

  • uniq- 使用命令无需麻烦,安全,快速的唯一标识符。

  • uuid- 使用快速或具有加密质量的随机节点标识符生成,编码和解码 UUID v1。

  • uuid- 通用唯一标识符(UUID)的实现。支持创建和解析 UUID。积极维护 satori uuid 的叉子。

  • wuid- 一种非常快速的唯一数字生成器,比 UUID 快 10-135 倍。

验证方式

用于验证的库。

  • checkdigit- 提供校验位算法(Luhn,Verhoeff,Damm)和计算器(ISBN,EAN,JAN,UPC 等)。

  • gody -🎈 Go 的轻量级结构验证器。

  • govalid- 快速,基于标签的结构验证。

  • govalidator- 用于字符串,数字,切片和结构的验证器和消毒剂。

  • govalidator- 使用简单规则验证 Golang 请求数据。受到 Laravel 请求验证的极大启发。

  • JIO - JIO 类似于 JSON 模式验证淳佳

  • ozzo-validation- 支持使用普通代码结构中指定的可配置和可扩展验证规则(而不是 struct 标记)对各种数据类型(结构,字符串,映射,切片等)进行验证。

  • terraform-validator -Terraform 的规范和约定验证器。

  • validate- 用于数据验证和过滤的 Go 软件包。支持验证 Map,Struct,Request(Form,JSON,url.Values,Uploaded Files)数据和更多功能。

  • validate- 该软件包提供了一个框架,可为 Go 应用程序编写验证。

  • validator - 进行结构和字段验证,包括交叉场,交叉结构,地图,切片和阵列潜水。

版本控制

用于版本控制的库。

  • GH - 脚本化服务器和网络 / HTTP 中间件 GitHub 的网络挂接。

  • git2go -libgit2 的绑定。

  • go-git- 在纯 Go 中高度可扩展的 Git 实现。

  • go-vcs- 在 Go 中操纵和检查 VCS 存储库。

  • hercules - 从 Git 存储库历史中获得高级见解。

  • hgo -Hgo 是 Go 软件包的集合,提供对本地 Mercurial 存储库的读取访问。

视频

用于处理视频的库。

  • gmf -FFmpeg av * 库的绑定。

  • go-astisub- 在 GO 中处理字幕(.srt,.stl,.ttml,.webvtt,.ssa/.ass,图文电视,.smi 等)。

  • go-astits- 在 GO 中本地解析和解复用 MPEG 传输流(.ts)。

  • go-m3u8 -Apple m3u8 播放列表的解析器和生成器库。

  • goav -FFmpeg 的全面 Go 绑定。

  • gst -GStreamer 的绑定。

  • libgosubs -go 的字幕格式支持。支持.srt,.ttml 和.ass。

  • libvlc-go -libvlc 2.X/ 3.X/ 4.X 的绑定(由 VLC 媒体播放器使用)。

  • m3u8 -Apple HLS 的 M3U8 播放列表的解析器和生成器库。

  • v4l- 用 Go 编写的 Linux 视频捕获库。

Web 框架

全栈 Web 框架。

  • aah -Go 的可扩展,高性能,快速开发 Web 框架。

  • Aero- 用于 Go 的高性能 Web 框架,在 Lighthouse 中得分最高。

  • Air -Go 的理想 Web 框架。

  • Banjo- 非常简单,快速的 Go Web 框架。

  • Beego -beego 是一种用于 Go 编程语言的开源高性能 Web 框架。

  • Buffalo- 带动 Rails 的生产力!

  • Echo- 高性能,简约的 Go Web 框架。

  • fiber - 基于 Expresshttp 的 Express.js 启发式 Web 框架。

  • fireball - 更具 “自然” 感觉的 Web 框架。

  • Flamingo- 可插拔 Web 项目的框架。包括模块概念并提供 DI,Configareas,i18n,模板引擎,graphql,可观察性,安全性,事件,路由和反向路由等功能。

  • Flamingo Commerce- 使用干净的体系结构(如 DDD 以及端口和适配器)提供电子商务功能,可用于构建灵活的电子商务应用程序。

  • Gin -Gin 是用 Go!编写的 Web 框架。它具有类似于 martini 的 API,性能更高,速度最高可提高 40 倍。如果您需要性能和良好的生产率。

  • Ginrpc -Gin 参数自动绑定工具,gin rpc 工具。

  • gizmo - 微服务工具包使用的纽约时报。

  • go-json-rest- 设置 RESTful JSON API 的快速简便方法。

  • go-rest -Go 的小巧的 REST 框架。

  • Goa -Goa 提供了一种整体方法来在 Go 中开发远程 API 和微服务。

  • goa -goa 就像 golang 的 koajs 一样,它是一个基于中间件的灵活,轻便,高性能和可扩展的 Web 框架。

  • Golax- 一个非 Sinatra 快速 HTTP 框架,支持 Google 自定义方法,深度拦截器,递归等。

  • golf - 高尔夫是一种用于 Go 的快速,简单,轻便的微型 Web 框架。它具有强大的功能,除了 Go Standard Library 外没有其他依赖项。

  • Gondola- 用于更快编写站点的 Web 框架。

  • gongular- 具有输入映射 / 验证和(DI)依赖注入的 Fast Go Web 框架。

  • goweb- 具有路由,websocket,日志记录,中间件,静态文件服务器(可选 gzip)和自动 TLS 的 Web 框架。

  • Goyave- 功能齐全的 Web 框架,旨在提供干净的代码和快速的开发,并具有强大的内置功能。

  • hiboot -hiboot 是具有自动配置和依赖项注入支持的高性能 Web 应用程序框架。

  • Macaron -Macaron 是 Go 中一种高效且模块化的 Web 设计框架。

  • mango -Mango 是受 Rack 和 PEP333 启发的 Go 的模块化 Web 应用程序框架。

  • microservice - 为创建微服务的,写在 Golang 框架。

  • neo -Neo 是最小且快速的 Go Web Framework,具有极其简单的 API。

  • patron -Patron 是遵循最佳云实践的微服务框架,其重点是生产力。

  • Resoursea- 用于快速编写基于资源的服务的 REST 框架。

  • REST 层 - 用于在数据库之上构建 REST / GraphQL API 的框架,主要通过代码进行配置。

  • Revel -Go 语言的高效 Web 框架。

  • rex -Rex 是一个基于大猩猩 /mux 进行模块化开发的库,与.x 完全兼容 net/http

  • rux- 用于构建 golang HTTP 应用程序的简单快速的 Web 框架。

  • tango- 用于 Go 的微型和可插入 Web 框架。

  • tigertonic- 受 Dropwizard 启发而构建 JSON Web 服务的 Go 框架。

  • uAdmin- 受 Django 启发的功能齐全的 Golang Web 框架。

  • utron- 用于 Go(Golang)的轻量级 MVC 框架。

  • VOX - 一个 golang 人类 web 框架,由兴亚启发严重。

  • WebGo- 用于构建 Web 应用程序的微框架;与处理程序链接,中间件和上下文注入。使用符合标准库的 HTTP 处理程序(即 http.HandlerFunc)。

  • YARF- 快速的微框架,旨在以快速,简单的方式构建 REST API 和 Web 服务。

中间件

实际的中间件

  • client-timing -Server-Timing 标头的 HTTP 客户端。

  • CORS- 轻松向您的 API 添加 CORS 功能。

  • formjson- 透明地将 JSON 输入作为标准表单 POST 处理。

  • go-server-timing- 添加 / 解析服务器计时标头。

  • limiter -Go 的失效简单速率限制中间件。

  • ln-paywall -Go 中间件,用于通过 Lightning Network(比特币)按请求在 API 上获利。

  • Tollbooth- 速率限制 HTTP 请求处理程序。

  • XFF- 处理 X-Forwarded-For 标头和朋友。

用于创建 HTTP 中间件的库

  • alice -Go 的无痛中间件链接。

  • catena -http.Handler 包装器类别(与 “链” 相同的 API)。

  • chain - 处理程序包装器链与范围内的数据(基于 net /context 的 “中间件”)。

  • go-wrap -net /http 的小型中间件软件包。

  • gores- 处理 HTML,JSON,XML 等响应的 Go 包。对于 RESTful API 很有用。

  • interpose - 用于 golang 的极简 net /http 中间件。

  • muxchain- 用于 net /http 的轻量级中间件。

  • negroni -Golang 的惯用 HTTP 中间件。

  • render -Go 包,用于轻松呈现 JSON,XML 和 HTML 模板响应。

  • renderer - 用于 Go 的简单,轻量和更快的响应(JSON,JSONP,XML,YAML,HTML,文件)渲染包。

  • rye - 微型围棋中间件库(罐头中间件),支持智威汤逊,CORS,Statsd 和 Go 1.7 上下文。

  • stats -Go 中间件,用于存储有关 Web 应用程序的各种信息。

路由器

  • Alien- 来自外层空间的轻巧快速的 http 路由器。

  • bellt- 一个简单的 Go HTTP 路由器。

  • bone - 闪电快速 HTTP 多路复用器。

  • Bxog -Go 的简单快速 HTTP 路由器。它适用于难度,长度和嵌套不同的路线。而且他知道如何根据接收到的参数创建 URL。

  • chi- 基于 net /context 构建的小型,快速且富有表现力的 HTTP 路由器。

  • fasthttprouter- 高性能分支从 httprouter。第一个适合的路由器 fasthttp

  • FastRouter- 用 Go 编写的快速,灵活的 HTTP 路由器。

  • gocraft / web -Go 中的 Mux 和中间件软件包。

  • Goji -Goji 是一种简约且灵活的 HTTP 请求多路复用器,支持 net/context

  • goroute- 简单但功能强大的 HTTP 请求多路复用器。

  • GoRouter -GoRouter 是一种服务器 / API 微型框架,HTTP 请求路由器,多路复用器,多路复用器,可为请求路由器提供中间件支持 net/context

  • gowww / router- 与 net /http.Handler 接口完全兼容的快速 HTTP 路由器。

  • httprouter- 高性能路由器。使用它和标准的 http 处理程序可以形成一个非常高性能的 Web 框架。

  • httptreemux- 用于 Go 的高速,基于树的灵活 HTTP 路由器。来自 httprouter 的启发。

  • lars- 是 Go 的轻量级,快速和可扩展的零分配 HTTP 路由器,用于创建可自定义的框架。

  • MUX - 强大的 URL 路由和 golang 调度。

  • ozzo-routing- 一种非常快速的 Go(golang)HTTP 路由器,支持正则表达式路由匹配。附带对构建 RESTful API 的全面支持。

  • pure- 是一种轻量级 HTTP 路由器,坚持使用 std“net /http” 实现。

  • siesta - 可组合的框架来写的中间件和处理程序。

  • vestigo - 用于 Go Web 应用程序的高性能,独立的,HTTP 兼容的 URL 路由器。

  • violetear- 转到 HTTP 路由器。

  • XMUX - 基于高性能复用器 httprouter 与 net/context 支持。

  • xujiajun / gorouter -Go 的简单快速 HTTP 路由器。

视窗

  • d3d9 -Direct3D9 的绑定。

  • go-ole -Golang 的 Win32 OLE 实现。

  • gosddl- 从 SDDL 字符串转换为用户友好的 JSON。SDDL 由四部分组成:所有者,主要组,DACL,SACL。

XML 格式

用于处理 XML 的库和工具。

  • XML-Comp- 简单的命令行 XML 比较器,它生成文件夹,文件和标签的差异。

  • xml2map- 用 Golang 编写的 XML 到 MAP 转换器。

  • xmlwriter- 基于 libxml2 的 xmlwriter 模块的过程 XML 生成 API。

  • xpath -Go 的 XPath 软件包。

  • xquery -XQuery 使您可以使用 XPath 表达式从 HTML / XML 文档中提取数据。

  • zek- 从 XML 生成 Go 结构。

工具类

转到软件和插件。

代码分析

  • apicompat- 检查 Go 项目的最新更改是否存在向后不兼容的更改。

  • dupl- 代码克隆检测工具。

  • errcheck -Errcheck 是用于检查 Go 程序中未经检查的错误的程序。

  • gcvis - 实时可视化 Go 程序 GC 跟踪数据。

  • go-checkstyle -checkstyle 是样式检查工具,例如 java checkstyle。此工具的灵感来自 java checkstyle golint。该样式涉及 “Go Code 评论注释” 中的某些要点。

  • go-cleanarch- 创建 go-cleanarch 是为了验证 Clean Architecture 规则,例如 Dependency Rule 和 Go 项目中程序包之间的交互。

  • critic - 源代码 linter,它带来了当前在其他 linter 中未实现的检查。

  • go-mod-outdated- 查找 Go 项目的过时依赖项的简便方法。

  • 过期 - 显示过期软件包的控制台应用程序。

  • goast-viewer- 基于 Web 的 Golang AST 可视化工具。

  • GoCover.io-GoCover.io 提供任何 golang 软件包即服务的代码覆盖率。

  • goimports- 自动修复(添加,删除)Go 导入的工具。

  • GolangCI -GolangCI 是针对 GitHub 拉取请求的自动化 Golang 代码检查服务。服务是开源的,对于开源项目是免费的。

  • golines- 格式化程序,可自动缩短 Go 代码中的长行。

  • GoLint -Golint 是 Go 源代码的皮特。

  • Golint 在线 - 使用 golint 软件包在线上 GitHub,Bitbucket 和 Google Project Hosting 上在线 Go 源文件。

  • GoPlantUML- 库和 CLI,可生成文本 plantump 类图,其中包含有关结构和接口以及它们之间的关系的信息。

  • goreturns- 添加零值返回语句以匹配 func 返回类型。

  • gosimple -gosimple 是 Go 源代码的 linter,专门研究简化代码。

  • gostatus- 命令行工具,显示包含 Go 软件包的存储库的状态。

  • lint - 运行棉短绒为不合格测试的一部分。

  • php-parser- 用 Go 编写的 PHP 解析器

  • staticcheck -staticcheck go vet 用于类固醇,对 ReSharper for C#之类的工具应用了大量的静态分析检查。

  • tarp -tarp 在 Go 源代码中查找没有直接单元测试的函数和方法。

  • tickgit -CLI 和 go 软件包,用于显示代码注释 TODO(以任何语言显示)并应用 git blame 标识作者。

  • 取消转换 - 从 Go 源代码中删除不必要的类型转换。

  • unused - 未使用的检查将代码用于未使用的常量,变量,函数和类型。

  • validate- 使用标签自动验证结构字段。

编辑器插件

  • JetBrains IDE Go 插件 - 用于 JetBrains IDE 的 Go 插件。

  • go-language- server - 将 VSCode go 扩展名转换为支持 language-server-protocol 的语言服务器的包装器。

  • go-mode -GNU / Emacs 的 Go 模式。

  • go-plus -Go(Golang)用于 Atom 的程序包,可添加自动完成,格式设置,语法检查,整理和审核。

  • gocode -Go 编程语言的自动完成守护程序。

  • goprofiling- 此扩展在 VS Code 中添加了对 Go 语言的基准分析支持。

  • GoSublime- 文本编辑器 SublimeText 3 的 Golang 插件集合,提供代码完成和其他类似 IDE 的功能。

  • gounit-vim -Vim 插件,用于基于函数或方法的签名生成 Go 测试。

  • theia-go-extension -Theia IDE 的 Go 语言支持。

  • vim-compiler-go -Vim 插件,突出显示保存时的语法错误。

  • vim- go - 用于 Vim 的 Go 开发插件。

  • vscode-go -Visual Studio Code(VS Code)扩展,提供对 Go 语言的支持。

  • Watch - 在文件更改时以极致优势运行命令。

转到生成工具

  • generic -Go 的灵活数据类型。

  • genny -Go 的优雅仿制药。

  • gocontracts- 通过使代码与文档同步来使按合同设计成为 Go。

  • gotrics -Go 中的惯用泛型。

  • gotests- 从您的源代码生成 Go 测试。

  • gounit- 使用您自己的模板生成 Go 测试。

  • hasgo- 为您的切片生成 Haskell 启发的函数。

  • re2dfa- 将正则表达式转换为有限状态机并输出 Go 源代码。

  • TOML-to-Go- 在浏览器中立即将 TOML 转换为 Go 类型。

去工具

  • colorgo-go 用于彩色 go build 输出的环绕命令的包装器。

  • depth - 任何包通过分析进口的依赖可视化树。

  • gb -Go 编程语言的一种易于使用的基于项目的构建工具。

  • generator-go-lang- 一个 Yeoman 生成器,用于启动新的 Go 项目。

  • gilbert -Go 项目的构建系统和任务运行器。

  • go-callvis- 使用点格式可视化 Go 程序的调用图。

  • go-james -Go 项目框架创建者,无需手动设置即可构建和测试项目。

  • go-pkg-complete -go 和 wgo 的 Bash 完成。

  • go-swagger - Go 的 Swagger 2.0 实现。Swagger 是 RESTful API 的简单但功能强大的表示形式。

  • godbg - Rustsdbg! 宏的实现,可在开发过程中快速轻松地进行调试。

  • gomodrun- 执行和缓存 go.mod 文件中包含的二进制文件的 Go 工具。

  • gothanks -GoThanks 自动为您的 go.mod github 依赖项加注星标,以这种方式向其维护者发送一些爱意。

  • OctoLinker- 使用 GitHub 的 OctoLinker 浏览器扩展可以高效地浏览 go 文件。

  • richgo-go test 使用文本装饰丰富输出。

  • rts -RTS:对 struct 的响应。从服务器响应生成 Go 结构。

软体套件

用 Go 编写的软件。

DevOps 工具

  • aptly - 适当地是 Debian 仓库管理工具。

  • aurora- 基于 Web 的跨平台 Beanstalkd 队列服务器控制台。

  • awsenv- 小型二进制文件,用于为配置文件加载 Amazon(AWS)环境变量。

  • Blast- 用于 API 负载测试和批处理作业的简单工具。

  • bombardier- 快速的跨平台 HTTP 基准测试工具。

  • bosun- 时间序列警报框架。

  • DepCharge- 帮助协调跨大型项目中许多依赖项的命令执行。

  • Dockerfile-Generator- 一个 go 库和一个可执行文件,可使用各种输入通道生成有效的 Dockerfile。

  • dogo- 监视源文件中的更改并自动编译和运行(重新启动)。

  • drone-jenkins- 使用二进制,泊坞窗或 Drone CI 触发下游 Jenkins 作业。

  • drone-scp- 使用二进制文件,docker 或 Drone CI 通过 SSH 复制文件和工件。

  • Dropship- 通过 CDN 部署代码的工具。

  • easyssh-proxy -Golang 软件包,可通过 SSH 轻松进行远程执行,并通过下载 SCP ProxyCommand

  • fac- 修复 git 合并冲突的命令行用户界面。

  • gaia- 使用任何编程语言构建功能强大的管道。

  • Gitea -Gogs 的叉子,完全由社区驱动。

  • gitea-github-migrator- 将所有 GitHub 存储库,问题,里程碑和标签迁移到 Gitea 实例。

  • go- furnace - 用 Go 编写的托管解决方案。在 AWS,GCP 或 DigitalOcean 上轻松部署应用程序。

  • go-selfupdate- 使 Go 应用程序能够自我更新。

  • gobrew - 使用 gobrew,您可以轻松地在多个版本的 go 之间切换。

  • godbg- 基于 Web 的 gdb 前端应用程序。

  • Gogs -Go 编程语言中的自托管 Git 服务。

  • gonative- 创建 Go 的构建的工具,该工具可以交叉编译到所有平台,同时仍使用支持 Cgo 的 stdlib 软件包版本。

  • govvv- “构建” 包装器可轻松将版本信息添加到 Go 二进制文件中。

  • gox- 简单易用,没有多余的装饰可进行交叉编译的工具。

  • goxc -Go 的构建工具,着重于交叉编译和打包。

  • grapes- 轻量级工具,旨在通过 ssh 轻松分发命令。

  • GVM -GVM 提供了管理 Go 版本的界面。

  • hey - 嘿,这是个很小的程序,它将一些负载发送到 Web 应用程序。

  • jcli -Jenkins CLI 使您可以轻松管理 Jenkins。

  • kala- 简单,现代和高效的工作计划程序。

  • kcli- 用于检查 kafka 主题 / 分区 / 消息的命令行工具。

  • kubernetes -Google 的 Container Cluster Manager。

  • lstags- 用于在不同注册表之间同步 Docker 映像的工具和 API。

  • lwc -UNIX wc 命令的实时更新版本。

  • manssh -manssh 是用于轻松管理 ssh 别名配置的命令行工具。

  • Moby- 容器生态系统的协作项目,用于组装基于容器的系统。

  • Mora- 用于访问 MongoDB 文档和元数据的 REST 服务器。

  • ostent- 收集并显示系统指标,并可选地中继到 Graphite 和 / 或 InfluxDB。

  • Packer -Packer 是一个工具,可从一个源配置为多个平台创建相同的机器映像。

  • Pewpew- 灵活的 HTTP 命令行压力测试仪。

  • Pomerium -Pomerium 是一个身份识别访问代理。

  • rodent - 啮齿动物可帮助您管理 Go 版本,项目和跟踪依赖关系。

  • s3- proxy - 具有 GET,PUT 和 DELETE 方法和身份验证(OpenID Connect 和基本身份验证)的 S3 代理。

  • s3gof3r- 小型实用程序 / 库,经过优化,可用于将大型对象高速传输到 Amazon S3 和从 Amazon S3 传出。

  • Scaleway- cli - 从命令行管理 BareMetal 服务器(与 Docker 一样容易)。

  • script - 轻松在 Go 中为 DevOps 和系统管理任务编写类似 shell 的脚本。

  • sg 一组 HTTP 端点(例如 ab)进行基准测试,并可以根据其先前的响应,在每次调用之间使用响应代码和数据来处理特定的服务器压力。

  • skm -SKM 是一个简单而强大的 SSH 密钥管理器,它可以帮助您轻松管理多个 SSH 密钥!

  • StatusOK- 监视您的网站和 REST API。当服务器关闭或响应时间超出预期时,通过 Slack,电子邮件获得通知。

  • terraform-provider-openapi -Terraform 提供程序插件,可在运行时根据包含公开 API 定义的 OpenAPI 文档(以前称为 swagger 文件)动态配置自身。

  • traefik- 反向代理和负载平衡器,支持多个后端。

  • uTask- 自动化引擎,用于建模和执行 yaml 中声明的业务流程。

  • Vegeta -HTTP 负载测试工具和库。超过 9000!

  • webhook- 工具,允许用户创建在服务器上执行命令的 HTTP 端点(挂钩)。

  • login - 使用 Golang 的团队基于 Web 的 IDE。

  • winrm-cli- 在 Windows 计算机上远程执行命令的 Cli 工具。

其他软体

  • borg -bash 片段的基于终端的搜索引擎。

  • boxed - 基于 Dropbox 的博客引擎。

  • Cherry -Go 中的微型网聊服务器。

  • circuit - 电路是可编程的平台即服务(PaaS)和 / 或基础架构即服务(IaaS),用于管理,发现,同步和编排包含云应用程序的服务和主机。

  • Comcast- 模拟不良的网络连接。

  • confd- 使用来自 etcd 或 consul 的模板和数据来管理本地应用程序配置文件。

  • croc- 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机。

  • Docker- 为开发人员和系统管理员提供分布式应用程序的开放平台。

  • Documize- 集成了 SaaS 工具中的数据的现代 Wiki 软件。

  • dp- 通过 SDK 与区块链进行数据交换,开发人员可以轻松访问 DAPP 开发。

  • drive - 谷歌 Drive 用户端的命令行。

  • duplicacy - 一种基于无锁重复数据删除的跨平台网络和云备份工具。

  • gfile- 通过 WebRTC 在没有任何第三方的情况下在两台计算机之间安全地传输文件。

  • Go Package Store - 显示您 GOPATH 中 Go 软件包更新的应用程序。

  • go-peerflix- 视频流洪流客户端。

  • GoBoy- 用 Go 编写的 Nintendo Game Boy 颜色模拟器。

  • gocc -Gocc 是用 Go 编写的 Go 编译器套件。

  • GoDocTooltip -Go Doc 网站的 Chrome 扩展,在功能列表中以工具提示的形式显示功能说明。

  • GoLand- 功能齐全的跨平台 Go IDE。

  • Gor -Http 流量复制工具,用于实时重放从生产到阶段 / 开发环境的流量。

  • hugo- 快速和现代的静态网站引擎。

  • ide- 浏览器可访问的 IDE。专为 Go 而设计。

  • ipe- 与 GO 编写的 Pusher 客户端库兼容的开源 Pusher 服务器实现。

  • joincap- 用于将多个 pcap 文件合并在一起的命令行实用程序。

  • jujucharms - 云无关的业务部署和业务流程 - 支持 EC2,天青,OpenStack 的,MAAS 多。

  • leaps - 使用操作转换来配对编程服务。

  • lgo- 使用 Jupyter 进行交互式 Go 编程。它支持代码完成,代码检查和 100%Go 兼容性。

  • limetext -Lime Text 是一款功能强大且美观大方的文本编辑器,主要是在 Go 中开发的,旨在成为 Sublime Text 的免费开源软件后继产品。

  • LiteIDE -LiteIDE 是一个简单的,开源的,跨平台的 Go IDE。

  • mockingjay- 伪造的 HTTP 服务器和消费者驱动的合同来自一个配置文件。您还可以随机使服务器行为不当,以帮助进行更实际的性能测试。

  • myLG- 用 Go 语言编写的命令行网络诊断工具。

  • naclpipe- 用 Go 语言编写的基于 NaCL EC25519 的简单加密管道工具。

  • nes- 用 Go 编写的 Nintendo Entertainment System(NES)模拟器。

  • orange- cat - 用 Go 编写的 Markdown 预览器。

  • Orbit- 运行命令并从模板生成文件的简单工具。

  • peg -Peg,解析表达式语法,是 Packrat 解析器生成器的实现。

  • restic- 对备份程序进行重复数据删除。

  • scc -Sloc Cloc and Code,一个非常快速,准确的代码计数器,具有复杂度计算和 COCOMO 估计。

  • Seaweed 文件系统 - 具有 O(1)磁盘查找功能的快速,简单和可扩展的分布式文件系统。

  • shell2http- 通过 http 服务器执行 shell 命令(用于原型制作或远程控制)。

  • snap- 强大的遥测框架。

  • Snitch- 当有人通过 Tsuru 部署任何应用程序时,通知您的团队和许多工具的简单方法。

  • Stack Up -Stack Up,一个非常简单的部署工具 - 仅限于 Unix - 将其视为服务器网络的 “make”。

  • syncthing - 开放,分散的文件同步工具和协议。

  • term-quiz - 终端机测验。

  • toxiproxy- 模拟网络和系统条件以进行自动化测试的代理。

  • tsuru- 可扩展的开源平台即服务软件。

  • vFlow- 高性能,可扩展且可靠的 IPFIX,sFlow 和 Netflow 收集器。

  • wellington -Sass 项目管理工具,通过 sprite 函数(例如 Compass)扩展了语言。

资源资源

在哪里发现新的 Go 库。

基准测试

会议活动

电子书

地鼠

聚会

在此处添加您所在城市 / 国家 / 地区的组(发送 PR

社交媒体

推特

Reddit

网站

讲解

相关推荐
<p> 课程演示环境:Windows10  </p> <p> 需要学习<span>Ubuntus</span>系统<span>YOLOv4-tiny</span>同学请前往《<span>YOLOv4-tiny</span>目标检测实战:训练自己数据集》 <span></span> </p> <p> <span> </span> </p> <p> <span style="color:#E53333;">YOLOv4-tiny</span><span style="color:#E53333;">来了!速度大幅提升!</span><span></span> </p> <p> <span> </span> </p> <p> <span>YOLOv4-tiny</span>在<span>COCO</span>上性能可达到:<span>40.2% AP50, 371 FPS (GTX 1080 Ti)</span>。相较于<span>YOLOv3-tiny</span><span>AP</span><span>FPS</span>性能有巨大提升。并且<span>YOLOv4-tiny</span>权重文件只有<span>23MB</span>适合在移动端、嵌入式设备、边缘计算设备上部署。<span></span> </p> <p> <span> </span> </p> <p> 本课程将手把手地教大家使用<span>labelImg</span>标注使用<span>YOLOv4-tiny</span>训练自己数据集。课程实战分为两个项目:单目标检测(足球目标检测)多目标检测(足球梅西同时检测)。<span></span> </p> <p> <span> </span> </p> <p> 本课程<span>YOLOv4-tiny</span>使用<span>AlexAB/darknet</span>在<span>Windows10</span>系统上做项目演示。包括:<span>YOLOv4-tiny</span>网络结构、安装<span>YOLOv4-tiny</span>、标注自己数据集、整理自己数据集、修改配置文件、训练自己数据集、测试训练出网络模型、性能统计<span>(mAP</span>计算<span>)</span>先验框聚类分析。 <span> </span> </p> <p> <span> </span> </p> <p> 除本课程《<span>Windows</span>版<span>YOLOv4-tiny</span>目标检测实战:训练自己数据集》外本人推出了有关<span>YOLOv4</span>目标检测系列课程。请持续关注该系列其它视频课程包括:<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:训练自己数据集》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:人脸口罩佩戴识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:中国交通标志识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测:原理与源码解析》<span></span> </p> <p> <span> <img alt="" src="https://img-bss.csdnimg.cn/202007061503586145.jpg" /></span> </p> <p> <span><img alt="" src="https://img-bss.csdnimg.cn/202007061504169339.jpg" /><br /> </span> </p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页