Rouille est une bibliothèque micro-web-framework. Il crée une prise d'écoute et analyse les demandes HTTP entrantes des clients, puis vous donne la main pour traiter la demande.
Rouille a été conçue pour être intuitive à utiliser si vous connaissez la rouille. Contrairement aux cadres de type express, il n'utilise pas les wares intermédiaires. Au lieu de cela, tout est traité de manière linéaire.
Les concepts étroitement liés aux sites Web (comme les cookies, CGI, l'entrée de formulaire, etc.) sont directement pris en charge par Rouille. Des concepts plus généraux (comme la gestion ou les modèles de base de données) ne sont pas directement gérés, car ils sont considérés comme orthogonaux au micro-framework Web. Cependant, la conception de Rouille facilite l'utilisation en conjonction avec n'importe quelle bibliothèque tierce sans avoir besoin d'un code de colle.
Si vous avez des connaissances générales sur le fonctionnement de HTTP, la documentation et les exemples bien documentés sont de bonnes ressources pour vous aider à démarrer.
Sous licence sous l'un ou l'autre des
À moins que vous ne soyez explicitement indiqué autrement, toute contribution intentionnellement soumise pour inclusion dans les travaux par vous sera double licence comme ci-dessus, sans aucune condition supplémentaire ou conditions.
Les E / S asynchrones, les fils verts, les coroutines, etc. en rouille sont encore très immatures.
La bibliothèque Rouille ignore simplement cette optimisation et se concentre sur la fourniture d'une API synchrone facile à utiliser à la place, où chaque demande est traitée dans son propre fil dédié.
Même si Rouille elle-même était asynchrone, vous auriez besoin de clients de base de données asynchrones et de chargement de fichiers asynchrones afin d'en profiter. Il n'y a actuellement pas de telles bibliothèques dans l'écosystème de la rouille.
Une fois que les E / S asynchronisées ont été décrites, Rouille sera (espérons-le de manière transparente) mise à jour pour la prendre en compte.
Sur l'ancienne machine Linux de l'auteur, quelques marquages de base avec wrk -t 4 -c 4 montrent les résultats suivants:
http.createServer ) donne ~ 14k demandes / sec.Bien que ce ne soit pas le plus rapide, Rouille a des performances raisonnables . Parmi tous ces exemples, Rouille est la seule à utiliser des E / S synchrones.
Il devrait être trivial d'intégrer une base de données ou des modèles à votre serveur Web écrit avec Rouille. De plus, les plugins ont besoin de maintenance et ont tendance à créer un enfer de dépendance. De l'avis de l'auteur, il est généralement préférable de ne pas utiliser de plugins.
Au lieu de faire ceci: (pseudo-code)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;À Rouille, vous traitez simplement chaque demande entièrement manuellement:
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;