On behalf of aiohttp development team, I proud to announce aiohttp 0.13.0
release.
aiohttp library is good known as asyncio-compatible tool for performing
HTTP requests. It supports http/https, cookies, keep-alives, file uploading
and many others.
Also aiohttp has had low level HTTP server and websockets (both server and
client).
The target of our work for last months was aiohttp.web -- (relative)
high-level HTTP server suitable for average programmer.
Please take a look on simple "hello world" example:
import asyncio
from aiohttp import web
@asyncio.coroutine
def handle(request):
name = request.match_info.get('name', "Anonymous")
text = "Hello, " + name
return web.Response(text=text)
@asyncio.coroutine
def init(loop):
app = web.Application(loop=loop)
app.router.add_route('GET', '/{name}', handle)
srv = yield from loop.create_server(app.make_handler(),
'127.0.0.1', 8080)
print("Server started at http://127.0.0.1:8080")
return srv
loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
aiohttp.web has many features also: named routes and reverse route lookup,
file uploading, static file handling and, last but not least, middlewares.
Please look on documentation for
details: http://aiohttp.readthedocs.org/en/v0.13.0/
aiohttp.web still has no websockets itself, we will add it very soon.
Also we works on template engine support
in https://github.com/aio-libs/aiohttp_jinja2 (not released yet, API maybe
will changed) -- but I guess to make first aiohttp_jinja2 release shortly.
So aiohttp is the best asyncio web server for now, and we are working hard
on making it better.