| 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. |