多协议支持:
HTTP —— 用于传统的 REST / HTTP API。
WebSocket(WS) —— 支持创建 WebSocket 服务。
TCP —— 可以作为纯 TCP 服务框架使用,也能和 HTTP/WS 同时运行。
自动客户端生成:
支持为 API 自动生成 JavaScript / TypeScript 客户端代码(feature-flags js / ts / code)。
这样前端或其他客户端可以直接使用生成的客户端调用后端,不需要手写 HTTP 请求 / WebSocket 管理。
自动文档/API 文档生成:
支持通过 feature-flag (doc) 自动生成服务列表、各个 handler 的文档、API 文档等。
结合 “描述/命名空间” 注解(见 below),可以方便地产生结构化、可读的文档。
简洁接口 + 低样板代码:
提供 #[handler] 属性宏 (macro):用来把异步 Rust 函数转变为完整的 API endpoint。这样你只需要写业务逻辑函数,而不需手写大量路由 / 请求解析 /响应包装等代码。
handler 宏支持注入元数据,例如 desc("…") 提供接口描述、ns("…") 提供命名空间以组织客户端生成结构。
请求 / 数据结构验证 (validation):
支持在请求结构体 (struct) 中,对字段加上验证注解 (validate),如必填 (required)、最小/最大值 (min / max)、其它自定义校验。这样可以在 handler 执行前自动验证输入参数是否合法。
这个功能对数据安全性、稳定性、接口可靠性非常有帮助。
状态管理 & 异步支持:
handler 函数是 async 的,支持异步执行,适合高并发场景。
支持全局或 per-request 状态 (state + header + request + response) 的管理 — 方便构造具有 “中间件 + 状态 + handler + 响应” 的完整服务流程。
灵活部署:
既可以只启用 HTTP / WS,也可以启用 TCP;也可以两个同时运行 —— 适用于多种后端需求 (web API + 原始 socket 服务)。
AFast 的实现核心基于 宏系统、类型约束、多协议运行时和可选功能模块。框架通过 #[handler] 属性宏将普通异步函数转化为可自动处理请求的服务端接口,这个过程包括:自动路由注册、请求解析、参数提取、输入校验、响应格式化等,从而避免开发者手写样板代码。请求与响应使用 Rust 的结构体表示,并支持字段级验证标签,框架会在运行时自动对输入进行校验,保证接口数据安全、规范。
协议层设计采用可插拔方式,通过 feature-flags 决定启用 HTTP、WebSocket 或 TCP 服务。运行时框架负责监听对应端口、接受连接,并将请求分发到生成的处理器。框架同时支持中间件机制,可扩展认证、日志、限流等能力。
客户端与文档生成是 AFast 的扩展能力。当启用代码生成 feature 时,框架会根据 handler 元信息生成 TypeScript/JavaScript 客户端代码以及 API 文档,并通过专用路由提供动态获取。这样可以保持后端接口定义与客户端调用逻辑同步,减少前后端协同成本。
整体上,AFast 依靠 编译期代码生成 + 运行期路由与验证 + 可选协议模块构建了一个简洁又高效的 Rust 应用开发框架。