Golang 库文件及其简介

305 阅读4分钟

有些golang的库看了但是用不上,时间长了容易忘记,做个记录方便自己查。

flag--解析命令行选项

go-flags--比flag更丰富的选项及特性

go-ini--操作ini文件的第三方库

cobra--用于编写命令行程序,提供便于开发的脚手架

cli--构建命令行程序的库,操作简洁

cast--变量类型转换

viper--监听文件修改并自动加载新的配置,可读取配置

fsnotify--监听文件修改动作

air--热加载工具,支持监听文件或目录的变化、自动编译、重启程序

log--标准的日志库

logrus--支持分级、分格式输出日志内容

zap--Uber开源的日志库,优化了性能和内存分配,支持热点函数中的日志记录

zerolog--高性能日志库,专注JSON格式的日志,号称0内存分配

godotenv--从.env文件中读取配置并存到程序的环境变量中

carbon--标准库time的升级版

dateparse--解析日期时间格式的字符串

email--发送邮件

dig--依赖注入(DI)库

encoding/json--Go标准库内置的JSON操作库

gojsonq--便于读取JSON格式的数据,支持各种查询、汇总统计等功能

gjson--get+json的缩写,用于读取JSON串的值

sjson--set+json的缩写,用于设置JSON串的值

jj--基于gjson和sjson的、支持快速读取/设置JSON值的命令行程序

gabs--查询和修改JSON串的库

message-bus--异步消息通信库

watermill--异步消息解决方案,支持消息重传、消息保存

jobrunner--支持异步任务的执行和状态监控

gotalk--进程间通信的库,简化进程间的通信协议和流程

wire--Google开源的依赖注入工具,是一个代码生成器

mergo--支持在相同结构体或map之间赋值

copier--支持不同类型之间的赋值

jennifer--生成Go语言代码

go-cmp--Google开源的比较库

buntdb--内存键值数据库,支持ACID、并发读、自定义索引和空间信息数据

nutsdb--支持List/Set/Sorted Set等类型的持久化存储

sqlc--根据sql语句生成类型安全的Go接口代码,主要是PostgreSQL,MySQL待完善

xorm--简化数据库操作的Object Relational Mapping

govaluate--计算任意表达式的值

validator--支持对数据进行校验

gopsutil--获取各种系统和硬件信息

gentleman--功能齐全、插件驱动的HTTP客户端

plot--用于将数据可视化、便于观察比较

cron--管理定时任务的库

go-app--一种支持使用Go语言编写WebAssembly代码的库

rpc--标准库"net/rpc",使用gob格式传输数据

jsonrpc--"net/rpc/jsonrpc"库,使用json格式传输数据

rpcx--媲美gRPC性能的库,提供服务发现和治理的插件

twirp--基于Google Protobuf的RPC框架,根据.proto文件的服务定义、自动生成代码

casbin--支持ACL/RBAC/ABAC等访问控制模型,实现访问权限控制

fyne--跨平台的UI库

negroni--HTTP中间件的库,如统计处理器耗时

mapstructure--支持将map[string]interface{}解码到对应的Go结构体中,或反向操作

commonregex--内置常用正则表达式的库

quicktemplate--将编写的模板代码转换为Go语言代码,模板文件.qtpl

fasttemplate--字符串替换,提到strings.Replace、fmt.Sprintf等方法

goquery--类似jQuery的库,Go爬虫框架就是基于goquery

colly--爬虫框架,自动处理cookie&session

rxgo--基于pipelines的并发编程

bytebufferpool--实现了Buffer类型,降低了扩容带来的性能损失

reflect--用于编写出能统一处理所有类型的代码

ants--实现goroutine池的库,异步任务,自动管理goroutine的生命周期,按需创建、动态缩容,不支持任务超时/取消机制

tunny--实现goroutine池的库,以同步的方式执行任务,支持任务超时/取消机制

pprof--性能分析工具:CPU/MemoryProfiling/BlockProfiling/MutexProfiling

bubbletea--编写TUI控制台界面程序的框架,Terminal User Interface

ozzo--辅助开发Web应用程序的框架

ozzo-validation--数据校验库,提倡用代码指定规则来进行校验

ozzo-dbx--ORM库

ozzo-routing--路由库

ozzo-log--日志库

ozzo-config--配置库

net/http--标准库,提供Web服务

resty--HTTP client库,支持几乎所有的HTTP方法

termtables--处理表格形式数据的输出,便于观察和调试

gorilla--Web开发工具包

gorilla/mux--路由管理库

gorilla/handlers--提供的Web服务常用中间件

gorilla/schema--用于处理表单,支持表单数据到结构体对象的转换

gorilla/securecookie--路由管理库

gorilla/sessions--管理session的库

goth--封装了介入第三方认证的方法

testing--标准库自带的测试库,支持单元测试、性能测试、示例测试

testify--最流行的Go测试库,提供接口辅助assert和错误信息输出

bitset--实现了位集合及相关操作

roaring--压缩位图库,解决bitset消耗大量内存的场景