golang 常用第三方库集合

本贴最后更新于 2212 天前,其中的信息可能已经物是人非

golang 用于创建和发送电子邮件的库

douceur - HTML 邮件中的内联 CSS
email - 一个健壮的、灵活的 email 库
Go-dkim - DKIM 库,用于对 email 进行签名和验证
Go-imap - IMAP 库,用于客户端和服务器
Go-message - 用于触雷互联网消息格式和邮件的库
Gomail - Gomail 是一个非常简单且强大的库,用于发送电子邮件
Hectane - 轻量级 SMTP 客户端,提供 HTTP API
hermes - 一个用于生成干净、响应式 HTML e-mail 的包
MailHog - Email 及 SMTP 测试工具,具有 web 及 API 接口
SendGrid - SendGrid 的 Go 语言库,用于发送电子邮件
smtp - SMTP 服务器协议状态机

golang 处理日期和时间的库

carbon - 简单的时间扩展程序,有很多有用的方法,是 PHP Carbon 库的接口
durafmt - 持续时间格式化
feiertage - 一组计算德国公共假期的函数,比如复活节、感恩节等
Go-persian-calendar - 太阳历
Goweek - 处理星期的库
now - Now 是一个 Go 语言的时间工具集
NullTime -时间可以是 NULL 的库
timeutil - 为 Go 语言时间包扩展了有用的功能,例如时间间隔和格式化

数据库迁移

darwin - 数据库模式进化库
Go-fixtures - 类似 DjanGo fixtures,用于 Golang 的內建数据库/sql 库
Goose - 数据库迁移工具。你可以通过编写增量 SQL 或 Go 语言脚本来管理你的数据库
Gormigrate - 数据库模式迁移帮助工具,用于 Gorm ORM.
migrate - 数据库迁移。命令行及 Go 语言库
pravasan - 简单的迁移,目前支持 MySQL 但是近期打算支持 Postgres, SQLite, MonGoDB 等等
soda - 数据库迁移、创建、 ORM 等等,用于 MySQL, PostgreSQL, 以及 SQLite.
sql-migrate - 数据库迁移工具,允许利用 Go-bindata 将数据库迁移嵌入应用程序

Go 语言实现的数据库

BigCache - 为 gigabytes 量级数据设计的高效键/值缓存
bolt - 底层键值数据库
buntdb - 快速,可嵌入的,内存键值数据库,可定义索引及 spatial
cache2Go - 基于内存存储的键值缓存,支持自动基于超时的自动失效
cockroach - 可扩展的、一致的事务型数据库
couchcache - RESTful 缓存微服务,基于 Couchbase
dgraph - 可扩展的、分布式的、低延时、高吞吐的图数据库
diskv - 具有 disk-backed 功能的持久化键值存储
eliasdb - 无依赖、事物型图数据库,支持 REST API、短语搜索以及类 SQL 的查询语言
forestdb - ForestDB 的 Go 语言借口
GCache - 支持缓存过期、 LFU、 LRU 和 ARC 的缓存库
geocache - 基于内存存储的缓存,适用于分布式部署的应用
Go-cache - 内存键值存储/缓存库,适用于单机程序
Goleveldb - 使用 Go 语言实现的 LevelDB
groupcache - Groupcache 是一个缓存及缓存填充库,在很多情况下用于替代 memcached.
influxdb - 用于计量、事件及实时分析的、可扩展的数据库
ledisdb - Ledisdb 是一个高性能 NoSQL 数据库,类似 Redi
leviGo - LeviGo 是 LevelDB 的 Go 语言封装
moss - Moss 是一个简单的 LSM 键值存储引擎,100% Go 语言实现
piladb - 轻量级 RESTful 数据库引擎,基于堆栈结构
prometheus - 监控系统及时间序列数据库
rqlite - 基于 SQLite 的轻量级的、分布式的关系型数据库
Scribble - 小巧的 JSON 文件存储
tempdb - 临时数据的键值对存储
tidb - TiDB 是一个分布式的 SQL 数据库。受到了 Google F1 的启发
tiedot - 基于 Go 语言的 NoSQL 数据库
Tile38 - 地理位置数据库及实时地理围栏

golang 通用数据结构及算法

