PrismGo 是一个由 AI Agent 全自动开发的 Laravel 风格的 Go 语言 Web 框架,Laravel 设计哲学贯穿始终,与 Go 社区主流编码风格自然融合。如果你熟悉 Laravel 的开发体验——Facade、ServiceProvider、Artisan 命令、缓存系统、Eloquent ORM 风格、事件系统、队列任务、日志系统——那么你会在 PrismGo 里找到一模一样的感觉。
我们希望让 Go 开发者不必在 "高性能" 和 "高开发效率" 之间做选择。PrismGo 使用 Go 生态中最成熟的底层组件(Gin、GORM、Redis、Viper、Logrus、Cobra),再用 Laravel 的设计哲学把它们组织成一整套开箱即用的 Web 工具箱。
一句话定位:让你用 Go 的语法,享受 Laravel 的开发体验。
| 裸用 Gin/GORM | PrismGo | |
|---|---|---|
| 路由 | 手写 Gin Router | route.Get("/users/{id}") 命名路由、资源路由、分组 |
| 命令 | 裸写 main/flag | Artisan 风格 CLI:go run . serve go run . migrate |
| 配置 | 到处 viper.Get | config.GetString("app.name") 点路径统一读取 |
| 日志 | logrus 裸用 | 多通道日志:logger.Channel("error").Error(...) |
| 缓存 | 自己封装 Redis | cache.Remember(ctx, key, ttl, callback) |
| 事件 | 无 | event.Dispatch(ctx, OrderPaid{ID: 1001}) + listener |
| 队列 | 自建 worker | queue.Dispatch(ctx, job) Redis/RabbitMQ 开箱即用 |
| 迁移 | 手写 SQL | Schema Blueprint:$table->String("name") |
| 资源管理 | 各自 Close | 统一应用生命周期,启动注册、退出释放 |
核心优势就一个:你知道想做什么,框架帮你做掉样板代码。
安装 PrismGo 安装器
go install github.com/prismgo/installer/cmd/prismgo@latest创建应用
prismgo new github.com/acme/myapp
启动 web 服务器
cd myapp
go run . serve
打开浏览器访问 http://localhost:8080/api
| 组件 | 做什么 | 怎么用 |
|---|---|---|
cache |
缓存管理器:memory/redis/file/failover | cache.Remember(ctx, key, ttl, fn) |
config |
.env 加载、点路径配置读取 |
config.GetString("app.name") |
console |
Artisan 风格命令模型、IO、表格输出 | console.NewDefinition("cmd:name") |
container |
服务容器:绑定、解析、单例、实例管理 | app.Container().Bind("key", factory) |
cookie |
Cookie 值对象、队列写入 | cookie.New("name", "val").HttpOnly() |
database |
GORM 连接管理、连接池 | database.Resolve() |
database/schema |
Blueprint 风格迁移 DSL | schema.Bind(db).Create("table", fn) |
encryption |
加密与解密:密钥配置、字符串加密器 | encryption.EncryptString("value") |
event |
事件总线:同步/异步/队列 | event.Dispatch(ctx, ev) |
exception |
统一异常处理器,Report + Render + 日志级别映射 | exception.Report(ctx, err, fields) |
filesystem |
文件系统抽象:local/public/OSS | filesystem.Disk("public").Put(...) |
foundation |
应用启动、Provider 注册、生命周期、资源关闭 | foundation.NewApplication() |
horizon |
队列监控面板,worker 管理、任务指标、Dashboard | go run . horizon |
kernel |
CLI Kernel,命令注册、调度、互调 | kernel.RegisterLazy("xxx", factory) |
logger |
多通道日志:stack/single/daily/stderr/null | logger.Channel("daily").Info("msg") |
queue |
任务队列:Redis/RabbitMQ/Sync | queue.Dispatch(ctx, job) |
ratelimit |
固定窗口限流 | ratelimit.For("api").PerMinute(60) |
route |
Gin 之上的 Laravel 风格路由声明 | route.Get("/", handler).Name("home") |
session |
服务端 session,file 驱动 | session.Put(ctx, "key", value) |
support |
通用辅助函数:路径解析、值判断、类型转换、环境判断 | support.StoragePath(...) / support.IsProduction() |
timer |
定时调度器 | schedule.Command("x").Daily() |
MIT
