3 Star 21 Fork 9

精进之道系列/Go语言工程精选

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

Go语言开源工程精选

介绍

精选Go语言的开源项目,并分析和解读其设计实现的关键之处。

挑选原则:

  1. 项目较为成熟,用户众多,有比较稳定的代码基础。
  2. 项目解决开发相关的某个领域的问题,例如文件处理、数据库处理等。
  3. 设计与代码编写有典型性或独有特色。

挑选方式:

依照awesome-go-cn的组织方式,从它的项目列表中分门别类挑选其中更值得进行钻研的工程。我们保留awesome-go-cn的分类结构,并添加到对应分类的链接,以便读者在了解某个类别的精选工程之后,可以跳到awesome-go-cn上寻找其他类似工程。

名称 地址 板块 简介
Afero https://github.com/spf13/afero 文件处理 文件系统框架,封装底层文件处理的实现,提供统一的文件处理接口
Go-Git https://github.com/go-git/go-git 文件处理 纯Go语言实现的Git协议
SQLX http://jmoiron.github.io/sqlx/ 数据库 标准库sql模块的一层封装
Notify https://github.com/rjeczalik/notify 文件处理 文件系统消息库,可以考虑了解其设计原理。
pq https://github.com/lib/pq 数据库 标准PostGRESQL驱动,可以考虑综合对比pq、pgx和go-pg的优劣。
pgx https://github.com/jackc/pgx 数据库 高性能PostgreSQL驱动
go-pg https://github.com/go-pg/pg 数据库 包含高阶orm功能的PostgreSQL驱动
mysql https://github.com/go-sql-driver/mysql 数据库 MySQL驱动
go-redis https://github.com/go-redis/redis 数据库 Redis驱动
redigo https://github.com/gomodule/redigo 数据库 Redis驱动,可以和go-redis进行对比分析
riot https://github.com/go-ego/riot 搜索引擎 Go语言分布式搜索引擎,中文支持好
now https://github.com/jinzhu/now 时间 日期时间工具库,设计很简洁
viper https://github.com/spf13/viper 配置管理 最火的配置工具
testify https://github.com/stretchr/testify 测试 最火的测试库
zap https://github.com/uber-go/zap 日志 高速日志库
cobra https://github.com/spf13/cobra 命令行

资源列表

音频和音乐库

暂无


认证和OAuth授权

  • jwt-go : -JSON Web Tokens(JWT)的Golang实现。

机器人相关

构建和使用机器人的库

  • go-joe : 受 Hubot 启发,用 Go 编写的通用型机器人库。

命令行工具

标准 CLI

用于创建一个标准命令行应用程序的库

  • cobra : 一个现代化的命令行。
  • kingpin : 支持子命令的命令行和标志位解析器。
  • liner : 命令行文本解析器
  • mitchellh/cli : 用于实现命令行交互的 Go 语言库
  • urfave/cli : 简单、快速、有趣的、用于构建 Go 语言命令行程序的软件包。

高级控制台UI

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

  • aurora : ANSI 终端颜色,支持 fmt.Printf/Sprintf
  • go-prompt : python-prompt-toolkit 的启发,用于构建强大的交互式提示符的go语言库
  • gocui : 极简的控制台用户界面创建库.
  • progressbar : 适用于各种操作系统的,线程安全进度条管理库。
  • termbox-go : Termbox是一个用于创建跨平台文本界面的库。
  • termdash : 基于 termbox-go Go 终端仪表盘,灵感来自 termui
  • termui : 基于 termbox-goGo 终端仪表盘,灵感来源于blessed-contrib
  • uilive : 用于实时更新终端输出的库
  • uiprogress :用于渲染进度条的库
  • uitable : 用于改善命令行中,表格数据可读性的库

配置管理

配置解析库

  • env : 解析环境变量为 Go 语言结构体
  • godotenv : 把 Rubydotenv 库移植到 Go (从 .env 中加载环境变量)。
  • ini : 用于读写INI 文件的库
  • kelseyhightower/envconfig : 用于管理环境变量配置数据的 Go 库。
  • viper :Go语言配置工具

持续集成

持续集成的辅助工具

暂无


CSS预处理

预处理css文件的库

暂无


数据结构

go语言实现的数据结构与算法

  • algorithms : 算法和数据结构学习资料
  • bitset : 实现了 bitset Go 语言包.
  • boomfilters : 概率统计数据结构,用于处理大量连续的数据。
  • cuckoofilter : Cuckoo过滤器:一个用go语言实现的计数布隆过滤器的替代品
  • go-datastructures :一组有用的、高性能的、线程安全的数据结构
  • go-edlib : 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
  • gocache : 完整的Go缓存库,支持多个存储(内存、memcache、redis......)。
  • gods : Go语言数据结构、容器、集合、列表、栈、键值对、 BidiMaps、树、HashSet
  • golang-set : 线程安全和非线程安全的高性能集合
  • goskiplist : Go语言实现的跳跃表
  • gota : 为go语言实现了数据帧,序列以及数据噪音的方法
  • roaring : 实现了压缩bitsets算法的Go语言库
  • trie : Go语言实现的Trie
  • ttlcache : 基于过期时间的内存字符串缓存接口。
  • willf/bloom : 实现了布隆过滤器的库

数据库

go语言实现的数据库

  • badger : Go中的快速键值存储库。
  • bbolt : Go的嵌入式键值数据库。
  • BigCache : 为GB量级数据设计的高效键/值缓存
  • buntdb : 快速,可嵌入的,内存键值数据库,可定义索引及 spatial
  • cache2go : 基于内存存储的键值缓存,支持自动基于超时的自动失效
  • cockroach : 可扩展的、一致的事务型数据库
  • CovenantSQL : CovenantSQL是一个区块链上的SQL数据库。
  • dgraph : 可扩展的、分布式的、低延时、高吞吐的图数据库
  • GCache : 支持缓存过期、 LFU、 LRU ARC 的缓存库
  • go-cache : 基于内存存储的缓存,适用于分布式部署的应用
  • goleveldb : GoLevelDB键/值数据库的实现
  • groupcache : Groupcache是一个缓存及缓存填充库,在很多情况下用于替代 memcached.
  • immudb : immudb 是一个轻量级、高速的不可变数据库,适用于用Go编写的系统和应用程序。
  • influxdb : 用于度量、事件和实时分析的可扩展数据存储。
  • ledisdb : Ledisdb 是一个高性能 NoSQL 数据库,类似 Redis
  • nutsdb : Nutsdb是一个用纯Go编写的简单、快速、可嵌入、持久化的键/值存储。它支持完全可序列化的事务和许多数据结构,如列表、集合、排序集合。
  • prometheus : 监控系统及时间序列数据库
  • rqlite : 基于 SQLite 的轻量级的、分布式的关系型数据库
  • tidb : TiDB 是一个分布式的 SQL 数据库。受到了 Google F1的启发
  • tiedot : 基于Go语言的 NoSQL 数据库
  • VictoriaMetrics : 快速、资源高效、可扩展的开源时间序列数据库。可作为Prometheus的长期远程存储。支持PromQL

