Категории

Язык
Проект

6 августа 2017 г. 18:01 (ред. 6 августа 2017 г. 18:06)
Анонс приложения, позволяющего конфигурировать uWSGI из вашего кода на Python.
Хочу сказать несколько слов о проекте, которым занимаюсь в последнее время.

uwsgiconf — пакет, позволяющий вам конфигурировать uWSGI в терминах языка Python.

uWSGI — это целый набор инструментов для ваших веб-приложений. Набор на столько широк и многогранен, что разобраться в его подсистемах и опциях, которых насчитывается более восьми сотен, весьма непросто. Не последнюю роль в этом играет довольно запутанная и неполная документация.

Наверное, поэтому многие используют uWSGI исключительно в качестве сервера приложений для Python (пример из документации Django). В то время как он предоставляет:

  • Кеширование;
  • Логирование;
  • Блокировки;
  • Маршрутизацию;
  • Средства мониторинга;
  • Очередь;
  • HTTP2;
  • Веб-сокеты;
  • Оповещения;
  • «Удешевление»;
  • Планировщик типа cron и таймеры;
  • Механизм анонсирования и подписок;
  • Поддержку Lua, Ruby, PHP, Perl, ASP (Mono), Go (gcc), JVM.
  • Вызов удалённых процедур;
  • и пр.

Чтобы во всём этом было легче ориентироваться, а также повысить степень переносимости uWSGI конфигураций я начал проект uwsgiconf.

Что в нём хорошего:
  • Позволяет описать конфигурации uWSGI в терминах классов и методов Питона;
  • Использует строки документации и описание типов в них. Предполагается, что вы используете среду разработки с возможностью вывода подсказок к классам и методам, а также автодополнением.
  • Содержит некоторые предустановки (presets) с разумными параметрами по умолчанию, чтобы уменьшить количество кода, необходимого для конфигурирования;
  • Поощряет повторное использование конфигураций;
  • Предоставляет интерфейс командной строки, для удобного применения конфигураций.
  • Приятным дополнением является встроенный модуль-имитатор uwsgi, с описанием доступных функций, который можно использовать вместо import uwsgi.

На данный момент uwsgiconf покрывает далеко не все возможности uWSGI, но базовая часть опций уже доступна.
Проект разрабатывается открыто — uwsgiconf, желающие приглашаются к участию в его развитии.

Документация с примерами доступна на английском языке.
На русском, вероятно, расскажу больше при удобном случае.

Копайте глубже.