binpacker - 二进制数据封包拆包工具,帮你构建自定义的二进制数据流
bit - Go 语言集合数据结构。提供了额外的位操作功能
bitset - 实现了 bitset 的 Go 语言包.
bloom - Go 语言实现的布隆过滤器(bloom filter)
bloom - Go 语言实现的布隆过滤器
boomfilters - 概率统计数据结构,用于处理大量连续的数据。
count-min-log - Go 语言实现的 Count-Min-Log sketch 算法(类似 Count-Min sketch 算法,但是使用的内存更少).
cuckoofilter - Cuckoo 过滤器:一个用 go 语言实现的计数布隆过滤器的替代品
encoding - 整型压缩库
Go-adaptive-radix-tree - Go 语言实现的自适应基数树
Go-datastructures - 一组有用的、高性能的、线程安全的数据结构
Go-geoindex - 基于内存存储的地理索引
Go-rquad - 区域四叉树,支持有效点位置和领域发现
Gods - Go 语言数据结构、容器、集合、列表、栈、键值对、 BidiMaps、树、HashSet 等
Golang-set - 线程安全和非线程安全的高性能集合
Goskiplist - Go 语言实现的跳跃表
Gota - 为 go 语言实现了数据帧,序列以及数据噪音的方法
hilbert - 用于映射空间填充曲线(例如希尔伯特曲线和皮亚诺曲线)和数值的库。
hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
levenshtein - 编辑距离(levenshtein distance)和相似性度量, 可以自定义编辑代价和 and Winkler-like bonus for common prefix.
levenshtein - Go 语言实现计算编辑距离
mafsa - Go 语言实现的 MA-FSA ,包含最小完美哈希
merkletree - 实现了梅克尔树,提供了一种高效、安全的数据结构内容验证方法
roaring - 实现了压缩 bitsets 的 Go 语言库
skiplist - Go 语言实现的跳跃表
trie - Go 语言实现的 Trie 树
ttlcache - In-memory LRU string-interface{} map with expiration for Golang
willf/bloom - 实现了布隆过滤器的库

golang 用于进行配置解析的库

config - JSON 或 YAML 配置的封装,支持环境变量和标记解析
configure - 可以通过多种途径进行配置,包括 JSON, 标记位以及环境变量
env - 解析环境变量为 Go 语言结构体
envcfg - 解析环境变量为 Go 语言结构体
envconf - 通过环境变量来配置
envconfig - 通过环境变量读取配置
gcfg - 读取类 INI 类型的配置文件为 Go 语言结构体,支持自定义变量和节
GoConfig - 通过命令行的输入、环境变量、配置文件来初始化一个结构体兵将一个结构体解析为输入
Godotenv - Ruby 库 dotenv 的 Go 语言接口 (通过 .env 来获取环境变量)
Gofigure - 让 Go 语言应用程序配置变得简单
Gone/jconf - 模块化 JSON 配置工具。允许你将配置参数结构体和使用它的代码放在一起,而不需要让主配置文件了解所有子模块的细节来进行序列化
hjson - 人性化的 JSON,一个便于程序员使用和阅读的配置文件格式。更加轻松的语法,更少的错误和更多的注释
inGo - 将配置标记持久化到一个类似 ini 的文件中
ini - 用于读写 INI 文件的库
joshbetz/config - 消息配置库,可以解析环境变量、JSON 文件并根据 SIGHUP 自动重新载入
mini -用于解析类 ini 文件的库
store - 轻量级配置管理
viper - 这个库名叫毒蛇 ,Go 语言配置工具
xdg -遵守 XDG 标准 的配置工具

golang 认证和授权库

authboss - 用于 web 开发的组件化认证授权系统。它尝试尽可能的移除模板代码以及硬编码,这使你每次新建 web 项目的时候,可以做到即插即用、配置并开始开发你的 web 英语,而不必每次都重新创建一个认证授权系统。
casbin - 一个支持接入控制模型(例如:ACL,RBAC,ABAC)的授权库
Go-AWS-Auth - AWS 请求签名库
Go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web 签名以及 JSON Web 加密 specs.
Go-oauth2-server - 使用 Go 语言编写的独立、符合标准的 OAuth2 服务器
Go.auth - 为 Go 语言 web 应用提供的授权 API.
Gologin - 可以串连使用 OAuth1 和 OAuth2 认证服务
Gorbac - 一个用 Go 语言实现的轻量级 RBAC
Goth - 提供了一种简洁的、惯用的方式来使用 OAuth 和 OAuth2.
httpauth - HTTP 认证中间件
jwt - 简单易用的一个 JSON Web Tokens (JWT)的实现
jwt-auth - JWT 为 Go 语言 HTTP 服务器编写的 jwt 中间件,有多种配置选项
jwt-Go - Go 语言实现的 JSON Web Tokens (JWT).
loginsrv - JWT 登录微服务,可以继承 OAuth2 (Github), htpasswd, osiam 等后端。
oauth2 - Goauth2 的继承者。 通用 OAuth 2.0 库,集成了对 JWT, Google APIs, Compute Engine 和 App Engine 的支持.
osin - Go 语言 OAuth2 服务器库
permissions2 - 用于追踪用户,登录状态和许可的库。使用安全 cookies 和 bcrypt.
session - Go 语言会话管理(支持 Google App Engine - GAE)
sessions - 为 Go 语言 HTTP 服务器开发的非常简单的、高性能的、高可定制的会话服务
traefik - 反向代理和负载均衡库,支持多种后端
yubiGo - Yubikey 客户端,提供了用于在 Go 语言应用中集成 Yubico Yubikey 的 API

