Rouille es una biblioteca Micro-Web-Framework. Crea un zócalo escuchado y analiza las solicitudes HTTP entrantes de los clientes, luego le brinda la mano para procesar la solicitud.
Rouille fue diseñado para ser intuitivo de usar si conoce el óxido. Al contrario de los marcos expresos, no emplea los artículos intermedios. En cambio, todo se maneja de manera lineal.
Rouille respalda los conceptos estrechamente relacionados con sitios web (como cookies, CGI, entrada de forma, etc.). Los conceptos más generales (como el manejo o la plantilla de la base de datos) no se manejan directamente, ya que se consideran ortogonales al marco web micro. Sin embargo, el diseño de Rouille facilita el uso junto con cualquier biblioteca de terceros sin la necesidad de ningún código de pegamento.
Si tiene conocimiento general sobre cómo funciona HTTP, la documentación y los ejemplos bien documentados son buenos recursos para comenzar.
Con licencia bajo cualquiera de
A menos que declare explícitamente lo contrario, cualquier contribución intencionalmente presentada para su inclusión en el trabajo por usted tendrá licencia dual como se indicó anteriormente, sin ningún término o condiciones adicionales.
ASYNC E/S, hilos verdes, corutinas, etc. en óxido todavía son muy inmaduros.
La Biblioteca Rouille solo ignora esta optimización y se centra en proporcionar una API sincrónica fácil de usar en su lugar, donde cada solicitud se maneja en su propio hilo dedicado.
Incluso si Rouille en sí fuera asíncrono, necesitaría clientes de base de datos asíncronos y carga de archivos asíncronos para aprovecharlo. Actualmente no hay tales bibliotecas en el ecosistema de óxido.
Una vez que se haya resuelto la E/S async, Rouille se actualizará (con suerte) para tenerlo en cuenta.
En la antigua máquina de Linux del autor, algunos benchmarking básico con wrk -t 4 -c 4 muestran los siguientes resultados:
http.createServer ) produce ~ 14k solicitudes/seg.Si bien no es el más rápido, Rouille tiene actuaciones razonables . Entre todos estos ejemplos, Rouille es el único que usa E/S sincrónico.
Debe ser trivial integrar una base de datos o plantillas en su servidor web escrito con Rouille. Además, los complementos necesitan mantenimiento y tienden a crear un infierno de dependencia. En opinión del autor, generalmente es mejor no usar complementos.
En lugar de hacer esto: (Pseudo-código)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;En Rouille simplemente maneja cada solicitud por completo manualmente:
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;