легкий асинхронный веб-сервер

Насколько я могу судить, http://aiohttp.readthedocs.org в настоящее время является эталоном для веб-серверов, построенных на асинхронно. Хотя это впечатляющая работа, она не совсем соответствует моему особому (особому) вкусу: помимо того, что это веб-сервер, это еще и фреймворк для веб-приложений (с маршрутизацией и всем остальным), плюс довольно классный API. тяжелый.

Я бы предпочел что-то, что является просто HTTP-сервером, предоставляющим минимальный интерфейс (в основном асинхронный эквивалент WSGI). Такое уже существует?


person AnC    schedule 19.06.2015    source источник
comment
asyncio.org, на который вы действительно ссылались в своем вопросе, оказывается aiowsgi, что, кажется, может соответствовать всем требованиям.   -  person dano    schedule 19.06.2015
comment
Я видел это, но довольно сложно оценить, является ли это чем-то большим, чем просто экспериментом: в репозитории GitHub не так много активности — что не обязательно плохо, но некоторая экспертная оценка, безусловно, поможет.   -  person AnC    schedule 19.06.2015
comment
Просто имейте в виду, что размещение блокирующего WSGI поверх асинхронного веб-сервера может быть проблематичным. Если запрос WSGI выполняется в том же потоке, что и асинхронный цикл, он блокирует асинхронный цикл. По сути, у вас есть сервер WSGi, который может обрабатывать только один запрос за раз. Для одного хоста/сообщения вам лучше посмотреть на «официантку», если вам нужен интерфейс WSGI, но некоторые из основных преимуществ на асинхронном веб-сервере.   -  person Graham Dumpleton    schedule 20.06.2015
comment
Насколько я могу судить, aiowsgi на самом деле основан на официантке (которая, как я полагаю, использует потоки) - поэтому мое прежнее беспокойство по поводу этого, возможно, было просто экспериментом: это не похоже на чистый асинхронный подход, а скорее наложение асинхронного сверху. иной парадигмы.   -  person AnC    schedule 20.06.2015


Ответы (1)


Ну, вы можете попробовать низкоуровневый aiohttp.server вместо aiohttp.web.

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

person Andrew Svetlov    schedule 22.06.2015
comment
Спасибо - учитывая, что альтернатив пока нет (пока?), это, вероятно, мой лучший вариант. - person AnC; 23.06.2015