Skip to content

prismgo/framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

138 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrismGo —— 像写 Laravel 一样写 Go

Go Version Module Coverage Latest Version License

简体中文 | English


这是什么?

PrismGo 是一个由 AI Agent 全自动开发的 Laravel 风格的 Go 语言 Web 框架,Laravel 设计哲学贯穿始终,与 Go 社区主流编码风格自然融合。如果你熟悉 Laravel 的开发体验——Facade、ServiceProvider、Artisan 命令、缓存系统、Eloquent ORM 风格、事件系统、队列任务、日志系统——那么你会在 PrismGo 里找到一模一样的感觉。

我们希望让 Go 开发者不必在 "高性能" 和 "高开发效率" 之间做选择。PrismGo 使用 Go 生态中最成熟的底层组件(GinGORMRedisViperLogrusCobra),再用 Laravel 的设计哲学把它们组织成一整套开箱即用的 Web 工具箱。

一句话定位:让你用 Go 的语法,享受 Laravel 的开发体验。


为什么选择 PrismGo?

裸用 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()

License

MIT

About

PrismGo - Write Go Like Laravel

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages