一个继承了 laravel 思想的 golang web 框架
框架特点
goal 通过容器和服务提供者作为框架的核心,以 contracts 为桥梁,为开发者提供丰富的功能和服务,这点与 laravel 是相似的。
- 强大的容器
- 服务提供者
- 契约精神
功能特性
- examples 各种程序的例子(还在完善中...)
- contracts 定义模块接口
- container 容器实现!!!
- pipeline 简单但是很强大的洋葱模型的管道
-
supports 支持库
- logs 日志模块
- collection 集合库
- utils 工具库,封装了包含字符串处理、默认参数处理、类型转换、反射等工具函数
-
application 应用
- exceptions 异常处理模块
- signal 信号监听,goal 实现了优雅关闭功能
- config 配置模块
- redis Redis 模块
-
cache 缓存模块
- redis
- memory 将数据存储在内存中,不支持持久化和分布式
- memcached
- file
- database 数据库驱动
- multi 高可用多级缓存
- encryption 加密模块
- hashing 哈希模块
- validation 数据校验模块
- mail 邮件模块
- events 事件模块
-
filesystem 文件系统模块
- local 本地文件系统
- qiniu 七牛文件系统
- oss 阿里云文件系统
-
database 数据库操作模块
- query builder 查询构造器
- seeders 数据填充
- migration 数据迁移
-
drivers 数据库驱动
- mysql
- postgresql
- sqlite
- clickhouse
- sqlserver
- eloquent ORM 模块,计划 golang 1.18 发布后完成,因为泛型
-
http http 相关模块,请求、响应、中间件等
- sse server-sent-events 模块(简称 sse)
- routing http 路由服务
-
session 会话服务
- cookie 将会话信息存储到加密的 cookie 中
- redis
- file
- database
- memcached
-
console 命令行模块
- commands 自定义命令模块
- scheduling 任务调度模块
-
auth 用户认证模块
- gate 用户授权模块
-
serialize 序列化模块
- json
- xml
- gob
- protobuf
-
queue 消息队列模块
- redis
- kafka
- nsq
- rocketMQ
- rabbitMQ
- rate limiter 限流器
-
bloom-filter 布隆过滤器
- file 持久化到文件
- redis 通过 redis bit 实现的过滤器,支持分布式
- websocket socket 通信模块
-
micro 远程调用模块(集成 go-micro )
- grpc
- 服务发现
- 负载均衡
- 自定义 go-micro
-
第三方 sdk
- 阿里云 sdk
- 极光推送 sdk
- 字节跳动 sdk
- QQ sdk
参与项目
你可以通过以下方式参与到项目中来
- 完善已有模块(优化或者改 bug )
- 完善或者修复测试用例
- 开发新的模块(比如标记为未完成的模块)
- 添加或者修改完善注释(用英语)
- 修改错别字或者不当用词(文档和代码都可以,比如变量命名)
- 帮助开发独立文档( readme 是临时的,后面需要独立的文档项目)
- 开发扩展包( goal 的扩展相当容易,后面我会写教程,现阶段进群聊)
- 使用 goal 实现各种例子(放 examples 文件夹或者新建仓库在这里引用)
- 更多方式进群聊吧
交流
扫码加入 QQ 群