Для работы с сетью, да и, впрочем, практически для любых i/o-ориентированных задач использую twisted.
Соответственно, к написанному на twisted функционалу нужен интерфейс. Нередко - веб-интерфейс, и не просто REST или, там, RPC-служба, а полноценный, так сказать, человеческий интерфейс с формочками, рюшечками, и т.п.
Надо сказать, что twisted.web, сам по себе - просто web-сервер, а не web-фреймворк, - ничем, кроме url-роутинга, он жизнь не упрощает, то есть такие вещи, как обработку форм, шаблонизацию и т.п. нужно прикручивать сторонние. Кстати, twisted.web умеет быть WSGI-контейнером, а значит из-под него можно запустить фреймворк типа django или pylons. Но только вот эти фреймворки ничего на знают про Deferred, коллбэки и прочая, то есть к асинхронному API из них напрямую обращаться нельзя.
В общем, с тем или иным успехом были испробованы следующие подходы:
- сборная солянка из компонентов: для форм WTForms (кстати, очень удобная, как мне кажется, библиотека), для шаблонов Jinja2, ну и другие мелочи, в том числе и самопальные. Кроме этих библиотек, есть, конечно, и куча других, просто я все достаточно известные/активные перепробовал и остановился именно на этих (из-за фич и удобства использования).
- nevow - фреймворк, специально сделанный под twisted. Насколько мне известно, разработка его остановлена. Документации почти нет.
- использование blockingCallFromThread из django (или любого другого фреймворка), запущенного из-под WSGI-контейнера twisted.web. blockingCallFromThread для треда, из которого он вызван, выглядит, как нормальный синхронный вызов, так что можно обратиться к асинхронному API, подготовить данные и вернуть их в WSGI-тред, а потом продолжать с ними работать внутри django как обычно, то есть рисовать/обрабатывать формы и т.п.
Занимается ли кто-нибудь из присутствующих подобным? Может быть, есть библиотеки, о которых я почему-то не знаю, которые могут упростить такого рода задачу?