3 points par GN⁺ 2024-10-23 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2024-10-23
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

    • Estime que, dans Rust, les frameworks web peuvent malgré tout rester utiles
  • 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

    • Recommande vivement une couche de service et suggère de l’implémenter sous forme d’objets de commande avec des gems comme Interactor
  • S’attend à ce qu’un framework REST puisse générer automatiquement une définition Swagger

    • Se demande pourquoi avoir développé ses propres composants au lieu d’utiliser un ORM ou un moteur de templates existant
  • 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

    • Mentionne qu’il est important d’explorer de nouvelles idées
  • S’intéresse à une migration de Python vers Rust

    • Suggère que, à grande échelle, cela devrait être géré avec un reverse proxy
  • 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é

    • Estime que ce nouveau framework correspond parfaitement au critère « batteries incluses, mais sans être trop prescriptif »