Golang Go语言全新国产框架准备发布啦,快来看看吧

发布于 1周前 作者 wuwangju 来自 Go语言

goal

一个继承了 laravel 思想的 golang web 框架

框架特点

goal 通过容器和服务提供者作为框架的核心,以 contracts 为桥梁,为开发者提供丰富的功能和服务,这点与 laravel 是相似的。

  • 强大的容器
  • 服务提供者
  • 契约精神

功能特性

  • <input disabled="" type="checkbox"> examples 各种程序的例子(还在完善中...)
  • <input disabled="" type="checkbox"> contracts 定义模块接口
  • <input disabled="" type="checkbox"> container 容器实现!!!
  • <input disabled="" type="checkbox"> pipeline 简单但是很强大的洋葱模型的管道
  • <input disabled="" type="checkbox"> supports 支持库
    • <input disabled="" type="checkbox"> logs 日志模块
    • <input disabled="" type="checkbox"> collection 集合库
    • <input disabled="" type="checkbox"> utils 工具库,封装了包含字符串处理、默认参数处理、类型转换、反射等工具函数
  • <input disabled="" type="checkbox"> application 应用
    • <input disabled="" type="checkbox"> exceptions 异常处理模块
    • <input disabled="" type="checkbox"> signal 信号监听,goal 实现了优雅关闭功能
  • <input disabled="" type="checkbox"> config 配置模块
  • <input disabled="" type="checkbox"> redis Redis 模块
  • <input disabled="" type="checkbox"> cache 缓存模块
    • <input disabled="" type="checkbox"> redis
    • <input disabled="" type="checkbox"> memory 将数据存储在内存中,不支持持久化和分布式
    • <input disabled="" type="checkbox"> memcached
    • <input disabled="" type="checkbox"> file
    • <input disabled="" type="checkbox"> database 数据库驱动
    • <input disabled="" type="checkbox"> multi 高可用多级缓存
  • <input disabled="" type="checkbox"> encryption 加密模块
  • <input disabled="" type="checkbox"> hashing 哈希模块
  • <input disabled="" type="checkbox"> validation 数据校验模块
  • <input disabled="" type="checkbox"> mail 邮件模块
  • <input disabled="" type="checkbox"> events 事件模块
  • <input disabled="" type="checkbox"> filesystem 文件系统模块
    • <input disabled="" type="checkbox"> local 本地文件系统
    • <input disabled="" type="checkbox"> qiniu 七牛文件系统
    • <input disabled="" type="checkbox"> oss 阿里云文件系统
  • <input disabled="" type="checkbox"> database 数据库操作模块
    • <input disabled="" type="checkbox"> query builder 查询构造器
    • <input disabled="" type="checkbox"> seeders 数据填充
    • <input disabled="" type="checkbox"> migration 数据迁移
    • <input disabled="" type="checkbox"> drivers 数据库驱动
      • <input disabled="" type="checkbox"> mysql
      • <input disabled="" type="checkbox"> postgresql
      • <input disabled="" type="checkbox"> sqlite
      • <input disabled="" type="checkbox"> clickhouse
      • <input disabled="" type="checkbox"> sqlserver
  • <input disabled="" type="checkbox"> eloquent ORM 模块,计划 golang 1.18 发布后完成,因为泛型
  • <input disabled="" type="checkbox"> http http 相关模块,请求、响应、中间件等
    • <input disabled="" type="checkbox"> sse server-sent-events 模块(简称 sse)
    • <input disabled="" type="checkbox"> routing http 路由服务
    • <input disabled="" type="checkbox"> session 会话服务
      • <input disabled="" type="checkbox"> cookie 将会话信息存储到加密的 cookie 中
      • <input disabled="" type="checkbox"> redis
      • <input disabled="" type="checkbox"> file
      • <input disabled="" type="checkbox"> database
      • <input disabled="" type="checkbox"> memcached
  • <input disabled="" type="checkbox"> console 命令行模块
    • <input disabled="" type="checkbox"> commands 自定义命令模块
    • <input disabled="" type="checkbox"> scheduling 任务调度模块
  • <input disabled="" type="checkbox"> auth 用户认证模块
    • <input disabled="" type="checkbox"> gate 用户授权模块
  • <input disabled="" type="checkbox"> serialize 序列化模块
    • <input disabled="" type="checkbox"> json
    • <input disabled="" type="checkbox"> xml
    • <input disabled="" type="checkbox"> gob
    • <input disabled="" type="checkbox"> protobuf
  • <input disabled="" type="checkbox"> queue 消息队列模块
    • <input disabled="" type="checkbox"> redis
    • <input disabled="" type="checkbox"> kafka
    • <input disabled="" type="checkbox"> nsq
    • <input disabled="" type="checkbox"> rocketMQ
    • <input disabled="" type="checkbox"> rabbitMQ
  • <input disabled="" type="checkbox"> rate limiter 限流器
  • <input disabled="" type="checkbox"> bloom-filter 布隆过滤器
    • <input disabled="" type="checkbox"> file 持久化到文件
    • <input disabled="" type="checkbox"> redis 通过 redis bit 实现的过滤器,支持分布式
  • <input disabled="" type="checkbox"> websocket socket 通信模块
  • <input disabled="" type="checkbox"> micro 远程调用模块(集成 go-micro )
    • <input disabled="" type="checkbox"> grpc
    • <input disabled="" type="checkbox"> 服务发现
    • <input disabled="" type="checkbox"> 负载均衡
    • <input disabled="" type="checkbox"> 自定义 go-micro
    • <input disabled="" type="checkbox"> 微服务 demo
  • <input disabled="" type="checkbox"> 第三方 sdk
    • <input disabled="" type="checkbox"> 支付宝 sdk
    • <input disabled="" type="checkbox"> 微信 sdk
    • <input disabled="" type="checkbox"> 阿里云 sdk
    • <input disabled="" type="checkbox"> 极光推送 sdk
    • <input disabled="" type="checkbox"> 字节跳动 sdk
    • <input disabled="" type="checkbox"> QQ sdk

