Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Веб-программирование / Основы Cro
Что такое Cro
Cro — это набор библиотек для создания сервисов, то
есть программ, которые общаются с другими программами по сети. Более
всего он известен по HTTP, но умеет и WebSocket, и всё это построено на
реактивных инструментах из этой же части: supply, react и
whenever. Обработчик запроса в Cro по сути и есть реакция
на поток входящих запросов. Домашний сайт проекта с полной документацией
и примерами — cro.services.
Что Cro даёт вам сверх «сырых» сокетов:
- Маршрутизация — сопоставляет пути URL с кодом, который их обрабатывает, вместо разбора запросов вручную.
- Объекты запроса и ответа — позволяют читать параметры запроса и отправлять JSON, не собирая текст по кусочкам.
- Конкурентность — множество клиентов обслуживается одновременно, на пуле потоков, автоматически.
- Композируемость — сервисы собираются из небольших частей, которые можно тестировать и сочетать.
Устанавливается он из экосистемы:
zef install croCro — большой фреймворк со множеством зависимостей, поэтому установка
занимает несколько минут. Если она останавливается на идентификаторе
зависимости, который не удаётся найти, — с ошибкой, упоминающей что-то
вроде
JSON::Fast:ver<0.19+>:auth<cpan:TIMOTIMO>, —
значит, ваш zef слишком стар и не знает архива, который
обслуживает такие исторические идентификаторы модулей. Обновите сам
установщик командой zef install zef, откройте новый
терминал и запустите установку Cro заново.
Cro сводит воедино весь курс: объектно-ориентированное проектирование для его типов, функциональный стиль в обработчиках и реактивную модель для потоков запросов. Следующая тема показывает минимально возможный сервис на Cro, чтобы вы увидели, как эти идеи сходятся в настоящем веб-коде.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Основы Cro | Тест — Cro →
💪 Или перейдите сразу к
упражнениям этого раздела.