- Rwf est un framework complet pour créer des applications web en Rust
- Il est conçu autour du modèle MVC classique (modèle-vue-contrôleur) et fournit par défaut tout le nécessaire pour créer facilement des applications web rapides et sûres
Aperçu des fonctionnalités
- Serveur HTTP
- ORM convivial pour écrire facilement des requêtes PostgreSQL
- Templates dynamiques
- Authentification et sessions utilisateur intégrées
- Middleware
- Tâches en arrière-plan et tâches planifiées
- Migrations de base de données
- Framework REST intégré avec prise en charge de la sérialisation JSON
- Prise en charge de WebSockets
- Hébergement de fichiers statiques
- Intégration étroite avec Hotwired Turbo pour créer des SPA pilotées par le backend
- Configuration par environnement
- Journalisation et métriques
- CLI
- Serveur WSGI pour migrer depuis des applications Django/Flask
Démarrage rapide
- Pour ajouter Rwf à votre stack, créez une application binaire Rust et ajoutez
rwf et tokio aux dépendances :
cargo add rwf
cargo add tokio@1 --features full
- Créer une application est aussi simple que ceci :
use rwf::prelude::*;
use rwf::http::Server;
#[derive(Default)]
struct IndexController;
#[async_trait]
impl Controller for IndexController {
async fn handle(&self, request: &Request) -> Result {
Ok(Response::new().html("Hey Rwf!"))
}
}
#[tokio::main]
async fn main() {
Server::new(vec![
route!("/" => IndexController),
])
.launch("0.0.0.0:8000")
.await
.unwrap();
}
État
- Rwf en est à un stade de développement précoce et n'est pas prêt pour la production. De nombreuses fonctionnalités et une partie de la documentation restent incomplètes.
Résumé de GN⁺
- Rwf est un framework puissant pour créer des applications web en Rust, utilisant le modèle MVC et proposant de nombreuses fonctionnalités pour développer facilement des applications web rapides et sûres.
- Comme il en est encore à ses débuts, son utilisation en environnement de production peut être difficile, mais ses fonctionnalités et sa documentation devraient continuer à être enrichies.
- Il peut être utile aux développeurs souhaitant créer des applications web en Rust, y compris à ceux qui envisagent une migration depuis des frameworks existants comme Django ou Flask.
- Parmi les autres frameworks web Rust offrant des fonctionnalités similaires, on peut citer Actix et Rocket.
1 commentaires
Avis Hacker News
Souligne que l’utilisation de la bibliothèque standard de Go permet de réduire la dépendance à des frameworks web complexes, d’améliorer la sécurité et de faciliter la maintenance
Retient de son expérience avec les frameworks web MVC qu’il ne faut pas placer la logique métier dans la couche modèle
S’attend à ce qu’un framework REST puisse générer automatiquement une définition Swagger
Considère que le choix du nom d’un nouveau framework est un bon moyen d’apparaître en tête des résultats de recherche
S’intéresse à une migration de Python vers Rust
Avertit qu’intégrer un ORM comme fonctionnalité native d’un framework web peut sembler pertinent au départ, mais qu’avec le temps il peut devenir un projet indépendant ou donner envie d’utiliser un autre ORM
Mentionne qu’il faudrait davantage de frameworks à forte opinion comme Rails et Django
Exprime son enthousiasme face au lancement d’un framework qui comble un vide important dans l’écosystème Rust
Explique que son expérience de développement avec Django lui a fait comprendre la valeur du MVC, et qu’il compte examiner ce nouveau framework
Après avoir évalué divers frameworks pour le développement backend en Rust, juge qu’Axum est le plus adapté