2015-06-19 10 views
7

Soweit ich das beurteilen kann, ist derzeit die Referenz für Webserver, die auf asyncio aufgebaut sind. Obwohl es ein beeindruckendes Stück Arbeit ist, entspricht es meinem besonderen (besonderen) Geschmack nicht ganz: Es ist nicht nur ein Webserver, sondern auch ein Framework für Webanwendungen (mit Routing und allem), und die API ist ziemlich klassen- schwer.Lightweight asyncio web server

Ich würde etwas bevorzugen, das ist nur ein HTTP-Server, der eine minimale Schnittstelle (im Grunde eine asynchrone WSGI entspricht). Gibt es so etwas schon?

+0

[asyncio.org] (http://asyncio.org), mit dem Sie in Ihrer Frage tatsächlich verlinkt sind, [aiowsgi] (https://aiowsgi.readthedocs.org/en/latest/), welches scheint, als könnte es die Rechnung passen. – dano

+0

Das habe ich gesehen, aber es ist schwer zu beurteilen, ob es mehr als ein Experiment ist: Es gibt nicht viel Aktivität auf dem GitHub Repo - was nicht unbedingt schlecht ist, aber ein Peer Review würde sicherlich helfen. – AnC

+1

Beachten Sie, dass das Blockieren von WSGI auf einem asynchronen Webserver problematisch sein kann. Wenn die WSGI-Anforderung im selben Thread wie die Async-Schleife ausgeführt wird, blockiert sie die Async-Schleife. Sie haben im Grunde einen WSGi-Server, der nur eine Anfrage gleichzeitig verarbeiten kann. Für einen einzelnen Host/Post wäre es besser, die "Kellnerin" zu betrachten, wenn Sie eine WSGI-Oberfläche wünschen, aber einige der zugrunde liegenden Vorteile auf einem asynchronen Webserver. –

Antwort

4

Nun, Sie können Low-Level-aiohttp.server anstelle von aiohttp.web versuchen.

Es hat keine Routen, Middlewares und andere High-Level-Zeug. Aber Sie haben mit aiohttp Low-Level-Abstraktionen wie Nachricht arbeiten, Nutzlast und Antwort.

+0

Danke - da es scheinbar noch keine Alternativen gibt (noch?), Ist dies wahrscheinlich meine beste Option. – AnC