数据库迁移工具

  • goose : 数据库迁移工具。你可以通过编写增量 SQL Go 语言脚本来管理你的数据库
  • migrate : 数据库迁移。命令行及 Go 语言库
  • soda : 数据库迁移、创建、 ORM等等,用于MySQL, PostgreSQL,以及 SQLite.
  • sql-migrate : 数据库迁移工具,允许利用 Go-bindata 将数据库迁移嵌入应用程序

数据库工具

  • go-mysql : 用于处理 MySQL 协议及复制的Go语言工具集
  • go-mysql-elasticsearch : 将你的 MySQL 数据自动同步到 Elasticsearch
  • kingshard : kingshard是一个Go语言编写的高性能 MySQL 数据库代理
  • orchestrator : MySQL复制拓扑管理器及可视化工具
  • pgweb : 基于 WebPostgreSQL 数据库浏览工具
  • pREST : 为 PostgreSQL 数据库提供 RESTful API
  • vitess : vitess 提供了能够使大型 web 服务 MySQL 数据库的扩展变得更加容易的服务器及工具

SQL 查询语句构建库

  • dbq : Go的数据库操作库。

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

  • goqu : 地道的 SQL 语句创建器和查询库

  • sqrl : SQL 查询创建器,是 Squirrel 的一个分叉版本,进行了性能方面的优化

  • Squirrel : 一个帮助你构建 SQL 查询的库

  • xo : 基于已知的数据库表或自定义查询生成地道的Go语言代码,支持 PostgreSQL, MySQL, SQLite, Oracle, 以及 Microsoft SQL Server.


数据库驱动

连接和操作数据库工具

  • 关系型数据库
    • go-mssqldb : 适用于Go的Microsoft MSSQL驱动。
    • go-oci8 : Oracle驱动
    • go-sql-driver/mysql : Go 语言 MySQL驱动
    • go-sqlite3 : Go 语言的 SQLite3 驱动
    • pgx : PostgreSQL 驱动,支持比 database/sql 更多的特性
    • pq : 用于database/sqlPure Go Postgres驱动。

  • NoSQL数据库
    • go-couchbase :Go语言Couchbase客户端
    • gomemcache : Go编程语言的memcache客户端库。
    • gorethink : RethinkDB的Go语言驱动。
    • mgo : MonGoDB 驱动,通过简单的 API 现了丰富的、经过测试的特性,这些 API 遵循 Go 语言的习惯
    • mongo-go-driver : Go语言的官方MongoDB驱动。
    • redigo : RediGoRedis 数据库的Go 语言客户端.
    • redis : 兼容Redis协议的 TCP 服务器/服务.

  • 搜索引擎和文本数据库

    • bleve : 现代文本索引库
    • elastic : Go 语言的 Elasticsearch 客户端
    • go-elasticsearch : Go的官方Elasticsearch客户端。
    • riot : Go开源,分布式,简单高效的搜索引擎。
  • 多个后端:

    • cayley : 支持多个后端的图形数据库。
    • gokv : 为go(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB等)提供简单的键值存储抽象和实现。

日期和时间

用于处理日期和时间的库

  • dateparse : 在不知道格式的情况下解析日期。
  • durafmt : 持续时间格式化
  • now : Now 是一个 Go 语言的时间工具集

分布式系统

  • dragonboat : Go中一个功能完整且高性能的多组Raft库。
  • emitter-io : 使用 MQTT、Websocketslove 构建的高性能、分布式、安全和低延迟的发布-订阅平台。
  • gleam : 快速、可扩展的分布式 map/reduce 系统,使用纯 Go 语言和 Luajit 编写,融合了 Go 语言的高并发能力和 Luajit 的高性能,可以独立或分布式部署运行。
  • glow : 易于使用的可扩展的分布式大数据处理、Map-Reduce、DAG执行,全部用纯Go编写。
  • go-kit : 为服务工具吧,支持服务发现、负载均衡 、可插拔传输以及请求追踪等
  • go-micro : 一个分布式系统开发框架。
  • grpc-go : gRPC的Go语言实现。基于HTTP/2的RPC
  • hprose : 非常新颖的RPC库,现在支持25种以上的语言。
  • KrakenD : 带有中间件的,高性能API网关框架
  • liftbridge : 用于NATS的轻量级、容错消息流。
  • micro : 面向云计算及其他领域的分布式系统运行时。
  • NATS : 轻量级、高性能微服务系统,用于微服务、物联网以及云
  • raft : Raft 共识协议的 Golang 实现,由 HashiCorp.开发。
  • raft : Raft共识协议的 Go 实现,由 CoreOS 提供。
  • rpcx : rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架
  • tendermint : 使用Tendermint 一致性及区块链协议的高性能的中间件,用于将任何语言编写的状态机转换为一个拜占庭容错状态机,
  • torrent : BitTorrent 客户端

动态DNS

更新动态dns记录的库和工具

暂无


邮件库

邮件管理和发送的go语言库

  • email : 健壮的、灵活的 email
  • go-imap : IMAP 库,用于客户端和服务器
  • hermes : 一个用于生成干净、响应式 HTML e-mail 的包
  • MailHog : EmailSMTP 测试工具,具有 web 及 API 接口

脚本语言与嵌入式编程

在你的go代码中嵌入其他脚本语言

  • anko : Go 语言编写的解释器
  • expr : Go 的表达式评估引擎,具有快速、非图灵完备、动态类型化、静态类型化的特性。
  • go-lua : Lua 5.2虚拟机的纯 Go 语言接口
  • go-python : CPython C-API Go 语言接口
  • goja : 在 Go 中实现 ECMAScript 5.1(+)
  • gopher-lua : Go 语言编写的 Lua 5.1 虚拟机和编译器
  • tengo : Go的字节码编译脚本语言。

错误处理

go 语言错误处理库

  • errors : 提供简单错误处理单元的包。
  • go-multierror : 用于将错误列表表示为单个错误的包

文件处理

处理文件和文件系统操作的库

  • afero : go语言编写的对文件系统进行抽象的系统框架
  • copy : 递归复制目录。
  • notify : 类似 os/signal的文件系统提示库,具有简单的 API.
  • pdfcpu : PDF 处理器。
  • skywalker : 允许你简单方便的并发浏览文件系统

金融领域相关库

处理货币与金融领域的库

  • decimal : 支持任意精度的十进制数的go包
  • go-money : Fowler's Money模式的实现。

表单

表单解析与绑定

  • binding : 将来自net/HTTP请求的表单、JSON 数据绑定到结构体
  • gorilla/csrf : 为 Go 语言 web 应用提供 CSRF 防御
  • nosurf : CSRF 防御中间件

函数式编程


