这个项目能做什么

Runique 是一个 Rust Web 框架,旨在将 Django 的生产力带入 Rust 应用,同时保持类型安全和性能。它基于 Axum、SeaORM 和 Tera 构建,并通过声明式宏和集成约定来减少样板代码。主 crate runique 是框架核心,而仓库还包括一个用于验证框架的演示应用,以及英法双语文档。 框架的核心是 model! 宏,它允许一次声明模型并生成相应的 SeaORM 实体和 SQL 迁移。将模型与 #[form] 属性配对会产生一个匹配的类型安全表单,该表单在服务器端进行验证。在 admin! 宏中注册资源会生成一个带有列表视图、搜索、过滤器和权限的 CRUD 管理面板。路由通过 urlpatterns! 宏处理,该宏生成一个标准的 Axum Router,而模板则使用带有自动转义的 Tera。 Runique 包含多种默认安全措施,例如恒定时间的 CSRF 令牌比较、每响应的内容安全策略 nonce、计时安全的登录处理、Argon2 密码哈希、数据库支持的会话、哈希的单次使用密码重置令牌,以及使用 ammonia 进行的输出清理。它还提供了一个 CLI,用于执行常见任务,包括创建新项目、生成管理代码、创建超级用户、制作迁移,以及应用或回滚迁移。管理面板被描述为 beta 版本,权限目前主要在资源级别,并且生成的管理代码在重新生成时会被覆盖。 该项目支持多种数据库后端,包括 SQLite、PostgreSQL、MySQL 和 MariaDB,默认情况下所有数据库都已启用。它报告了一个大型的测试套件,并为框架 crate 提供了覆盖率指标。文档涵盖了安装、架构、配置、路由、表单、模型、模板、ORM 使用、中间件、闪存消息、示例、管理、会话和环境变量。该项目采用 MIT 许可证。