Mojolicious
Тип | програмний каркас |
---|---|
Автор | Sebastian Riedel |
Перший випуск | 24 вересня 2008[1] |
Стабільний випуск | 3.0 (26 червня 2012 ) |
Операційна система | кросплатформова програма |
Мова програмування | Perl |
Ліцензія | PAL |
Репозиторій | github.com/mojolicious/mojo |
Вебсайт | mojolicio.us |
Mojolicious — програмний каркас, призначений для створення вебзастосунків на мові Perl з використанням парадигми модель-вид-контролер (Model-View-Controller, MVC). Проєкт розвивається автором популярного фреймворку Catalyst і позиціонується як спроба перекладу на новий рівень засобів веброзробки для мови Perl. З одного боку Mojolicious досить простий в освоєнні (для нехитрих проєктів доступний спрощений варіант Mojolicious::Lite), а з іншого — побудований на піку сучасних технологій, наприклад, реалізує можливість організації повноцінного двунаправленного обміну даними з сервером через WebSocket, забезпечує тіснішу інтеграцію з JavaScript, підтримує виконання вебзастосунків в offline-режимі, AJAX, асинхронний ввід/вивід, RESTful-процедури.
Особливості Mojolicious:
- Підтримка з коробки: плагінів, шаблонів з можливістю вставки perl-операторів, підписаних cookies, I18n, повна підтримка unicode;
- Вбудовані механізми управління сесіями;
- Доступний окремий фреймворк для тестування вебзастосунків;
- Чистий, легко пристосовуваний і об'єктно-орієнтований API;
- Пакет є самодостатнім і не потребує для своєї роботи жодних залежностей, крім Perl 5.10.1 (рекомендується Perl 5.12+, крім того деякі опціональні функції можуть зажадати установки додаткових модулів зі CPAN);
- Вбудована реалізація клієнта і сервера для HTTP 1.1 і WebSocket, з підтримкою TLS, Bonjour, IDNA, Comet (тривалий пулинг), chunking і multipart;
- Кілька варіантів вбудованого вебсервера: для тестування, для промислового використання для швидкого розгортання. Сервер підтримує організацію асинхронного вводу/виводу, epoll, kqueue і UNIX domain sockets. У найпростішому випадку для розгортання вебпроєкту на базі Mojolicious досить наявності інтерпретатора Perl. При цьому фреймворк є багатоплатформовим і підтримує не тільки Unix-подібні ОС, але і Windows. Для забезпечення роботи модулів обробки циклу подій (Event Loop) EV і AnyEvent задіяна високопродуктивна бібліотека libev;
- Автоматичне визначення доступності режимів CGI, FastCGI і PSGI;
- Вбудований парсер JSON і XML/HTML5 з підтримкою CSS3 селекторів.
- ↑ Mojolicious change log. Архів оригіналу за 10 червня 2013. Процитовано 2 липня 2012.