游戏开发

  • Ebiten : Go 语言编写的简单的 2D 游戏库
  • engo : EnGo是一个开源的2D游戏引擎,遵循实体-组件-系统范式
  • g3n : Go 3D游戏引擎。
  • go-sdl2 : SDL2 的 Go封装。
  • gonet : Go 语言实现的游戏服务器框架
  • goworld : 可扩展的游戏服务器引擎。
  • Leaf : 轻量级游戏服务器框架
  • nano : 基于golang的轻量级、设施、高性能的游戏服务器框架。
  • Pixel :2D 游戏引擎库
  • termloop : 终端游戏引擎,基于 Termbox

代码生成与泛型

  • efaceconv : 代码生成工具,用于高效的将 interface{} 转换为不可变类型,并且不需要进行任何内存分配
  • gen : 代码生成工具,用于提供类似泛型的功能
  • go-linq : 类似.NET LINQGo查询方法。
  • goderive : 从输入类型导出函数。
  • GoWrap : 使用简单的模板为 Go 接口生成装饰器。
  • jennifer : 不适用模板生成任意 Go 语言代码

位置信息与地理GEO处理库

  • S2 geometry : Go中的S2几何库。
  • Tile38 : 具有空间索引和实时地理围栏的地理位置数据库。
  • gopherjs : 把 Go 编译为 JavaScript.
  • llgo : 基于 LLVM Go 语言编译器

Goroutines

goroutines的管理和使用

  • ants : 高性能和低消耗的goroutine池。
  • goworker : Goworker 是一个基于 Go 语言的后台worker
  • tunny : Go 语言协程池

GUI

  • app : 使用Go, HTMLCSS 进行应用程序开发的库, 支持 MacOS, Windows
  • fyne : 基于Material DesignGo设计的跨平台本地GUI。支持 Linux, macOS, Windows, BSD, iOS` 和 Android.
  • go-astilectron : 使用GOHTML/JS/CSS(由Electron提供支持)构建跨平台GUI应用程序
  • go-gtk : GTKGo绑定。
  • go-sciter : Sciter Go 语言接口,支持现代 GUI 程序开发的、嵌入式 HTML/CSS/脚本引擎。具有跨平台特性。
  • gotk3 : GTK3的Go语言接口
  • qt : QtGo语言接口 (支持 Windows,macOS,Linux,Android,iOS,Sailfish OS, Raspberry Pi)
  • ui : 跨平台的原生 GUI 库
  • walk : windows 应用程序开发工具包
  • webview : 支持双向JavaScript绑定的跨平台 webview 窗口库(Windows,macOS,Linux)。
  • robotgo : 跨平台GUI自动化工具,可以控制鼠标、键盘及其他设备
  • systray : 跨平台的 Go 语言库,用于在桌面提醒区域放置按钮及菜单

硬件

与硬件交互的库、工具


Images 图像处理

  • bild : 汇集了使用 Go 语言编写的图像处理算法
  • bimg : 利用libvips进行快速高效的图像处理
  • canvas : 将矢量图形转换成 PDF、SVG 或光栅化图像。
  • geopattern : 从字符串创建优美的图样
  • gg : 使用Go编写的 2D 渲染程序
  • gift : 图像处理过滤器包
  • go-nude : 使用 Go 语言进行裸替检测
  • go-opencv : OpenCVGo 语言接口
  • gocv : 使用 OpenCV 3.3+ 的计算机视觉的 Go 包。
  • imagick : ImageMagick MagickWand C 语言 APIGo 语言接口
  • imaginary : 快速且简单的 HTTP 微服务,用于图像缩放
  • imaging : 简单的Go图像处理包。
  • ln : 3D 图线艺术渲染
  • picfit : 一个使用 Go 语言编写的图片缩放服务器
  • pt : 光线追踪引擎
  • resize : 使用 Go语言编写的具有常见差值功能的图片缩放工具
  • smartcrop : - 为任意图片进行剪裁的工具
  • stegify : 用于LSB隐写的Go工具,能够隐藏图像中的任何文
  • svgo : 用于生成 SVG Go语言库

物联网(IOT)

  • flogo : FloGo是一个用于物联网 Edge App 及集成的开源框架
  • gatt : Gatt是一个用于创建低功耗蓝牙外设的库
  • gobot : Gobot 是一个用于机器人,物理计算以及物联网的库
  • mainflux : 工业物联网消息传递和设备管理服务器。
  • periph : 外设I/O,用于连接低级板卡设施。

作业调度

  • gocron : 简单流畅的Go作业调度。这是·jasonlvhit/gocron·`的一个积极维护的fork.
  • gron : 使用简单的 Go API 定义基于时间的任务,Gron 的调度器将相应地运行它们。
  • JobRunner : 智能且功能丰富的cron任务调度器,内置任务队列和实时监控。
  • jobs : 持久而灵活的后台作业库。
  • scheduler : Cronjobs调度系统。

JSON

  • GJSON : 用一行代码获取JSON值。
  • gojson : 从示例 JSON 自动生成 Go结构体定义的库。
  • JSON-to-Go : 将JSON转换为Go结构

Logging 日志库

  • glog : Go的分级日志
  • log : Go的结构化日志包。
  • log15 : 简单、强大的Go日志记录。
  • logrus : Go的结构化日志记录器。
  • lumberjack : 简单的循环日志工具。
  • seelog : 灵活的、解耦的、格式化的日志库
  • spew : - 为 Go 语言的数据结构实现了一个整洁的打印功能,有助于调试
  • tail : 这个 Go 语言软件包力争模拟 BSD tail 的功能
  • zap : 快速的、结构化的、分级的日志库
  • zerolog : 零内存分配 的JSON 日志库.

机器学习

  • bayesian : 贝叶斯分类器
  • CloudForest : 纯 Go 语言编写的快速、灵活、多线程决策树
  • eaopt : 进化优化库。
  • go-deep : 用Go编写的功能丰富的神经网络库。
  • GoLearn : Go语言通用机器学习库
  • goml : 即时go语言机器学习库
  • gorgonia : 基于图的计算库,类似于 Theano。提供了一些原型用于构建各种个样的机器学习和神经网络算法
  • gorse : 用Go编写的基于协作过滤的离线推荐系统后台。
  • gosseract : 用于OCR(光学字符识别)的Go包,使用Tesseract C++库。
  • tfgo : 易于使用的Tensorflow `` go语言封装:简化了官方Tensorflow Go的使用。

