Golang 常用工具记录

Golang 常用工具记录

1 golang 类

1.1 日常使用的

copier

复制结构体到另外一个结构体 等等类似的功能

asynq

Go中简单、可靠、高效的分布式任务队列,使用 redis 做为 broker

machinery

Machinery是基于分布式消息传递的异步任务队列/作业队列。

resty

resty是 Go 语言的一个 HTTP client 库。resty功能强大,特性丰富。它支持几乎所有的 HTTP 方法。(GET/POST/PUT/DELETE/OPTION/HEAD/PATCH等),并提供了简单易用的 API。

1.2 日志包

sirupsen/logrus

go get github.com/sirupsen/logrus

golang 的日志包

uber-go/zap

go get -u go.uber.org/zap

golang 的日志包

1.3 配置文件解析

go-ini/ini

go get gopkg.in/ini.v1

ini 配置文件解析工具

spf13/viper

go get github.com/spf13/viper

golang 的配置文件解析工具,支持多种格式,常用这个

2 grpc 类

grpcui

调试grpc服务的工具

sql2pb

将数据库中的表转成 proto 文件,go-zero-looklook就用到了这个工具

3 web框架

gin-gonic/gin

go get -u github.com/gin-gonic/gin

http 框架

gorilla/websocket

go get github.com/gorilla/websocket

websocket 库

据说性能低,每次 write 都要加锁,无法并发写入,不支持go 上下文特性,据说还会导致连接不会释放? 这个还不确定哦!!!

nhooyr/websocket

go get nhooyr.io/websocket

websocket 库,后面项目中用到,可以试试这个

validator

go get github.com/go-playground/validator/v10

web 参数校验常用的库

4 跟数据库打交道的

4.1 sql 类

go-gorm/gorm

go get -u github.com/jinzhu/gorm

golang 的 orm 框架

gormt

mysql数据库转 struct 工具,可以将mysql数据库自动生成golang sturct结构,带大驼峰命名规则。带json标签

squirrel

Go 的流畅 SQL 生成器 

4.2 no sql 类

mongo-go-driver

go get go.mongodb.org/mongo-driver/mongo

mongodb 的驱动器

go-redis/redis

# redis6.X
go get github.com/go-redis/redis/v8

# redis7.x
go get github.com/go-redis/redis/v9

5 跟消息队列 打交道的

5.1 kafka 类

segmentio/kafka-go

go get github.com/segmentio/kafka-go

kafka 客户端,有个现象,同步生产很慢,但是异步生成就很快。
go-queue中的kq 就是用的 kafka-go

confluentinc/confluent-kafka-go

go get -u github.com/confluentinc/confluent-kafka-go/kafka

kafka 客户端。go 调 c++的库,性能强,就是编译麻烦些

6 Go学习的资料

6.1、 基础学习资料

go基础学习仓库

Go 学习、Go 进阶、Go 实用工具类、Go DDD 项目落地、Go-kit 、Go-Micro 、Go 推送平台、微服务实践

万字长文讲解Golang pprof 的使用
一看就懂系列之Golang的pprof

posted @ 2023-12-24 19:55  画个一样的我  阅读(149)  评论(0编辑  收藏  举报