本列表旨在聚合和推广华人创作的优秀 Go 语言项目。欢迎也希望大家积极提交 PR。让我们共同打造它!
🔑 Go 项目入列标准:
🔐 基本标准:
- 需要是库项目或可运行的项目。不过 Go 语言相关的各种资源也是可以的。
- 有一定的口碑。在提交入列申请时,项目的 Star 数原则上需要超过 50,最低 20 起步。
- 最近仍然活跃。在提交入列申请时,项目的最后更新日期原则上需要在 3 个月之内,最久也要在半年以内。
🔏 加分项:
- 适应范围越广越好。通用的框架、工具或中间件是最受欢迎的。
- 上手越容易越好。代码规整、测试完备、文档清晰的项目最易上手。
以上标准均不是绝对条件。我们会进行权衡,并尽量提升本列表的质量。
由于目录的跳转问题,目录和标题都需要使用英文。本文件中的项目介绍需要使用中文。
-
- Audio & Music
- Authentication & OAuth
- Command Line
- Configuration
- Continuous Integration
- CSS Preprocessors
- Data Structures
- Database
- Database Drivers
- DataSource
- Date & Time
- Distributed Systems
- Embeddable Scripting Languages
- Financial
- Forms
- Game Development
- Generation & Generics
- Goroutines
- GUI
- Hardware
- Images
- Logging
- Machine Learning
- Messaging
- Backstage Management System
- Miscellaneous
- Natural Language Processing
- Networking
- OpenGL
- ORM
- Package Management
- Pool
- Resource Embedding
- Science and Data Analysis
- Security
- Serialization
- Storage
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- Validation
- Version Control
- Video
- Web Frameworks
- Windows
Libraries for manipulating audio.
Libraries for implementing authentications schemes.
Libraries for building standard or basic Command Line applications
- readline:纯Go实现的GNU Readline的CLI库,提供类似zsh的交互体验。
Libraries for building Console Applications and Console User Interfaces
- gcli Go的命令行应用,工具库,运行CLI命令,支持命令行色彩、用户交互、进度显示、数据格式化显示、生成bash/zsh命令补全脚本
配置文件解析库
Tools for help with continuous integration
Libraries for preprocessing CSS files
通用的数据结构和算法库。
- go-tagexpr:一个可用于字段验证等目的Go结构体标记表达式库。
用Go语言实现的数据库。
- CovenantSQL:利用区块链技术的一个众包SQL数据库。
- DTM:解决分布式事务的中间件。框架层代为处理幂等、空补偿等问题,且适用于多语言技术栈。
- Godis:一个用 Golang 实现的 Redis 服务器,支持 Redis 的大多数功能并自带集群模式
- LedisDB:一个高性能的分布式数据库,类似于并兼容Redis。
- Tedis:Tedis 是一个基于TiKV的NoSQL数据库,拥有强一致性,并且兼容 Redis 协议。
- TiDB:一个支持SQL的分布式数据库,其参考了Google F1的设计,兼具NoSQL和传统关系型数据库的优点。
- NutsDB: 一个简单、高性能、内嵌型的KV数据库,支持事务以及多种数据结构包括list, set, sorted set。
- rosedb:一个仿 Redis 的内嵌 k-v 数据库,支持 string、list、hash、set、sorted set 多种数据结构。
Database tools.
SQL query builder, libraries for building and using SQL.
Libraries for connecting and operating databases.
-
Relational Databases
-
NoSQL Databases
-
Search and Analytic Databases
Libraries or tools for Data source binding, or data migration.
Libraries for working with dates and times.
用于构建分布式系统的库/框架,或可运行的分布式系统。
- eru:一款可以混合调度编排 container/vm 的平台组件。
- glow:一个易于使用的分布式系统,可作为Hadoop、Spark、Flint、Samza的替代品。
- hprose-golang:一个支持 20 多种语言的功能强大,简单易用的高性能动态 RPC,该版本是它的 go 语言实现。
- kafka-pusher(taiji):Kafka-pusher(又名太极)是kafka服务的消费者实现,它可以拉取(pull)消费kafka中的消息,并通过HTTP方式推送(push)给任何接口。
- mqproxy:mqproxy是kafka的http代理服务。
- GoFrame:一款模块化、高性能、企业级的Go基础开发框架,并实现了比较完善的基础设施建设以及开发工具链。
- Kratos 轻量级、可定制、拥抱云原生和开源标准的 Go 微服务框架,帮助您快速实现可支撑大型互联网业务的微服务应用。
Libraries that implement email creation and sending
Embedding other languages inside your go code
Packages for accounting and finance
Libraries for working with forms.
游戏开发库。
Tools to enhance the language with features like generics via code generation
管理和调度 goroutines 的工具库
- ants: A high-performance goroutine pool in Go.
Libraries for building GUI Applications
Libraries, tools, and tutorials for interacting with hardware.
Libraries for manipulating images.
Libraries for generating and working with log files.
与机器学习有关的库。
- gorse:一个高性能的、基于协同过滤的推荐系统代码包。
用于实现消息系统的库,或可运行的消息系统。
- goim:一个轻量级、高性能的即时通讯服务器。
- gopush-cluster:一个易集群化的的Comet服务器,支持Web Socket和TCP协议。
- KiteQ:支持多种持久化方案的消息队列框架。
管理后台相关的项目。
- go-ldap-admin:🌉 基于Go+Vue实现的openLDAP后台管理项目。
These libraries were placed here because none of the other categories seemed to fit
Libraries for working with human languages.
可在网络中任意一层工作的库。
- gnet: A high-performance, lightweight, nonblocking, event-loop networking library written in pure Go.
- Kube-OVN: 基于 OVN 的 Kubernetes 网络编排系统。
- link:灵活的网络层脚手架,可用来快速搭建各种项目所需的网络层。
- Pholcus:Pholcus(幽灵蛛)是一款纯Go语言编写的支持分布式的高并发、重量级爬虫软件,定位于互联网数据采集,为具备一定Go或JS编程基础的人提供一个只需关注规则定制的功能强大的爬虫工具。
- Surfer:Surfer 是一款Go语言编写的高并发 web 客户端,拥有surf与phantom两种下载内核,高度模拟浏览器行为,可实现模拟登录等功能。
- Tao:轻量级TCP异步框架。
- Teleport:Teleport是一个通用、高效、灵活的TCP Socket框架。可用于Peer-Peer对等通信、RPC、长连接网关、微服务、推送服务,游戏服务等领域。
Libraries for using OpenGL in Go.
实现对象-关系映射或其它数据映射技术的库。
- GORM: 程序员友好的全功能ORM,API 简洁,支持Model之间一对一、一对多、多对多关联,还可通过插件扩展功能等。
- xorm:一个简单且强大的ORM库,支持MySQL、Postgres、TiDB、SQLite 3、MSSQL、Oracle等。
实现代码包或/和依赖管理的库。
- gopm:一个代码包和依赖管理工具。它无需Git、Hg等版本管理工具,就可以下载指定版本的Go代码包。
具有通用功能的对象池。
- go-commons-pool:通用的Golang对象池,改写自Java版本的 Apache Commons Pool,具有丰富的配置选项以及超时机制。
- slab:基于slab算法的内存池,提供无锁内存池和基于
sync.Pool
的内存池两种实现。
Libraries for scientific computing and data analyzing.
用于安全防护的库、框架或服务器。
- gocaptcha:goCaptcha是支持中文和干扰线的验证码服务器。
Libraries and tools for binary serialization
存储相关的软件库以及系统。
- gotgt:一个完整的用户态实现的iSCSI target,后端可以适配任何其他存储系统。
通用的独立服务器软件。
- Ran:一款支持 Digest 认证、gzip 压缩、TLS 加密等功能的静态 web 服务器。
Libraries and tools for templating and lexing.
Libraries for testing codebases and generating test data.
-
Testing Frameworks
-
Mock
-
Fuzzing and delta-debugging/reducing/shrinking
Libraries for parsing and manipulating texts.
- Specific Formats
全文搜索引擎或服务器。
- wukong:高效、高可定制的全文搜索引擎。
提供针对第三方平台的访问和操作功能的库。
有用的工具。
- bat:bat是类似curl的对人类友好的命令行程序,可以用来调试HTTP服务。
- bcbc:根据银联银行卡号查询所在银行以及银行卡类型的工具。
- g:golang多版本管理器。
- soar:一个对SQL进行优化和改写的自动化工具。由小米人工智能与云平台的数据库团队开发与维护。
- tsdump:数据库表结构导出工具。
Libraries for validation.
用于进行版本控制的库或服务器。
Libraries for manipulating video.
- lal:Golang 直播流媒体网络传输服务
Web开发框架。
- Beego:Beego是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,框架具有简单化、智能化、模块化、高性能等特性。
- Faygo:Faygo 是一款快速、简洁的Go Web框架,可用极少的代码开发出高性能的Web应用程序(尤其是API接口)。只需定义 struct Handler,Faygo 就能自动绑定、验证请求参数并生成在线API文档。
- Gin-X 基于Gin封装的开发模板,以便快速上手。
- Macaron:高生产力和模块化设计的 Go Web 框架。
- snake 一款小巧的基于Go构建的开发框架,可以快速构建API服务或者Web网站进行业务开发,遵循SOLID设计原则
- Gin Metrics:基于Gin的一个中间件,负责将请求的日志以Metrics个方式暴露出来,通过Prometheus抓取之后在Grafana展示。只要不到10分钟即可在原有的架构基础上搭建一套监控系统。
- Gaea:小米中国区电商研发部研发的基于MySQL协议的数据库中间件。
- Overlord:针对Memcache和Redis的代理及集群管理中间件,致力于提供自动化高可用的缓存服务解决方案。
Web请求路由器。
- Gorouter: Gorouter是一个简单高性能的http router,支持正则,基于Gorouter很方便组建自己的web框架以及编写RestFul Api。
Go software and plugins.
- go-checkstyle 根据go语言规范,参考 java checkstyle 实现的代码风格检查工具
- go-redis-memory-analysis 🔎 根据Key前缀分析Redis内存占用情况,并将分析结果导出为CSV文件。
Software written in Go.
- http-log-exporter 一个将 Nginx、Gin 等 HTTP 请求日志转化为 Prometheus Metrics 的工具,支持 histogram 和 exemplar 配置。
Where to discover new Go libraries.
- GopherChina:Go语言官方认可的中国用户社区会议。
- Go命令教程:讲述Go语言标准工具的使用方法,展现Go语言给力的工程理念。
- Go名库讲解:一套针对Go语言的第三方库进行评测讲解的集博客、示例与语音视频为一体的综合教程。
- Go Web编程:讲述使用Go语言进行Web编程的方方面面。
- Go学习笔记:雨痕的个人学习笔记。
- 42分钟乱入 GAE(with go1) 大妈的实例功能开发自学笔记
- Go语言第一课:Go语言入门的必备知识扩散。【免费】
- Go 编程基础:新手入门必备教程。【免费】
- Go 核心技术36讲:深入讲解Go语言核心技术的在线课程。【付费】