aeria-org/aeria

GitHub: aeria-org/aeria

Aeria 是一个基于 TypeScript 的 Web 框架,通过自定义 DSL 和轻量级 MongoDB 抽象层,以类型安全的方式简化 CRUD 应用的开发。

Stars: 478 | Forks: 5

![横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9c6d20e5f9213622.png) [![npm](https://img.shields.io/npm/v/aeria.svg)](https://npmjs.com/package/aeria) ![https://github.com/aeria-org/aeria/actions/workflows/ci.yaml](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/35ecfc7307213623.svg) [文档](https://aeria-org.github.io/docs/aeria/) | [如何贡献](.github/CONTRIBUTING.md) Aeria 是一个旨在通过类型安全、对开发者友好的体验来简化基于 CRUD 应用程序的框架。它包含一个轻量级的 **MongoDB** 抽象层和一个用于模型定义的 DSL,支持嵌套对象、数组、引用、上传字段等,使其成为具有复杂数据结构和关系逻辑的应用程序的理想选择。此外,还提供了一个带有极简绑定的 HTTP 路由 API,用于构建业务逻辑。 创建该项目是为了提供一种比 Express/Mongoose 等替代方案更具凝聚力且更直接的方法,以使用 MongoDB 创建以数据为中心的应用程序。 ### 快速入门 ### 功能特性 - 身份验证 - 文件管理 - 安全性(速率限制、实体所有权、RBAC 等) - 类似 tRPC 的 1:1 类型化 SDK - 即用型、可通过 [Vue](https://github.com/vuejs/core) 扩展的仪表板 ### 演示 ![演示](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8e4fc0a523213628.gif) ### 常见问题 #### Aeria 是一种编程语言吗? 人们在接触类似 Aeria 的事物时常有的一个疑问是:“我是不是要学习一整套新语言才能使用这个东西?”。 Aeria 的学习曲线非常平缓,因为它不是一个完全成熟的编程语言。它只有两个主要概念:**集合**(collections)和**契约**(contracts)。半小时甚至更短的时间内就可以掌握它的全部。 你可能很容易就能猜出下面这段代码的作用: ``` collection Person { icon "person" properties { name str job enum @values([ "programmer", "doctor", "policeman", ]) age int @minimum(1) @maximum(120) profile_picture File @accept(["image/*"]) } functions { get getAll insert remove upload } } ``` 或者这一段: ``` contract GetPersonBySlug { payload { properties { slug str } } response | Error { properties { httpStatus int code str } } | Result Person } ``` #### 为什么我应该考虑使用它? 当你需要快速构建 MVP 原型,随后再将其扩展为更健壮的项目时,Aeria 会带来很多好处。最明显的是,得益于该框架提供的 DSL 和内置功能,与传统方法相比,实现某个功能所需的代码量(以及因此耗费的时间)被大幅减少。 除此之外,它还提供了一个即用型可扩展的仪表板和 1:1 类型化的 SDK。在[处理引用时,它也比 Mongoose 和 Prisma 快得多](https://github.com/aeria-org/benchmark)。 总结一下:如果你选择 MongoDB 作为数据库,并且希望快速构建一个项目,同时注重类型安全,Aeria 就是你的正确选择。 ### 社区 联系我们以了解更多关于 Aeria 的信息并了解即将推出的功能。 [![Aeria 服务器](https://img.shields.io/discord/1218448912185163816.svg?label=Discord&logo=Discord&colorB=7289da&style=for-the-badge)](https://aeria.is-a.dev/discord)
标签:Android, API开发, CRUD, DSL, HTTP路由, MITM代理, MongoDB, Mongoose替代, NPM包, OSV-Scalibr, RBAC, SOC Prime, tRPC, TypeScript, Vue, Web开发框架, 后端框架, 安全插件, 开发工具, 数据结构, 文件管理, 文件系统扫描, 类型安全, 自动化攻击, 领域特定语言