mqttkit 的定位:不是 broker,而是应用层框架
mqttkit 把 MQTT broker 之上的业务组织方式抽出来,让 topic 路由、中间件、校验、RPC 和文档生成变得更像应用开发。
MQTT 的核心协议和 broker 已经很成熟,很多项目真正麻烦的地方不在于重新实现 CONNECT、SUBSCRIBE 或 PUBLISH,而在于业务层怎么组织。
mqttkit 的定位就是应用层框架。broker 继续负责协议、QoS、retain、session、WebSocket 等底层能力;框架层负责把业务逻辑组织成更稳定的结构。
它借鉴了 Elysia 这类 TypeScript Web 框架的开发体验:
use()组合 broker adapter、middleware 和 router。router().topic()声明 topic route。- topic 参数、payload schema 和服务注入都尽量保留类型推导。
- MQTT 5 RPC、shared subscription、timeout、concurrency、metrics 和 error phase 都作为应用层能力暴露。
- 通过 AsyncAPI 生成文档,让 MQTT 服务也能有可浏览、可同步的接口描述。
这类抽象的价值不在于让 demo 更短,而在于让项目变大以后仍然可维护。认证、审计、校验、错误处理、指标和文档如果散落在 broker callback 里,后续演进会很快变得混乱。
我更希望 mqttkit 成为 MQTT 服务的应用骨架:底层仍然尊重 broker,业务层则用清晰的 TypeScript API 组织起来。