Rouille ist eine Bibliothek für Mikro-Web-Framework. Es erstellt eine Hörsteck- und Parse -eingehende HTTP -Anfragen von Kunden und gibt Ihnen dann die Hand, um die Anfrage zu bearbeiten.
Rouille wurde so konzipiert, dass sie intuitiv zu verwenden war, wenn Sie Rost kennen. Im Gegensatz zu ausdrücklichen Rahmenbedingungen verwendet es keine Middlewares. Stattdessen wird alles linear behandelt.
Konzepte, die eng mit Websites verbunden sind (wie Cookies, CGI, Formulareingabe usw.), werden direkt von Rouille unterstützt. Allgemeinere Konzepte (wie Datenbankbehandlungen oder Vorlagen) werden nicht direkt behandelt, da sie als orthogonal für das Micro -Web -Framework angesehen werden. Das Design von Rouille macht es jedoch einfach, in Verbindung mit einer Bibliothek von Drittanbietern zu verwenden, ohne dass ein Klebercode erforderlich ist.
Wenn Sie über allgemeine Kenntnisse darüber verfügen, wie HTTP funktioniert, sind die Dokumentation und die gut dokumentierten Beispiele gute Ressourcen, um Ihnen den Einstieg zu erleichtern.
Lizenziert unter einem von
Sofern Sie nicht ausdrücklich etwas anderes angeben, ist ein Beitrag, der absichtlich zur Aufnahme in die Arbeit durch Sie eingereicht wird, ohne zusätzliche Bedingungen doppelt lizenziert wie oben.
Async I/O, grüne Fäden, Coroutinen usw. in Rost sind immer noch sehr unreif.
Die Rouille-Bibliothek ignoriert diese Optimierung nur und konzentriert sich stattdessen auf eine benutzerfreundliche synchrone API, bei der jede Anfrage in ihrem eigenen speziellen Thread behandelt wird.
Selbst wenn Rouille selbst asynchron wäre, benötigen Sie asynchrone Datenbankclients und asynchrone Dateien Laden, um dies zu nutzen. Derzeit gibt es im Rost -Ökosystem keine solchen Bibliotheken.
Sobald die asynchrische E/O herausgefunden wurde, wird Rouille (hoffentlich transparent) aktualisiert, um dies zu berücksichtigen.
Auf der alten Linux -Maschine des Autors zeigt einige grundlegende Benchmarking mit wrk -t 4 -c 4 die folgenden Ergebnisse:
http.createServer ) ergibt ~ 14K Anfragen/Sek.Rouille hat zwar nicht die schnellste, aber angemessene Leistungen. Unter all diesen Beispielen ist Rouille der einzige, der synchrones E/A verwendet.
Es sollte trivial sein, eine Datenbank oder Vorlagen in Ihren Webserver mit Rouille zu integrieren. Darüber hinaus erfordern Plugins Wartung und neigen dazu, eine Abhängigkeitshölle zu erstellen. Nach Ansicht des Autors ist es im Allgemeinen besser, Plugins nicht zu verwenden.
Anstatt dies zu tun: (Pseudo-Code)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;In Rouille bearbeiten Sie einfach jede Anfrage vollständig manuell:
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;