4、必须推荐这10个golang开源项目,从新手到进阶该有的都有!
1、the-way-to-go_ZH_CN
https://github.com/unknwon/the-way-to-go_ZH_CN
《The Way to Go》中文译本,中文正式名《Go 入门指南》
尽管该书对目前 Go 语言版本来说有小部分内容相对过时,但是为当下不可多得的好书,相关内容已获得作者同意根据当前 Go 语言版本进行修改而不作出特别声明。
该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展!
2、starcharts
https://github.com/caarlos0/starcharts
这个项目是通过可视化的方式展示 GitHub 上 star 的增长曲线,也就生成是“星图”。
推荐这个项目主要是运行简单和直观的数据可视化,可以快速地感受到 Go 开源项目带来的便利。
3、tinode
https://github.com/tinode/chat
这是一个开源的即时通讯软件,既然是即时通讯软件,学习的时候基本上无任何业务负担,可以专注地学习程序逻辑本身。
android如图所示:
iOS如图所示:
4、jupter
https://github.com/douyu/jupiter
Jupiter是斗鱼开源的面向服务治理的Golang微服务框架。
通过这个项目,你可以学习到如何使用 Go 开发:
- 支持 HTTP 请求
- 支持 RPC 请求、RPC 实现
- 服务注册与发现
- 长短任务设计
- 负载均衡
- 指标采集/链路追踪/日志埋点
- 慢响应拦截
- 熔断限流
- 接入各种消息中间件(如 Kafka、RocketMQ 等)
- 接入各种缓存服务(如 Redis)
- 其他功能
5、dtm
https://github.com/dtm-labs/dtm
简洁的一个分布式事务开源项目,6行go代码能够接入一个分布式事务。核心代码不到两千行,是微服务拆分事务的必备利器。
通过这个小而美的项目,你可以学习到go开发中:
- 如何开发HTTP服务
- 自动测试:高覆盖率保证健壮性
- 设计模式:优雅支持go-zero等框架
- 日志技巧
- 数据库技巧
- 分布式系统
- 其他技巧
6、go-admin
https://github.com/go-admin-team/go-admin
基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;
文档:https://doc.go-admin.dev
Demo:https://www.go-admin.dev
Antd beta版本:https://preview.go-admin.dev
简单快捷:
基于Gin的权限管理系统 易读易懂、界面简洁美观,提供前端Vue、后端Gin完全分离的权限管理系统,5分钟既可以实现一个应用
技术栈:
使用 gin/vue/react 等技术开发 合理的框架选择,良好的工程实践助你持续产出高质量代码 基于Casbin的 RBAC 访问控制模型
代码生成:
在线配置表信息生成对应的代码,增删改查/排序/导出/权限控制等直接使用。
7、sharingan
https://github.com/didi/sharingan
Sharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。
随着微服务架构的兴起,服务之间的依赖关系变的越来越复杂,软件测试也面临新的挑战:系统升级频繁、服务依赖众多等等。
- 常见的测试方案(如:单元测试、系统测试等)构造和维护测试用例成本高,特别是业务复杂的场景。「构造测试数据难」
- 依赖第三方服务众多,线下测试环境不太稳定,经常出现下游服务不可用导致测试失败的情况发生。「维护测试环境成本高」
为此,我们需要开发一套工具来缓解上述问题。
整体架构图:
8、Cloudreve
https://github.com/cloudreve/Cloudreve
特性:
- ☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
- 上传/下载 支持客户端直传,支持下载限速
- 可对接 Aria2 离线下载,可使用多个从机机点分担下载任务
- 在线 压缩/解压缩、多文件打包下载
- 覆盖全部存储策略的 WebDAV 协议支持
- ⚡ 拖拽上传、目录上传、流式上传处理
- ️ 文件拖拽管理
- 多用户、用户组
- 创建文件、目录的分享链接,可设定自动过期
- ️ ️ 视频、图像、音频、文本、Office 文档在线预览
- 自定义配色、黑暗模式、PWA 应用、全站单页应用
- All-In-One 打包,开箱即用
9、beego
https://github.com/astaxie/beego
面向Go编程语言的开源高性能web框架
10、buffalo
https://github.com/gobuffalo/buffalo
使用Go语言快速构建Web应用
应用程序架构图:
11、gin-vue-admin
https://github.com/flipped-aurora/gin-vue-admin
基于vite+vue3+gin搭建的开发基础平台(已完成setup语法糖版本),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器等开发必备功能,五分钟一套CURD前后端代码。
项目截图:
系统架构图:
12、rosedb
https://github.com/flower-corp/rosedb
手写的一个简单的数据库。
项目使用纯 Golang 实现,Go 语言的绝大部分基础知识点都包含了,相信一定是学习和巩固 Golang 的很不错的项目;
除此之外,代码中还有一些数据结构的实现,所以同时也能学习一下数据结构的知识。
13、wblog
https://github.com/wangsongyan/wblog
基于gin+gorm开发的个人博客项目
项目结构:
-wblog
|-conf 配置文件目录
|-controllers 控制器目录
|-helpders 公共方法目录
|-models 数据库访问目录
|-static 静态资源目录
|-css css文件目录
|-images 图片目录
|-js js文件目录
|-libs js类库
|-system 系统配置文件加载目录
|-tests 测试目录
|-vendor 项目依赖其他开源项目目录
|-views 模板文件目录
|-main.go 程序执行入口
14、docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源
官网地址:https://www.docker.com/
15、Kubernetes
也称为K8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。
官方地址:Kubernetes
16、awesome-go
https://github.com/avelino/awesome-go
顾名思义,关于go语言的开源项目,awesome应有尽有!
如果你有好的golang开源项目,欢迎推荐!
文章来源于互联网:有哪些不错的golang开源项目?