消息系统

  • APNs2 : go语言实现的基于HTTP/2苹果推送通知提供服务,可以向iOStvOSSafariOSX应用程序发送推送通知
  • Asynq : 建立在 Redis 之上,为 Go 提供的简单、可靠、高效的分布式任务队列,。
  • Beaver : 实时消息服务器,用于在网络和移动应用中构建可扩展的应用内通知、多人游戏、聊天应用。
  • Benthos : 在一系列协议之间建立消息流go代码库
  • Centrifugo : 实时消息服务器
  • Confluent Kafka Golang Client ConfluentApache KafkaConfluent Platform开发的Golang客户端。
  • EventBus : 轻量级事件库,支持异步
  • go-nsq : NSQ 官方 Go 语言库
  • go-socket.io Go 语言的 socket.io库 ,一个实时应用框架.
  • Gollum : 一个 n:m 的多路复用器,从不同的源汇聚消息并向目标进行广播
  • gopush-cluster : Gopush-cluster 是一个Go语言实现的支持集群的comet服务(支持 websockettcp协议)
  • gorush 通知推送服务器,使用 APNs2GCM
  • machinery : 异步任务队列,基于分布式消息处理
  • mangos : 纯 Go 语言实现的 Nanomsg ("Scalable Protocols")
  • melody : 用于处理websocket会话的简约框架,包括广播和自动ping/pong处理。
  • Mercure : 使用Mercure协议(建立在Server-Sent Events之上)来调度服务器发送的更新的代码库。
  • NATS Go Client : 原生的 oplog/replication 系统,用于 REST APIs场景
  • sarama : 用于 Apache Kafka 的库
  • Uniqush-Push : 基于 Redis 的统一推服务,用于服务器端向移动客户端推送消息
  • zmq4 : ZeroMQ version 4GO 语言接口。也有适用于version 3version 2 的。

Microsoft Office

  • unioffice : 用于创建和处理Office Word (.docx)、Excel (.xlsx)Powerpoint (.pptx)文档的纯go库。

EXCEL

  • excelize : 用于读写 Microsoft Excel™ (XLSX) 文件的 Golang
  • xlsx : 用于在 Go 程序中读取最新版 Microsoft Excel的库

其他杂项

依赖性注入

  • dig : 基于反射的Go依赖注入工具包。
  • fx : 基于 Go 的依赖注入应用框架(建立在 dig 的基础上)。

项目结构

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


字符串处理

  • xstrings : 从其他语言移植过来的字符串函数集合。

暂未分类

这些库被放在这里是因为其他类别似乎都不适合。

  • antch : 一个快速、强大、可扩展的网络爬行和抓取框架。
  • archiver : 用于制作和解压.zip.tar.gz文件的库和命令。
  • base64Captcha : Base64captch支持数字、数字、字母、算术、音频和数字来生成字母验证码。
  • conv : 包conv提供了跨Go类型的快速和直观的转换。
  • gatus : 自动化的服务健康仪表板。
  • go-commons-pool : Golang 的通用对象池。
  • go-openapi : 解析和使用 open-api 模式的软件包集合。
  • go-resiliency : golang的弹性模式。
  • go-unarr : RAR、TAR、ZIP7z文件的解压库。
  • gofakeit : 用go编写的随机数据生成器。
  • gopsutil : 跨平台库,用于检索进程和系统利用率(CPU、内存、磁盘等)。
  • gosms : 你本地的SMS 网关,可以用来发送 SMS
  • llvm : - 用于在纯Go中与LLVM IR交互的库。
  • shortid : 分布式生成超短的、唯一的、非序列的、URL友好的ID。

自然语言处理

  • go-pinyin : 汉字到汉语拼音转换器。
  • gojieba : 结巴分词的 Go 语言实现的 jieba ,结巴分词是一个用于中文的分词算法
  • gse : Go高效的文本分割;支持英语、中文、日语和其他语言。
  • kagome : 用纯Go编写的JP形态分析器。
  • prose : 文本处理库,支持词语切分、词性标记、命名实体提取等功能
  • whatlanggo : Go语言的自然语言检测包。支持84种语言和24种书写 (如拉丁,西里尔等书写系统)。
  • when : 英语、俄语的自然语言日期、时间表达解析器。

网络相关库

  • cidranger : Go的快速IP、CIDR查找库。
  • dns : 用于处理 DNS Go 语言库
  • fasthttp : asthttp 是一个快速的HTTP实现,比net/http1的性能快10倍
  • fortio : 负载测试库和命令行工具,提供先进的echo服务器和web用户界面。允许指定设定每秒钟查询的负载,记录延迟直方图和其他有用的统计数据,并将其绘制成图表。
  • ftp : ftp 实现了一个FTP 客户端,遵循 RFC 959 标准。
  • gev : 一个轻量、比标准库更快的基于 Reactor 模式的非阻塞TCP网络库,支持自定义协议,可以轻松快速搭建高性能服务器。
  • gnet : gnet是用纯Go编写 的一个高性能、轻量级、非阻塞、事件驱动的网络框架,
  • go-getter : 一个用于通过 URL 从多种源下载文件或目录的 Go 语言库
  • gobgp : Go语言实现的BGP
  • gopacket : 用于报文处理的库
  • grab : 管理文件下载的Go 语言库
  • HTTPLab : HTTPLabs让你检查 HTTP请求和伪造响应。
  • kcp-go : KCP - 快速可靠的ARQ协议。
  • kcptun : 基于KCP协议的极其简单和快速的udp隧道。
  • lhttp : 强大的websocket框架,让您更轻松地建立IM服务器。
  • mdns : 简单的 mDNS (组播 DNS)客户端/服务器库
  • NFF-Go : 用于快速开发云和裸机(原YANFF)的高性能网络功能的框架。
  • quic-go : 纯GoQUIC协议的实现。
  • sftp : sftp 实现了https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt 中描述的 SSH 文件传输协议
  • ssh : 用于创建 SSH 服务器的高级 API(封装了crypto/ssh).
  • water : 一个简单的TUN/TAP库。
  • webrtc : WebRTC API的纯Go实现。

Http Client

  • grequests : 著名的请求库的Go版本。
  • heimdall : 具有重试和hystrix功能的http客户端。
  • resty : 受Ruby rest-client 的启发,为Go 设计的简单 HTTPREST客户端。
  • sling : 用于创建和发送 API请求的Go HTTP客户端库。

OpenGL

  • gl : OpenGLGo语言接口
  • glfw : GLFW 3Go语言接口

ORM

  • beego orm : 强大的Go 语言 orm 框架,支持pq/mysql/sqlite3.
  • ent : 简单而强大的用于数据建模和查询的ORM。
  • go-pg : 专注于PostgreSQL功能和性能的ORM
  • go-sqlbuilder : 灵活而强大的SQL字符串构建库,加上一个零配置的ORM
  • GORM : 超棒的 Go 语言 ORM 库,对开发者非常友好
  • gormt : Mysql数据库到Golang 结构体的orm库。
  • gorp : GoORM类库。
  • pop/soda : 支持 MySQL, PostgreSQL, 以及SQLite.的数据库迁移、创建、ORM 的工具,
  • QBS : 利用结构体进行标准查询,是一个 Go语言ORM
  • reform : 基于非空接口和代码生成的优秀的 ORM,
  • SQLBoiler :ORM 生成器。为你的数据库表单生成一个功能全面、快速的 ORM
  • upper.io/db : - 通过使用封装了成熟的数据库驱动的适配器,来使用单一接口与不同的数据源进行交互
  • XORM : 简单、强大的 Go 语言 orm