golang 用于操作音频的库

flac - 原生 Go FLAC 解码器
flac - 原生 Go FLAC 解码器
gaad - 原生 Go AAC 比特流解析器
Go-sox - libsox 的 Go 语言接口
Go_mediainfo - libmediainfo 的 Go 语言接口
Gosamplerate - libsamplerate 的 Go 语言接口
id3v2 - 快速且稳定的 ID3 解析及写入库
mix - 基于序列的 Go 语言混音器,可用于音乐 app。
mp3 - 原生 Go MP3 解码器
music-theory - Go 语言编写的音乐理论模型
PortAudio - 音频 I/O 库的 Go 语言接口
portmidi - PortMidi 的 Go 语言接口
taglib - taglib 的 Go 语言接口
vorbis - "原生" Go Vorbis 解码器 (使用 CGo, 但是没有其他依赖).
waveform - 一个可以通过音频流生成波形图像的包

golang 代码中嵌入其他语言的包

aGora - 一种动态类型的可以嵌入 Go 中的编程语言
anko - Go 语言编写的解释器
binder - Lua 接口, 基于 Gopher-lua
gisp - Simple LISP
Go-duktape - Duktape JavaScript 引擎的 Go 语言接口
Go-lua - Lua 5.2 虚拟机的纯 Go 语言接口
Go-php - PHP 的 Go 语言接口
Go-python - CPython C-API 的 Go 语言接口
Golua - Lua C API。的 Go 语言接口
Gopher-lua - Go 语言编写的 Lua 5.1 虚拟机和编译器
ngaro - 可嵌入的 Ngaro 虚拟机实现,支持在 Retro 中使用脚步
otto - Go 编写的 Javascrip 解释器
purl - 嵌入 Go 语言的 Perl 5.18.2

go 日志库

glg - glg 是一个简单、快速、分级的日志库
glog - 分级记录日志的库
Go-cronowriter 对日志文件进行自动循环写入的库基于当前日期和时间,类似 cronolog.
Go-log - 支持多处理器及日志分级的库
Go-log - Go 语言实现的 Log4j
Go-logger - 支持日志分级的简单的日志工具
Gologger - 简单易用的日志库,可以在彩色控制台、简易控制的、文件或 Elasticsearch 中记录
Gomol - 支持多种输出,结构化的日志模块,可以扩展它的输出
Gone/log - 快速、可扩展、全功能、兼容标准库的日志库
log - 结构化日志库
log - 简单、可配置、可扩展的结构化日志库
log-voyage - 全功能日志 saas 使用 Go 语言编写
log15 - 简单强大的日志库
logdump - 支持分级的日志库
logex - Go 语言日志库,支持追踪和分级,基于标准库进行了封装
logger - 一个极简的日志库
logrus - 支持结构化的日志工具.
logrusly - logrus 的插件,用于将错误发送到 Loggly.
logutils - 对 Go 语言标准日志工具进行了扩展,使其更好用
logxi - 十二要素 app 日志工具,非常快速,令你开心
lumberjack - 简单的循环日志工具,实现了 io.WriteCloser.
mlog - 一个简单的日志模块,可以分 5 级并有一个可选的循环日志文件记录功能,支持 stdout/stderr 输出.
ozzo-log - 高性能日志库,支持日志严重级别、分类及过滤。可以将过滤后的信息发送到不同的目的地(例如: 控制台、网络、邮箱).
seelog - 一个灵活的、解耦的、格式化的日志库
slf - 简单日志门面(The Structured Logging Facade (SLF) ) (类似 SLF4J,但是它是结构化的,并且专为 Go 语言设计)
slog - 为 Go 语言实现的结构化日志门面(Structured Logging Facade (SLF) )
spew - 为 Go 语言的数据结构实现了一个整洁的打印功能,有助于调试
stdlog - Stdlog 是一个面向对象的库,提供了分级日志功能,对于定时任务很有用.
tail - 这个 Go 语言软件包力争模拟 BSD tail 的功能
xlog - 插件架构以及灵活的日志系统,具有日志等级控制,多日志目标以及自定义日志格式功能
xlog - 结构化日志 for net/context aware HTTP handlers ,可以灵活的分发
zap - 快速的、结构化的、分级的日志库
zerolog - 零分配 JSON 日志.

