À propos du projet
Runique est un framework Web Rust conçu pour apporter la productivité de style Django aux applications Rust tout en préservant la sécurité et les performances des types. Il est construit sur Axum, SeaORM et Tera, et se concentre sur la réduction des boilerplate grâce à des macros déclaratives et des conventions intégrées. La principale crate, runique, est le framework de base, tandis que le dépôt comprend également une application de démonstration utilisée pour valider le framework et une documentation bilingue en anglais et en français.
Le framework est centré sur une macro model! qui déclare un modèle une fois et génère l'entité SeaORM correspondante et la migration SQL. Associer un modèle avec un attribut #[form] produit un formulaire correspondant sécurisé en termes de type qui est validé côté serveur. Enregistrer la ressource dans une macro admin! génère un panneau d'administration CRUD avec des vues de liste, une recherche, des filtres et des autorisations. La routage est géré via une macro urlpatterns! qui produit un routeur Axum régulier, tandis que les modèles utilisent Tera avec échappement automatique.
Runique comprend plusieurs mesures de sécurité par défaut, telles que la comparaison de jetons CSRF à temps constant, des politiques de sécurité de contenu par réponse nonces, une gestion de connexion sécurisée en temps, un hachage de mot de passe Argon2, des sessions basées sur une base de données, des jetons de réinitialisation de mot de passe sécurisés et une sortie avec désinfection via ammonia. Il fournit également un CLI pour les tâches courantes, notamment la création d'un nouveau projet, la génération de code d'administration, la création d'un superutilisateur, la réalisation de migrations et l'application ou l'annulation de migrations. Le panneau d'administration est décrit comme bêta, avec des autorisations principalement au niveau de la ressource et le code d'administration généré écrasé lors de la régénération.
Le projet prend en charge plusieurs backends de base de données, notamment SQLite, PostgreSQL, MySQL et MariaDB, avec toutes les bases de données activées par défaut. Il rapporte une grande suite de tests et fournit des mesures de couverture pour la crate de framework. La documentation couvre l'installation, l'architecture, la configuration, la routage, les formulaires, les modèles, les modèles, l'utilisation de l'ORM, le middleware, les messages flash, les exemples, l'administration, les sessions et les variables d'environnement. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.