Go语言包管理

  • go modules : go module是最新的go语言版本管理工具。go module具有支持包引入记录和其他模块的依赖构建功能。
  • dep : Go 语言依赖工具.
  • glide : 轻松管理你的GO 语言包发布者以及发布包。 受到类似 Maven, BundlerPip这些工具的的启发
  • godep : Go 语言依赖工具,Godep可以帮助开发者修复库的依赖关系
  • gom : Go Manager
  • gopm : Go 包管理器
  • govendor : Go 包管理器。 Go语言vendor 工具,兼容标准 vendor文件
  • gpm : Go语言包管理工具
  • jaeger : 分布式跟踪系统。
  • profile : Go 的简单剖析支持包。
  • statsviz : 实时可视化你的Go应用程序运行时的统计数据。

查询语

  • gojsonq : 用于查询JSON数据的Go
  • graphql : 专注于易用性的GraphQL 服务器
  • graphql-go : 为Go语言实现的GraphQL

资源嵌入

  • go.rice : Go.rice是一个让你轻松使用html,js,css,图片以及模板这类资源的库
  • packr : 将静态文件嵌入Go二进制文件的简单方法。
  • statik : 将静态文件嵌入到Go 语言可执行文件中

数据分析与数据科学

  • chart : Go的简单图表绘制库,支持多种图形类型。
  • dataframe-go : 用于机器学习和统计的数据框类似于pandas
  • ewma : 指数加权移动平均数。
  • go-dsp : 数字信号处理
  • gohistogram : 数据流的近似直方图
  • gonum : 用于 Go 编程语言的数值库。它包含了矩阵、统计、优化等方面的库。
  • gonum/plot : Gonum/plot提供了用于创建和绘制图表的API
  • goraph : 纯Go语言编写的图论库(数据结构,算法可视化)
  • gosl : 用于线性代数、FFT、几何学、NURBS、数值方法、概率、优化、微分方程等的 Go 科学库。
  • graph : 基本图形算法库。
  • stats : 统计库,包含一些 Go 语言标准库中漏掉的常用函数
  • streamtools : 通用图形化工具,用于处理流数据