golang 操作表单的库

bind - 将表单数据绑定到任意的 Go 变量上
binding - 将来自 net/HTTP 请求的表单、JSON 数据绑定到结构体
conform - 检查用户输入并基于结构标签来清理数据
form - 解码 url 中的数据到 Go 语言变量中以及将 Go 语言变量编码进 url 支持 Dual Array 及 Full map
formam - 将表单数据解码到结构体
forms - 框架无关的表单/JSON 数据解析验证库,支持多部分表单及文件
Gorilla/csrf - 为 Go 语言 web 应用提供 CSRF 防御
nosurf - CSRF 防御中间件

Go 实现消息系统的库

CentrifuGo - 实时消息服务器
dbus - D-Bus 的 Go 语言接口
drone-line - 通过软件包,docker 或是 Drone CI 来发送 Line 通知
emitter - 通过 Go 语言的方式发送事件消息,可以使用通配符,断言,取消发送等优秀特性
EventBus - 轻量级事件库,支持异步
gaurun-client - Go 语言编写的 Gaurun 客户端
Glue - 健壮的 Go 和 Javascript Socket 库 (可以用来替代 Socket.io).
Go-longpoll - 支持长轮询的发布与订阅
Go-notify - 原生实现的桌面通知规范
Go-nsq - NSQ 官方 Go 语言库
Go-socket.io- Go 语言的 socket.io 库 ,一个实时应用框架.
Go-vitotrol - Viessmann Vitotrol 服务的 Go 语言客户端
Gollum - 一个 n:m 的多路复用器,从不同的源汇聚消息并向目标进行广播
Golongpoll - HTTP 长轮询服务器库,让 web 发布与订阅变的更简单.
Goose - Go 语言实现的服务器端事件发送
Gopush-cluster - Gopush-cluster 是一个 Go 语言实现的支持集群的 comet 服务(支持 websocket,和 tcp 协议)
Gorush - 通知推送服务器,使用 APNs2 和 Google GCM.
guble - 一个使用通知推送(Google Firebase Cloud Messaging, Apple Push Notification services, SMS)、websockets 、REST API 的消息服务器。提供了分布式操作和消息持久化特性
machinery - 异步任务队列,基于分布式消息处理
manGos - 纯 Go 语言实现的 Nanomsg ("Scalable Protocols")
melody - 用于处理 websocket 会话的一个极简框架,包括广播和自动 ping/pong 处理
NATS Go Client - 轻量级高性能发布订阅(publish-subscribe) 以及分布式消息队列系统,这个一个 Go 语言库.
nsq-event-bus - 针对 NSQ 的主题和频道进行了简单的封装
oplog - 原生的 oplog/replication 系统,用于 REST APIs
pubsub - 一个简单的 pubsub 软件包
RapidMQ - RapidMQ 是一个轻量级,可靠的本地消息队列管理库
sarama - 用于 Apache Kafka 的库
Uniqush-Push - 基于 Redis 的统一推服务,用于服务器端向移动客户端推送消息
zmq4 - ZeroMQ version 4 的 GO 语言接口。也有适用于 version 3 及 version 2 的

  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 283 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • XPPA

    正准备学习 Go,留着备用😄 。

  • 其他回帖
  • H3ll0Wor1d

    强啊老哥,直接干货

推荐标签 标签

  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    15 引用 • 122 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 4 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    47 引用 • 25 回帖
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 51 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 154 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 382 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 529 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖 • 1 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 27 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    190 引用 • 1057 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 5 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    85 引用 • 139 回帖 • 1 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 816 回帖 • 1 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 629 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 437 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    69 引用 • 372 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 700 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 43 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 787 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