Skip to content

Latest commit

 

History

History
545 lines (297 loc) · 19.5 KB

README.md

File metadata and controls

545 lines (297 loc) · 19.5 KB

本列表旨在聚合和推广华人创作的优秀 Go 语言项目。欢迎也希望大家积极提交 PR。让我们共同打造它!

🔑 Go 项目入列标准:

🔐 基本标准:

  • 需要是库项目或可运行的项目。不过 Go 语言相关的各种资源也是可以的。
  • 有一定的口碑。在提交入列申请时,项目的 Star 数原则上需要超过 50,最低 20 起步。
  • 最近仍然活跃。在提交入列申请时,项目的最后更新日期原则上需要在 3 个月之内,最久也要在半年以内。

🔏 加分项:

  • 适应范围越广越好。通用的框架、工具或中间件是最受欢迎的。
  • 上手越容易越好。代码规整、测试完备、文档清晰的项目最易上手。

以上标准均不是绝对条件。我们会进行权衡,并尽量提升本列表的质量。

由于目录的跳转问题,目录和标题都需要使用英文。本文件中的项目介绍需要使用中文。

目录(Contents)

Audio/Music

Libraries for manipulating audio.

Authentication & OAuth

Libraries for implementing authentications schemes.

Command Line

Standard CLI

Libraries for building standard or basic Command Line applications

  • readline:纯Go实现的GNU Readline的CLI库,提供类似zsh的交互体验。

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces

  • gcli Go的命令行应用,工具库,运行CLI命令,支持命令行色彩、用户交互、进度显示、数据格式化显示、生成bash/zsh命令补全脚本

Configuration

配置文件解析库

  • go-ini:全能 INI 解析生成库
  • ini: INI配置读取管理,支持多文件加载,数据覆盖合并, 解析ENV变量, 支持变量引用

Continuous Integration

Tools for help with continuous integration

  • Cyclone:一个打造容器工作流的持续集成和持续发布系统,使用 Go 语言实现,有详尽的中文文档,由 @caicloud 实现。

CSS Preprocessors

Libraries for preprocessing CSS files

Data Structures

通用的数据结构和算法库。

  • go-tagexpr:一个可用于字段验证等目的Go结构体标记表达式库。

Database

用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.

Database Drivers

Libraries for connecting and operating databases.

  • Relational Databases

  • NoSQL Databases

  • Search and Analytic Databases

DataSource

Libraries or tools for Data source binding, or data migration.

  • go-etl:是一个类似于阿里巴巴的DataX异构数据源抽取,转化,加载的离线数据迁移工具。

Date & Time

Libraries for working with dates and times.

Distributed Systems

用于构建分布式系统的库/框架,或可运行的分布式系统。

  • 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 微服务框架,帮助您快速实现可支撑大型互联网业务的微服务应用。

Email

Libraries that implement email creation and sending

Embeddable Scripting Languages

Embedding other languages inside your go code

Financial

Packages for accounting and finance

Forms

Libraries for working with forms.

Game Development

游戏开发库。

  • Leaf:一个高效的游戏服务器开发框架,适用于各类游戏服务器的开发。
  • mqant:高性能分布式游戏服务器开发框架,可用于游戏后端服务器以及物联网后端服务器开发。

Generation & Generics

Tools to enhance the language with features like generics via code generation

Goroutines

管理和调度 goroutines 的工具库

  • ants: A high-performance goroutine pool in Go.

GUI

Libraries for building GUI Applications

Hardware

Libraries, tools, and tutorials for interacting with hardware.

Images

Libraries for manipulating images.

Logging

Libraries for generating and working with log files.

Machine Learning

与机器学习有关的库。

  • gorse:一个高性能的、基于协同过滤的推荐系统代码包。

Messaging

用于实现消息系统的库,或可运行的消息系统。

  • goim:一个轻量级、高性能的即时通讯服务器。
  • gopush-cluster:一个易集群化的的Comet服务器,支持Web Socket和TCP协议。
  • KiteQ:支持多种持久化方案的消息队列框架。

Backstage Management System

管理后台相关的项目。

  • go-ldap-admin:🌉 基于Go+Vue实现的openLDAP后台管理项目。

Miscellaneous

These libraries were placed here because none of the other categories seemed to fit

Natural Language Processing

Libraries for working with human languages.

Networking

可在网络中任意一层工作的库。

  • 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、长连接网关、微服务、推送服务,游戏服务等领域。

OpenGL

Libraries for using OpenGL in Go.

ORM

实现对象-关系映射或其它数据映射技术的库。

  • GORM: 程序员友好的全功能ORM,API 简洁,支持Model之间一对一、一对多、多对多关联,还可通过插件扩展功能等。
  • xorm:一个简单且强大的ORM库,支持MySQL、Postgres、TiDB、SQLite 3、MSSQL、Oracle等。

