寻找Go堆栈备忘录
HTTP服务器
路由器
gorilla/mux是一个强大的Go语言URL路由器和分发器。你可以在https://github.com/gorilla/mux找到它。
经典。轻薄。
go-chi/chi是用于构建Go HTTP服务的轻量级、惯用的和可组合的路由器。
https://github.com/go-chi/chi
薄得多。比起Gorilla/Mux,API更加直观。
JSON请求
由于尺寸小,很多人似乎喜欢自己写。
以下列出的是精简的实现。
在Github上查看go-chi/render库的decoder.go文件。
呈现
展开/渲染:用于轻松渲染JSON、XML、二进制数据和HTML模板响应的Go程序包。
https://github.com/unrolled/render
颇受欢迎
工作队列
RichardKnop/machinery: Machinery是一个基于分布式消息传递的异步任务队列/作业队列。
经纪人和存储后端均支持多种选项(例如 AMQP、Redis、SQS、GCP Pub/Sub、Memcache、MongoDB),并且还支持延迟和重试功能。
gocraft/work是一个用Go语言处理后台作业的项目。
https://github.com/gocraft/work
Redis作为后端。也支持延迟。
关系型数据库管理系统 (RDBMS)
jinzhu/gorm:一个令人惊喜的Golang ORM库,旨在提供友好的开发体验。
https://github.com/jinzhu/gorm
热门。ORM。
go-gorp/gorp:Go关系持久化 – 一个用于Go的类ORM库
https://github.com/go-gorp/gorp
一句话描述SQL查询和结构映射都是通过使用自己编写的SQL语句来实现的,这样可以更好地控制查询操作。
发展
oxequa/realize: Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.
https://github.com/oxequa/realize
当使用go mod和cmd目录下存在main文件时,可能会出现无法解决相对模块的错误(条件可能不完全正确),但通过以下设置可以暂时解决。
在 Go 1.11 的模块中,无法使用 Realize – Qiita
其他
rakyll/statik: 将文件嵌入到 Go 可执行文件中
https://github.com/rakyll/statik