安全领域相关库

  • acmetool : ACME (Let's Encrypt) 客户端工具,支持自动续期.
  • acra : 用于保护基于数据库的应用程序的网络加密代理,用于防止数据泄露、SQL注入等。
  • Cameradar : 用于远程入侵监控摄像头的RTSP流的工具库。
  • lego : 纯 Go语言开发的 ACME 客户端库及命令行工具
  • memguard : 用于处理内存中敏感数据的Go 语言库
  • secure : 为 Go 提供了一些安全功能 HTTP 中间件,
  • themis : 高级加密库,用于解决典型的数据安全任务(安全数据存储、安全消息传递、零知识证明认证),提供14种语言,最适合多平台应用。

序列化

  • colfer : 用于生成 Colfer二进制格式代码
  • csvutil : 高性能的CSV记录编码和解码器
  • go-capnproto : Go的Cap'n Proto编码器和解析器。
  • go-codec : 高性能、多功能、规范化编码解码以及rpc库, 用于 msgpack, cborjson,支持基于运行时的 OR 码生成
  • gogoprotobuf : 用于Gadgets 的go协议缓冲区。
  • goprotobuf : 以库和协议编译器插件的形式为 Google 的协议缓冲区提供 Go 支持。
  • jsoniter : 100%兼容的"encoding/json "的 高性能程序库。
  • mapstructure : 用于将通用map值解码为本地Go结构的Go库。

服务端应用

  • algernon : HTTP/2 web服务器,内置Lua、Markdown、GCSSAmber支持。
  • devd : 开发者使用的本地web 服务器
  • discovery : 一个用于弹性中层负载均衡和故障转移的注册表。
  • etcd : 高可用性的键值存储,用于分享配置和服务发现
  • Fider : Fider是一个收集和整理客户反馈的开放平台。
  • Flagr : Flagr是一个开源的功能标志和A/B测试服务。
  • flipt : 用GoVue.js编写的自带功能标志的解决方案。
  • minio : Minio 是一个分布式对象存储服务器
  • nsq : 一个实时的分布式消息平台
  • SFTPGo : 功能齐全、高度可配置的SFTP服务器,可选择支持FTP/S和WebDAV。它可以为本地文件系统和云存储后端服务,如S3和谷歌云存储。
  • Trickster : HTTP反向代理缓存和时间序列加速器。

流处理

流式数据处理和响应式编程库


模板引擎

模版渲染和模版生成处理库

  • ace : Go 语言版本的 HTML 模板引擎,受到了 SlimJade 的启发。Ace 是对Gold的一种改进。
  • amber : Amber 是一个优雅的模板引擎,受到HAMLJade的启发
  • ego : 轻量级模板语言,让你可以使用 Go语言来创建模板。模板会被转化为 Go 语言并编译
  • fasttemplate : 简单而快速的模板引擎。替换模板占位符的速度比fasttemplate : 快10倍
  • gofpdf : PDF文档生成器,高度支持文本、绘图和图像。
  • hero : Hero是一个趁手的、快速的、强大的 Go 语言模板引擎
  • jet : Jet 模板引擎
  • mustache : Go语言实现的 Mustache模板语言
  • pongo2 : 类似Django的模板引擎
  • quicktemplate : 快速、强大且易用的模板引擎。将模板转化为 Go 语言并进行编译
  • Razor : Go语言的 Razor 视图引擎

测试相关

测试库和测试数据集生成库

  • 测试框架

    • baloo : 表达性强、多功能的、端到端的HTTP API 测试工具
    • frisby : REST API 测试框架
    • go-cmp : 用于比较测试中的 Go值的软件包。
    • go-vcr : 记录并重放 HTTP交互,用于快速的、确定性的、准确的测试
    • goblin : 类似 Mocha 的测试框架
    • godog : 类似于CucumberBehatGo BDD框架。
    • httpexpect : 简洁的、声明式的、易用的端到端HTTP 及 REST API 测试
    • Testify : 对标准测试包的扩展
    • testmd : 将markdown片段转换为可测试的go代码。

  • Mock

    • go-sqlmock : Mock SQL ,用于测试数据库交互
    • gock : 多功能、易用HTTP mock
    • gomock : 给 Go 语言用的Mock框架
    • hoverfly : HTTP(S) : proxy,用于记录和模拟REST/SOAP API,具有可扩展的中间件和易于使用的 CLI。
    • httpmock : 轻松模拟来自外部资源的 HTTP 响应。
    • minimock : Mock生成器
  • Fuzzing and delta-debugging/reducing/shrinking.

    • go-fuzz : 随机化测试系统
    • gofuzz : 用于生成随机值来初始化Go语言对象的库
  • Selenium及浏览器控制工具

    • chromedp : 用于驱动和测试Chrome, Safari, Edge, Android Webviews, 以及其他支持Chrome调试协议的产品
    • rod : Devtools驱动,使网络自动化测试变得简单。
    • selenoid : Selenium hub服务器的替代品,可以在容器中启动浏览器
  • Fail injection


文本处理

解析和操作文本的代码库

  • 特定文本格式处理

    • align : 文本对齐
    • allot : 占位符及通配符文本解析
    • bbConvert : 将bbCode 转换为HTML
    • blackfriday : Markdown 解析器
    • bluemonday : HTML 清理工具
    • codetree : 解析缩进代码(python、pixy、scarlet等)并返回一个树形结构。
    • colly : go语言版爬虫框架
    • commonregex : Go常用正则表达式的集合。
    • dataflowkit : Web爬虫框架用于将网站转化为结构化数据。
    • did : Go中的DID(去中心化标识符)解析器和Stringer
    • doi : Go中的文档对象标识符(doi)解析器。
    • editorconfig-core-go : Go 语言用的Editorconfig 文件解析和操作库
    • encdec : 通用编码和解码器
    • genex : 计算并展开正则表达式为所有匹配的字符串
    • github_flavored_markdown : GitHub Flavored Markdown 渲染器(使用 blackfriday),带有栅栏式代码块高亮,可点击标题锚链接
    • go-fixedwidth : 固定宽度的文本格式(带反射的编码器/解码器)。
    • go-humanize : 将时间、数字和内存大小格式化为人类可读的格式。
    • go-nmea : Go语言的NMEA解析库。
    • go-runewidth : 用于获取固定宽度的字符或字符串的函数。
    • go-slugify : 制作支持多语言的漂亮slug
    • go-toml : TOML格式的Go库,
    • go-vcard : 解析和格式化vCard
    • go-zero-width : Go的零宽度字符检测和移除。
    • gofeed : 使用Go语言解析RSSAtom
    • gographviz : 用以解析Graphviz DOT 语言
    • gommon/bytes : 格式化二进制为字符串
    • gonameparts : 将人名解析为几个独立的部分
    • goq : 声明式HTML 编组,使用结构标签和jQuery语法 (使用GoQuery).
    • GoQuery : GoQuery Go语言带来了一组类似jQuery 的语法和功能
    • goregen : 根据正则表达式生成随机字符串
    • goribot : 简单的golang爬虫框架,3行代码就可以创建爬虫。
    • gotext : Go语言版本的GNU gettext工具。
    • guesslanguage : 用于确定unicode文本的自然语言的函数。
    • html-to-markdown : 将HTML转换为Markdown。甚至适用于整个网站,并可通过规则进行扩展。
    • htmlquery : HTMLXPath 查询包,让您可以通过 XPath 表达式从HTML文档中提取数据。
    • inject : 一个基于反射的注入器
    • ltsv : 适用于 Go 的高性能 LTSV(Labeled Tab Separated Value)阅读器。LTSV (Labeled Tab Separated Value) :
    • mxj : 通过点分路径和通配符来提取值 将 XML编解码为 JSON map[string]interface{};目的是用于替代Replaces x2jj2x 包.
    • pagser : Pagser是一个简单的、可扩展的、可配置的、基于goquerystruct标签的golang 爬虫解析和反序列化工具,能够将html页面映射到struct结构体中。
    • podcast : Golang中兼容iTunesRSS 2.0的播客生成器。
    • sdp : SDP Session Description Protocol, RFC 4566实现
    • sh : Shell解析器及格式化工具
    • slug : URL友好的 slug 化工具,支持多种语言
    • Slugify : Go语言静态地址生成器,可以处理字符串
    • syndfeed : 适用于Atom 1.0和RSS 2.0的聚合feed
    • toml : TOML 配置格式的编码解码器
  • 文本工具

    • gofuckyourself : 敏感词过滤器
    • gotabulate : 使用 Go轻松地打印你的表格数据。
    • kace : 涵盖常见初始化的普通大小写转换。
    • parseargs-go : 能理解引号和反斜杠的字符串参数解析器。
    • parth : URL路径分割解析库。
    • radix : 快速字符串排序算法。
    • regroup : 使用struct标记和自动解析将正则表达式命名的组匹配到 go 结构中。
    • Tagify : 从给定的源中产生一组标签。
    • textwrap : Pythontextwrap模块的实现。
    • TySug : 关于键盘布局的替代建议。
    • xj2go : 将xml或json转换为go结构。
    • xurls : 从文本中提取URLs

第三方API

第三方API 汇总

  • anaconda : Twitter 1.1 API的 go 语言客户端
  • aws-sdk-go : AWS 提供的官方go语言 SDK
  • discordgo : 用于与Discord 聊天 API进行交互的Go语言客户端。
  • github : 用于访问GitHub REST API v3Go库。
  • githubql : 用于访问GitHub GraphQL API v4Go 库。
  • go-twitter : 用于Twitter v1.1 APIs Go 客户端库。
  • google : 为Go 自动生成的Google API
  • google-cloud :Google Cloud APIs Go客户端库。
  • Medium : 用于MediumOAuth2 APIGolang SDK
  • paypal : PayPal支付API
  • stripe : 用于访问Stripe APIGo客户端。

工具库

可以提升效率的通用代码库和工具

  • boilr : 用于从模板中快速创建项目的CLI工具。
  • ctop : 用于容器指标,类似于Top的接口(例如htop)。
  • Deepcopier : Go的简单结构拷贝库。
  • filetype : 用于推断文件类型的小程序包,它可以检查魔法数字签名。
  • fzf : 命令行模糊查找工具
  • git-time-metric : 简单、无缝、轻量级的 Git时间跟踪。
  • go-dry : go语言中DRY (don't repeat yourself)
  • go-funk : Go语言工具库,提供了很多有用的工具(map, find, contains, filter, chunk, reverse, ...)
  • go-rate : Go 语言版本的限速器
  • godaemon : 用于编写守护进程的工具
  • godropbox : Dropbox开发的用于编写 Go语言服务/应用的库
  • goreleaser : 尽可能快速的发布Go语言二进制文件
  • goreporter : 进行代码静态分析,单元测试,代码检视并生成代码质量报告的工具
  • gubrak : 带有语法糖的 Golang工具库。它类似于lodash,但适用于 golang
  • handy : 许多实用工具和帮助程序,如字符串处理程序/格式化程序和验证器。
  • hostctl : 用简单的命令管理/etc/hosts CLI工具。
  • htcat : 并行及流水线的 HTTP GET 工具
  • hub : 封装了git命令,提供了额外的功能用于在终端中和Github 进行交互
  • hystrix-go : 实现 Hystrix 风格的、程序员预定义的fallback 机制(熔断)
  • immortal : *nix 跨平台 (与操作系统无关的)监控程序
  • jump : Jump通过学习你的习惯来帮助你更快地浏览文件。
  • koazee : 受Lazy评估和函数式编程启发而开发的库,它消除了使用数组的麻烦。
  • mc : Minio Client提供了与 Amazon S3兼容的云存储和文件系统管理工具。
  • mergo : Golang中合并结构和地图的助手。对配置默认值很有用,避免了混乱的if语句。
  • mimetype : 基于魔数的MIME类型检测包。
  • minify : 快速压缩HTML, CSS, JS, XML, JSON 以及 SVG 文件格式
  • mmake : 现代Make工具
  • mole : 用于轻松创建ssh隧道的cli应用程序。
  • panicparse : 将类似的goroutines分组,并对堆栈转储进行着色。
  • peco : 简单的交互式过滤工具。
  • realize : Go 语言构建系统,可以监控文件变化并重新加载。运行,构建,监控文件并支持自定义路径
  • retry : 最先进的功能机制,用于重复执行动作直到成功。
  • robustly : 弹性地运行函数,捕捉和重启 并自动处理panic
  • spinner : Go 语言软件包,提供多种选项,方便在终端中创建加载动画
  • sqlx : 为内建的database/sql 软件包提供扩展
  • Storm : 用于BoltDB 的简单又强大的工具
  • Task : 简单来讲就是"Make"的替代品
  • toolbox : slice, map, multimap, 结构体, 函数,数据转换工具、服务路由,宏求值和标记器工具
  • usql : usql是一个通用的命令行接口,用于操作sql数据库
  • util : 收集了很多有用的函数
  • wuzz : 交互式命令行程序,用于进行HTTP 检查

UUID

UUID 生成和操作库

  • ulid : ULID (Universally Unique Lexicographically Sortable Identifier) Go实现。
  • uuid : 通用唯一标识符(UUID)的实现。支持UUID的创建和解析。
  • uuid : 基于RFC 4122DCE 1.1UUIDs Go包。
  • wuid : 极快的唯一数字生成器,比UUID快10-135倍。

校验库

用于校验的库

  • checkdigit : 提供数字算法(Luhn, Verhoeff, Damm)和数字计算(ISBN, EAN, JAN, UPC等)功能的库。
  • govalidator : 数据验证及清晰工具,用于字符串,数字, 数组切片及结构体
  • govalidator : 用简单的规则验证Golang请求数据. 高度受Laravel的请求验证的启发.
  • ozzo-validation : 支持多种数据类型的验证 (结构体,字符串,键值对,数组切片等等),具有可配置、可扩展的验证规则,且使用常用代码结构定义,而非结构体标签
  • validator : Go结构体及域验证,包括:跨域、跨结构体,Map, 切片和数组

版本控制

版本控制相关库

  • git2go : libgit2 Go语言接口
  • go-git : 纯Go中实现高度可扩展的Git
  • hercules : 查看git repo历史的代码库

视频

视频和流媒体相关库

  • gmf : FFmpeg av*库的 Go 语言接口.
  • go-astisub : 使用 Go 语言操作字幕(.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
  • go-astits : 在 GO 中解析和解调 MPEG 传输流(.ts)。
  • goav : 易用的 FFmpegGo 语言接口

web框架

web 框架

  • Aero : Go的高性能Web框架,在Lighthouse 评比中拿到最高分
  • Air : 理想的RESTful web 框架
  • Beego : beeGo 是一个开源的、高性能的 Go 语言web框架
  • Buffalo : 为Go 语言带来堪比 Rails 的高生产效率
  • Echo : 高性能、极简的 Go语言web 框架
  • Fiber : 受 Express.js启发的 Web 框架,构建在Fasthttp上。
  • Gin : Gin 是一个 Go 语言编写的 web 框架,提供了一组类似martiniAPI,且具有更好的性能(40倍的性能提升)。如果你需要高性能和高生产率,这个框架很适合你
  • Gizmo : 纽约时报正在使用对微服务工具集
  • go-json-rest : 快速、简单的创建RESTful JSON API.
  • Macaron : Macaron是一个高效的模块化设计的web框架
  • neo : 极小且快速的 Go 语言 web 框架,具有及其简单的API
  • Revel : go语言高生产率框架
  • tango : 微型的、支持插件的web框架
  • tigertonic : 受到 Dropwizard 启发,用于构建JSON web服务的 Go语言框架,
  • utron : 轻量级的go语言 MVC 框架

中间件

中间件

  • CORS : 非常方便地向你的api中添加 CORS功能
  • Limiter : 超级简单的限速中间件
  • Tollbooth : HTTP 请求限速中间件

创建http中间件的代码库

  • alice : 创建链式中间件的库
  • negroni : 符合语言习惯的HTTP中间件库
  • render : 用于轻松渲染JSON, XML, 及HTML 模板响应的库
  • stats : Go语言中间件,用于存储web应用的多种信息

路由

  • Bone : 轻量、快速的HTTP 多路复用器
  • chi : 基于net/context的小巧、快速、具有丰富表达力的HTTP路由.
  • fasthttprouter : 从httprouter分叉出来的高性能路由器,也是第一个适合fasthttp的路由器。
  • gocraft/web : Mux及中间件包
  • Goji : Goji是一个极简的、灵活的HTTP 请求数据分选器,支持net/context.
  • httprouter : 高性能路由,使用这个库和标准http处理工具可以构建一个非常高性能大web框架
  • mux : 强大的URL路由和分发库

WebAssembly

  • dom : DOM库
  • tinygo : 基于LLVM,适用于微型场景的Go编译器。包括微控制器、WebAssembly和命令行工具。

Windows

暂无

XML


  • xpath : XPath
  • zek : 从 XML 生成一个 Go结构体。

相关工具

go相关工具和插件

代码分析

  • apicompat : 检测go语言项目最近的变化,用于监测不能向后兼容的代码修改
  • dupl : 用于检测重复代码的工具
  • errcheck : Errcheck是一个用于检测go语言程序中存在未处理错误的程序
  • gcvis : 实时地将Go 语言垃圾回收进行可视化
  • go-mod-outdated : 一种查找 Go项目中过时的依赖关系的简单方法。
  • goast-viewer : 基于Web Golang AST 可视化工具.
  • goimports : 用于自动修复,添加,删除你的 Go 语言项目的 import
  • GoLint : 针对 Go 语言源码的 lint 工具
  • goreturns : 添加零值return 语句以符合函数返回值类型
  • tickgit : 用于显示代码注释TODO(任何语言)的CLI和go包,并应用git blam来识别作者
  • unconvert : 从go语言代码中移除不必要的类型转换

编辑器插件

  • go-mode : GNU/EmacsGo语言模式
  • go-plus : 供Atom 使用的自动补全、格式化、语法检查、lintVetting 的软件包
  • gocode : go语言自动补全
  • goprofiling : 这个扩展为 VS Code增加了对 Go语言的基准分析支持。
  • GoSublime : SublimeText 2 使用的 Go 语言插件,支持代码补全以及一些类似 IDE 的特性
  • vim-go : Vim使用的Go 语言开发插件
  • vscode-go : Visual Studio Code (VS Code) : 使用的一个扩展,为 Go 语言提供了支持

Go 代码生成工具

  • genny : 为 Go提供优雅的泛型。
  • gotests : 根据源代码生成Go测试代码。

Go 工具

  • depth : 通过分析导入的库,将某个包的依赖关系用树状结构进行显示
  • go-callvis : 使用dot语言将你的 Go 语言程序函数调用关系可视化
  • go-swagger : 为 Go 语言实现的Swagger 2.0.
  • OctoLinker : - 使用github 的浏览器插件 OctoLinker高效浏览Go 语言文件

软件包

Go语言开发的软件工具

devops 工具

  • Blast : 一个简单的API负载测试和批量作业管理的工具。
  • bombardier : 快速的、跨平台的HTTP基准工具.
  • bosun : 基于时间序列的告警框架
  • cassowary : 用Go编写的现代跨平台HTTP负载测试工具。
  • fac : 用于修复git合并冲突的命令行用户界面。
  • gaia : 利用任何编程语言都可以构建强大的管道的库。
  • Gitea : 社区驱动的Gogsfork
  • go-selfupdate : 让你的 Go 语言程序可以自我更新
  • Gogs : 自我托管的Git服务
  • gox : 非常简单的Go语言交叉编译工具
  • goxc : Go 语言构建工具,专注于交叉编译和打包
  • GVM : GVM提供了用于管理Go语言版本的接口
  • Hey : Hey是一个微型程序,用于向web 应用发送负载
  • kala : 极简、现代的、高效的任务调度
  • kubernetes : 来自Google的容器集群管理器
  • Moby : 为容器生态系统创建的一个合作项目,用于构建基于容器的系统
  • Packer : Packer通过单一的配置文件,为不同的平台创建独立镜像
  • Pomerium : Pomerium是一个身份感知的访问代理。
  • s3gof3r : 为了从Amazon S3中高速存取大型对象而特别优化的库
  • script : 在Go中轻松编写类似shell的脚本,用于DevOps和系统管理任务。
  • skm : SKM是一个简单而强大的SSH密钥管理器,它可以帮助您轻松管理您的多个SSH密钥。
  • StatusOK : 监控你的网站和 REST APIs。如果你的服务器挂了或是响应时间超过预期,则会通过Slack,E-mail来通知你
  • traefik : 能对接多个后端的反向代理和负载均衡器。
  • uTask : 自动化引擎,可对yaml中声明的业务流程进行建模和执行。
  • Vegeta : HTTP 加载测试工具和代码库
  • webhook : 允许用户创建HTTP钩子,并在服务器上执行命令

其他软件库和软件包

  • borg : 基于终端的搜索引擎,用于搜索 bash代码片段
  • Cherry : Go语言实现的一个微型网络聊天服务器
  • Circuit : Circuit是一个可编程的PaaS以及IaaS,用于管理、发现以及编排各种云端应用的服务及主机
  • Comcast : 模拟网络波动情况下的网络数据连接
  • confd : 使用etcd consul来管理本地应用的配置文件
  • croc : 轻松安全地将文件或文件夹从一台计算机发送到另一台计算机。
  • Docker : 一个为开发者和系统管理员提供的针对分布式应用的开源平台
  • Documize : 维基软件,可以使用SaaS工具提供的数据
  • Duplicacy : 跨平台网络和云备份工具
  • gfile : 无需任何第三方工具通过WebRTC在两台电脑之间安全传输文件。
  • Go Package Store : 一个可以显示你的GoPATH 路径下Go软件包的应用
  • GoBoy : 用Go编写的任天堂游戏机颜色模拟器。
  • Gor : Http 流量复制工具,用于将生产环境的流量在开发环境进行重放
  • Guora : 一个用Go编写的类似于Quora的问答网络应用。
  • hugo : - 快速、现代的静态web引擎
  • ide : 为Go语言设计可以在浏览器的IDE
  • Juju : 服务部署及编排工具,,支持EC2,Azure,Openstack,MAAS 等等
  • lgo : 使用Jupyter进行交互式编程。它支持代码补全、代码检查,100%兼容Go
  • limetext : Lime Text 是一个强大又优雅的编辑器,主要使用Go 语言开发,意在成为Sublime Text的继承者。
  • LiteIDE : LiteIDE 是一个简单、开源、跨平台的 Go语言 IDE
  • mockingjay : 伪HTTP服务器,通过单一配置文件构造访问请求。同时你还可以让服务器提升负载,以进行更加符合现实情况的性能测试
  • myLG :Go语言编写的命令行网络诊断工具
  • nes : Go 语言编写的任天堂(NES)模拟器
  • peg : Peg(Parsing Expression Grammar)是一个Packrat parser generator的实现
  • restic : 解耦备份程序
  • scc : 一个非常快速准确的代码计数器,具有复杂度计算和COCOMO估计功能。
  • Seaweed File System : 快速、简单、可扩展的分布式文件系统,具有O(1)的磁盘查找效率
  • shell2http : 通过HTTP服务器执行shell命令行(用于原型验证或远程控制)。
  • snap : 强大的遥测框架
  • Stack Up : Stack Up是一个超级简单的开发工具,就好比是服务器网络的make工具
  • syncthing : 开源、去中心化的文件同步工具和协议
  • toxiproxy : 用于自动化测试中模拟网络和系统状态的代理服务。
  • tsuru : 可扩展的、开源的SAAS 软件
木兰宽松许可证, 第2版 木兰宽松许可证, 第2版 2020年1月 http://license.coscl.org.cn/MulanPSL2 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: 0. 定义 “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 “法人实体”是指提交贡献的机构及其“关联实体”。 “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 1. 授予版权许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 2. 授予专利许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 3. 无商标许可 “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 4. 分发限制 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 5. 免责声明与责任限制 “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 6. 语言 “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 条款结束 如何将木兰宽松许可证,第2版,应用到您的软件 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; 3, 请将如下声明文本放入每个源文件的头部注释中。 Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details. Mulan Permissive Software License,Version 2 Mulan Permissive Software License,Version 2 (Mulan PSL v2) January 2020 http://license.coscl.org.cn/MulanPSL2 Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 0. Definition Software means the program and related documents which are licensed under this License and comprise all Contribution(s). Contribution means the copyrightable work licensed by a particular Contributor under this License. Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. Legal Entity means the entity making a Contribution and all its Affiliates. Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 1. Grant of Copyright License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. 2. Grant of Patent License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 3. No Trademark License No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. 4. Distribution Restriction You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. 5. Disclaimer of Warranty and Limitation of Liability THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 6. Language THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. END OF THE TERMS AND CONDITIONS How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details.

简介

精选Go语言的开源项目,并分析和解读其设计实现的关键之处。 展开 收起
README
MulanPSL-2.0
取消

发行版

暂无发行版

贡献者 (2)

全部

近期动态

3年前评论了仓库
4年多前推送了新的提交到 master 分支,4c678df...f0418d7
4年多前推送了新的提交到 master 分支,b8e1102...4c678df
4年多前推送了新的提交到 master 分支,75c1fba...b8e1102
4年多前推送了新的提交到 master 分支,904c7fd...75c1fba
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/learning_path_series/go_oss_collection.git
git@gitee.com:learning_path_series/go_oss_collection.git
learning_path_series
go_oss_collection
Go语言工程精选
master

搜索帮助