- 🖊️ TypeScript: 使用 TypeScript 编写,提供完整的类型定义
- 🚀 轻量级: 体积小,核心容器除
reflect-metadata
外几乎无任何外来依赖包 - 🪜 跨平台: 核心容器在服务端/浏览器均可运行;后端适配包等通过
adapter
也不局限于环境,并且尝试让性能最大化,与前端生态接轨,支持vite dev server
/node.js
/bun(正在适配中)
等运行时 - ✨ 与原生契合: Restful控制器使用原生new Response发送请求,同时
naily
内部也是采用的原生Request对象,与原生完全接轨 - 📦 unplugin-rpc: 吸取cell.js的
@celljs/rpc
之精髓,将其注入unplugin生态,让任何vite
前端项目都可以尝试到绝对类型安全的后端开发! - 🛠 插件化: 支持插件机制,可以自定义扩展功能
- 🚪 极为开放的核心: 不像inversify.js、nest.js等一众ioc框架将容器实现藏得很深,拥有极简的容器设计和极为flexable的API,每个人都可以操纵容器的各个边边角角,让ioc的设计理念和理解成本降低
- ⚙️ 约定大于配置: 参考cell.js的设计理念 + 目前前端生态的情况,尽量减少配置过程,每个包内部都有一套现成的默认配置。需要自定义配置时,遵循
程序内部重写的类
>配置文件naily.config.ts
>默认配置
的优先级,让开发者更专注于业务逻辑
MIT