Как известно, в великом множестве веб-фрейморков, существующих в экосистеме Python, очень легко заблудиться. С одной стороны, большой выбор - это хорошо, но с другой - это так же и бремя, так как приходится тратить усилия на поиски лучшего или хотя бы как можно более подходящего для конкретно ваших условий и задач, а потом и на сравнение и выбор среди найденного. Кто-то выбирает Django, кто-то FastApi, Flask, Tornado, Bottle... да мало ли их? Все мы очень любим то, что на слуху и то, к чему уже привыкли. Привычка - вторая натура. Однако, среди всего этого многообразия есть поистине недооценённые вещи, и с одной из них я хочу вас познакомить.Sanic - это асинхронный и очень быстрый фрейморк и веб-сервер для построения веб-приложений на основе микросервисной архитектуры. Его создателем является израильский программист Адам Хопкинс, в 2018 году основавший данный проект. С тех пор Sanic постоянно и неустанно развивается. В комьюнити проекта, которое в основном обитает в официальном канале в дискорде, существуют требования к кодстайлу, а также установлена ежеквартальная регулярность релизов, что не может не радовать. На момент написания статьи вышел очередной апдейт версии Sanic - 22.6.0. Также стоит упомянуть, что в начале текущего 2022 года издательством O'Reilly выпущена книга А.Хопкинса "Python Web Development with Sanic". ... хорошая девочка Лида.Да чем же она хороша? © Я.Смеляков Sanic - это ASGI-сервис, со всеми вытекающими отсюда прелестями асинхронной разработки. Для развёртывания в продакшене прекрасно подходит всем известный Uvicorn.  Из коробки Sanic предоставляет возможность писать код как в синхронной, так и в асинхронной парадигме. Для эффективной разработки можно использовать любую версию Python, начиная с 3.7 (если нужна поддержка 3.6, то можно использовать версию 20.12LTS).  Для пользователей Mac и Linux доступны uvloop и ujson. Всё из той же коробки прекрасное и необходимое дополнение - собственный универсальный тестовый клиент для использования с pytest. Автодокументация Redoc и Swagger в форматe OpenAPI3, 4 варианта событий для listeners, middleware для стадий запроса и ответа, инъекции зависимостей, blueprints, расширяемость - что ещё нужно современному программисту? Ах, да, бонус: простой и понятный синтаксис и полностью типизированные исходники. Ну не прелесть?Ближе к делу: установка и первое минимальное приложение.Стандартно делаем pip install sanic Знакомо, не правда ли? По-моему, когда-то где-то все мы это уже видели... Но плохо ли это? По-моему, очень удобно, синтаксис фреймворка не нужно заучивать с нуля. К слову о том, что Sanic - это не только фрейморк, но и веб-сервер: запустить данный код из консоли очень просто: sanic hello.app (или же по старинке python3 hello.py)Затем можно открыть браузер и перейти на http://127.0.0.1:8000/ или вызывать из консоли curl localhost:8000 -i и получить HTTP/1.1 200 OKConnection: keep-aliveKeep-Alive: 5Content-Length: 17Content-Type: application/json {"hello":"world"} Открыв в браузере страницу http://127.0.0.1:8000/docs мы автоматически попадаем на страницу с документацией Redoc: Swagger же ждёт нас по адресу http://127.0.0.1:8000/docs/swagger : И это мы ещё ничего толком не сделали. А главное, всё это можно настроить как нам хочется. Прекрасно? Прекрасно! Но конечно же это синтетический пример, который не позволяет раскрыть всю прелесть Sanic. В следующих частях шаг за шагом мы посмотрим на его возможности.P.S. Любителям бенчмарков предлагается перепроверить эти цифры.