প্রকল্প সম্পর্কে
Runique is a Rust web framework designed to bring Django-style productivity to Rust applications while preserving type safety and performance. It is built on Axum, SeaORM, and Tera, and focuses on reducing boilerplate through declarative macros and integrated conventions. The main crate, runique, is the core framework, while the repository also includes a demo application used to validate the framework and bilingual documentation in English and French.
The framework centers on a model! macro that declares a model once and generates the corresponding SeaORM entity and SQL migration. Pairing a model with a #[form] attribute produces a matching type-safe form that is validated server-side. Registering the resource in an admin! macro generates a CRUD admin panel with list views, search, filters, and permissions. Routing is handled through an urlpatterns! macro that produces a regular Axum Router, while templates use Tera with auto-escaping.
Runique includes several default security measures, such as constant-time CSRF token comparison, per-response Content Security Policy nonces, timing-safe login handling, Argon2 password hashing, database-backed sessions, hashed single-use password reset tokens, and output sanitization with ammonia. It also provides a CLI for common tasks, including creating a new project, generating admin code, creating a superuser, making migrations, and applying or rolling back migrations. The admin panel is described as beta, with permissions currently mainly at the resource level and generated admin code overwritten on regeneration.
The project supports multiple database backends, including SQLite, PostgreSQL, MySQL, and MariaDB, with all-databases enabled by default. It reports a large test suite and provides coverage metrics for the framework crate. Documentation covers installation, architecture, configuration, routing, forms, models, templates, ORM usage, middleware, flash messages, examples, admin, sessions, and environment variables. The project is licensed under MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.