main
fun
基于 fasthttp 的单端点 RPC 框架。业务请求统一走
POST /cell,按 ServiceName.MethodName 反射调用;自带依赖注入、Guard 鉴权、
NDJSON 流式响应、自定义路由与 TypeScript 客户端生成。
特性
- 单端点 RPC:
POST /cell,方法签名(error)、(T, error)、(stream, error)、(T, stream, error) - 依赖注入:
fun.Wired[T]()建单例,auto标签字段递归装配,New()初始化连接资源 - Guard 鉴权:全局 + 服务级中间件,panic 兜底转统一错误响应
- NDJSON 流式:
*fun.Stream逐行推送,支持首条消息 + 后续流 - 自定义路由(v1.3.0+):
BindRoute注册 GET/POST 回调、健康检查、通配符路径 - 请求体上限控制(v1.3.3+):
SetBodyLimit支持大体积 multipart 上传 - TypeScript 客户端生成:
BindServiceForGen+GenCode(fun.GenTs{}),免基础设施即可生成,产物带result<T>归一化错误与拦截器
快速开始
func main() {
f := fun.GetFun()
f.BindService(&UserSvc{}) // 服务结构体嵌入 fun.Ctx,导出方法即 RPC 端点
cfg := fun.Wired[config.Config]()
go f.Start(cfg.ListenPort()) // fasthttp 监听,RPC 只响应 POST /cell
}
文档
完整使用文档见 docs/README.zh.md:DTO 规则、线协议与 Result、 Guard、自定义路由、流式响应、TS 客户端生成与常见坑。
Languages
Go
100%