Package Management

实现代码包或/和依赖管理的库。

  • gopm:一个代码包和依赖管理工具。它无需Git、Hg等版本管理工具,就可以下载指定版本的Go代码包。

Pool

具有通用功能的对象池。

  • go-commons-pool:通用的Golang对象池,改写自Java版本的 Apache Commons Pool,具有丰富的配置选项以及超时机制。
  • slab:基于slab算法的内存池,提供无锁内存池和基于sync.Pool的内存池两种实现。

Resource Embedding

Science and Data Analysis

Libraries for scientific computing and data analyzing.

Security

用于安全防护的库、框架或服务器。

  • gocaptcha:goCaptcha是支持中文和干扰线的验证码服务器。

Serialization

Libraries and tools for binary serialization

  • fastbin:一个零配置的通讯协议代码生成工具,从Go结构体反向生成通讯协议代码,适用于各类游戏服务端开发。
  • hprose:一个支持 20 多种语言的序列化库,该版本是它的 go 语言实现。

Storage

存储相关的软件库以及系统。

  • gotgt:一个完整的用户态实现的iSCSI target,后端可以适配任何其他存储系统。

Server Applications

通用的独立服务器软件。

  • Ran:一款支持 Digest 认证、gzip 压缩、TLS 加密等功能的静态 web 服务器。

Template Engines

Libraries and tools for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks

  • Mock

  • Fuzzing and delta-debugging/reducing/shrinking

Text Processing

Libraries for parsing and manipulating texts.

  • Specific Formats

Text Search

全文搜索引擎或服务器。

  • wukong:高效、高可定制的全文搜索引擎。

Third-party APIs

提供针对第三方平台的访问和操作功能的库。

  • wechat:提供针对微信公众平台、微信企业号、微信商户平台和微信支付的相关功能的Go语言库。
  • GoPay:微信支付、支付宝支付等的Go版本SDK。

Utilities

有用的工具。

  • bat:bat是类似curl的对人类友好的命令行程序,可以用来调试HTTP服务。
  • bcbc:根据银联银行卡号查询所在银行以及银行卡类型的工具。
  • g:golang多版本管理器。
  • soar:一个对SQL进行优化和改写的自动化工具。由小米人工智能与云平台的数据库团队开发与维护。
  • tsdump:数据库表结构导出工具。

Validation

Libraries for validation.

Version Control

用于进行版本控制的库或服务器。

  • Gitea:一个开源社区驱动的轻量级代码托管解决方案,后端采用Go编写,采用MIT许可证。
  • Gogs:一款可轻易搭建的自助Git服务。

Video

Libraries for manipulating video.

  • lal:Golang 直播流媒体网络传输服务

Web Frameworks

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设计原则

Middlewares

Actual middlewares

  • Gin Metrics:基于Gin的一个中间件,负责将请求的日志以Metrics个方式暴露出来,通过Prometheus抓取之后在Grafana展示。只要不到10分钟即可在原有的架构基础上搭建一套监控系统。
  • Gaea:小米中国区电商研发部研发的基于MySQL协议的数据库中间件。
  • Overlord:针对Memcache和Redis的代理及集群管理中间件,致力于提供自动化高可用的缓存服务解决方案。

Libraries for creating HTTP middlewares

Routers

Web请求路由器。

  • Gorouter: Gorouter是一个简单高性能的http router,支持正则,基于Gorouter很方便组建自己的web框架以及编写RestFul Api。

Tools

Go software and plugins.

Code Analysis

  • go-checkstyle 根据go语言规范,参考 java checkstyle 实现的代码风格检查工具

Redis Analysis

Editor Plugins

Software Packages

Software written in Go.

DevOps Tools

  • http-log-exporter 一个将 Nginx、Gin 等 HTTP 请求日志转化为 Prometheus Metrics 的工具,支持 histogram 和 exemplar 配置。

Other Software

Resources

Where to discover new Go libraries.

Benchmarks

Conferences

  • GopherChina:Go语言官方认可的中国用户社区会议。

E-Books

  • Go命令教程:讲述Go语言标准工具的使用方法,展现Go语言给力的工程理念。
  • Go名库讲解:一套针对Go语言的第三方库进行评测讲解的集博客、示例与语音视频为一体的综合教程。
  • Go Web编程:讲述使用Go语言进行Web编程的方方面面。
  • Go学习笔记:雨痕的个人学习笔记。
  • 42分钟乱入 GAE(with go1) 大妈的实例功能开发自学笔记

Online Tutorials

Websites

Windows

Tutorials