Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Веб-программирование / Основы Cro

Что такое Cro

Cro — это набор библиотек для создания сервисов, то есть программ, которые общаются с другими программами по сети. Более всего он известен по HTTP, но умеет и WebSocket, и всё это построено на реактивных инструментах из этой же части: supply, react и whenever. Обработчик запроса в Cro по сути и есть реакция на поток входящих запросов. Домашний сайт проекта с полной документацией и примерами — cro.services.

Что Cro даёт вам сверх «сырых» сокетов:

  • Маршрутизация — сопоставляет пути URL с кодом, который их обрабатывает, вместо разбора запросов вручную.
  • Объекты запроса и ответа — позволяют читать параметры запроса и отправлять JSON, не собирая текст по кусочкам.
  • Конкурентность — множество клиентов обслуживается одновременно, на пуле потоков, автоматически.
  • Композируемость — сервисы собираются из небольших частей, которые можно тестировать и сочетать.

Устанавливается он из экосистемы:

zef install cro

Cro — большой фреймворк со множеством зависимостей, поэтому установка занимает несколько минут. Если она останавливается на идентификаторе зависимости, который не удаётся найти, — с ошибкой, упоминающей что-то вроде JSON::Fast:ver<0.19+>:auth<cpan:TIMOTIMO>, — значит, ваш zef слишком стар и не знает архива, который обслуживает такие исторические идентификаторы модулей. Обновите сам установщик командой zef install zef, откройте новый терминал и запустите установку Cro заново.

Cro сводит воедино весь курс: объектно-ориентированное проектирование для его типов, функциональный стиль в обработчиках и реактивную модель для потоков запросов. Следующая тема показывает минимально возможный сервис на Cro, чтобы вы увидели, как эти идеи сходятся в настоящем веб-коде.

Практика

Пройдите 1 тест по содержанию этой темы.

Навигация по курсу

Основы Cro   |   Тест — Cro


💪 Или перейдите сразу к упражнениям этого раздела.