参与项目

你可以通过以下方式参与到项目中来

  • <input disabled="" type="checkbox"> 完善已有模块(优化或者改 bug )
  • <input disabled="" type="checkbox"> 完善或者修复测试用例
  • <input disabled="" type="checkbox"> 开发新的模块(比如标记为未完成的模块)
  • <input disabled="" type="checkbox"> 添加或者修改完善注释(用英语)
  • <input disabled="" type="checkbox"> 修改错别字或者不当用词(文档和代码都可以,比如变量命名)
  • <input disabled="" type="checkbox"> 帮助开发独立文档( readme 是临时的,后面需要独立的文档项目)
  • <input disabled="" type="checkbox"> 开发扩展包( goal 的扩展相当容易,后面我会写教程,现阶段进群聊)
  • <input disabled="" type="checkbox"> 使用 goal 实现各种例子(放 examples 文件夹或者新建仓库在这里引用)
  • <input disabled="" type="checkbox"> 更多方式进群聊吧

交流

扫码加入 QQ 群
qq_pic_merged_1635476228621.jpg


Golang Go语言全新国产框架准备发布啦,快来看看吧

更多关于Golang Go语言全新国产框架准备发布啦,快来看看吧的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

33 回复

为什么不直接说 spring ,要说 laravel

更多关于Golang Go语言全新国产框架准备发布啦,快来看看吧的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


哈哈哈也可以,不过 spring 并没有服务提供者的概念

服务提供者不就是 Spring 的 Bean 么

我也借楼留一个框架~~
高性能 TCP 网络框架,基于事件循环,可配置路由模式,无需关心封包解包,框架自动完成,支持 TLS ,后期会支持分布式模式,详情可见 repo: https://github.com/ikilobyte/netman

不太一样的,Bean 提供的是一个类,服务提供者提供的是一个服务,一个服务里面可能包含一个类,也可能提供多个类,甚至可以在服务提供者里面直接运行一些任务。

更具体的可以参考 goal-web 组织下的一些组件仓库对服务提供者的实现代码 https://github.com/goal-web

类里面写服务不就是服务了么,service 也是 bean ,service 翻译是啥老哥。 不过我是 java 新手, 所以也不敢保证是这样, 但我觉得那个服务提供者就是个容器的作用, 跟 spring 没有区别

赞! 在 learnku 有关注过

谢谢支持

你这个框框里,都没有勾勾啊

一个类提供一种服务没错,但有写时候我们可能需要许多个类一起组成一个更大,更复杂的服务,全都由一个类提供显得太臃肿,将其拆为多个类比较合适。

V2 的解析问题,代码里面有的哈哈

一直觉得继承 XX 思想,就是没有思想。

go 只需要各种工具集,如果尝试搞一个框架,就太臃肿了,意味着场景太小。


#4 简单 review 了下,先 issue 了个,欢迎多多交流

虽然我仍然喜欢大道至简,但是希望有楼主这种项目能让那些对 golang 大道至简阴阳怪气的小白们闭嘴

其实 99% 的项目用不到这些框架

大佬 考虑用泛型吗

哈哈哈,好的东西要学习,看过代码你就知道了。

这个框架跟 spring 也有些相似的地方,框架本身提供的是配置和容器,其他所有组件都是可选的,群里就有朋友基于我给的 example 精简了很多东西,从何挖掘到到适合他自己的脚手架

谢谢支持,其实有不同的声音很正常,我也只是给了开源社区的各位一个新的选择,这是开源社区发展的常态。

哈哈哈,没有经过统计的 99%吗 ? 退一万步说,不是还有 1%嘛 ~ 我很乐观

必须考虑阿,所以准备等 go 1.18 正式发布后,goal 框架适配后才正式发布

有没有写过一部分 能开个分支看看吗

目前还没有哦,感兴趣进群里详细聊呀

赞一个,加油

👍,话说 go 里面有啥好用的 orm 吗

目前没有发现特别好用的

赶快发布呀,一个 phper 的 强烈期盼

哈哈哈,快了快了,进群关注最新动态呀

坐标深圳,求一枚 Golang/Python 大佬!!欢迎砸简历 V:Ifboredgunquxuexi.

对于“Golang Go语言全新国产框架准备发布”的帖子,作为一名IT领域的Go语言专家,我认为这无疑是一个值得期待的消息。以下是我的一些专业看法:

首先,Go语言(Golang)作为Google开发的开源编程语言,以其简洁、高效和并发的设计原则,在IT领域受到了广泛的关注和喜爱。随着国内IT行业的快速发展,越来越多的开发者开始关注并投入到Go语言的研究和开发中,国产Go语言框架的出现正是这一趋势的体现。

其次,国产框架通常更加贴近国内开发者的使用习惯和需求,能够更好地满足国内市场的特定需求。同时,国产框架的发布也将进一步推动Go语言在国内的普及和应用。

最后,对于这款全新的国产Go语言框架,我建议开发者们保持关注并积极尝试。在尝试过程中,可以关注其性能、稳定性、易用性等方面,同时也可以提出自己的意见和建议,共同推动这款框架的不断完善和发展。

总之,国产Go语言框架的发布是一个值得庆祝的消息,相信它将为Go语言在国内的发展注入新的活力和动力。

回到顶部