Rouille-это библиотека Micro-Web-Framework. Он создает гнездо прослушивания и анализы входящих HTTP -запросов от клиентов, а затем дает вам руку для обработки запроса.
Rouille был разработан, чтобы быть интуитивно понятным для использования, если вы знаете ржавчину. Вопреки экспресс-подобным рамкам, он не использует средние войны. Вместо этого все обрабатывается линейным образом.
Концепции, тесно связанные с веб -сайтами (например, файлы cookie, cgi, ввод формы и т. Д.), Прямо поддерживаются Rouille. Более общие концепции (например, обработка базы данных или шаблон) не обрабатываются непосредственно, поскольку они считаются ортогональными для микро -веб -структуры. Однако дизайн Rouille позволяет легко использовать в сочетании с любой сторонней библиотекой без необходимости какого-либо кода клея.
Если у вас есть общие знания о том, как работает HTTP, документация и хорошо документированные примеры-это хорошие ресурсы, чтобы вы начали.
Лицензирован под одним из
Если вы явно не заявляете иное, какой -либо вклад, преднамеренно предназначенный для включения в работу вами, должен быть двойным лицензированным, как указано выше, без каких -либо дополнительных условий или условий.
Асинхронный ввод -вывод, зеленые нити, коратики и т. Д. В ржавчине все еще очень незрелые.
Библиотека Rouille просто игнорирует эту оптимизацию и фокусируется на предоставлении простого в использовании синхронного API вместо этого, где каждый запрос обрабатывается в своем собственном выделенном потоке.
Даже если бы сам Руил был асинхронным, вам понадобятся асинхронные клиенты базы данных и асинхронная загрузка файлов, чтобы воспользоваться им. В настоящее время в экосистеме ржавчины нет таких библиотек.
После того, как асинхровый ввод -вывод будет выяснен, Rouille будет (надеюсь, прозрачно) обновлен, чтобы принять его во внимание.
На старой машине автора Linux некоторые основные сравнительные знаки с wrk -t 4 -c 4 показаны следующие результаты:
http.createServer ) дает ~ 14 тыс. Запросы/сек.Несмотря на то, что он не самый быстрый, Rouille имеет разумные выступления. Среди всех этих примеров Rouille - единственный, кто использует синхронный ввод -вывод.
Должно быть тривиально интегрировать базу данных или шаблоны в ваш веб -сервер, написанный с помощью Rouille. Более того, плагины нуждаются в техническом обслуживании и имеют тенденцию создавать адский ад. По мнению автора, как правило, лучше не использовать плагины.
Вместо того, чтобы делать это: (псевдокод)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;В Руиле вы просто выполняете каждый запрос полностью вручную:
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;