Some progress updates.
Initially I thought about fully functional event loop, but it seems it is more valuable to use it as library, and make your our specific loops or transports. It is very easy to make new transports, reactive nature of asyncio helps a lot. Simple protocol contains only three major method connection_made, connection_lost, data_received. So i can do any type of parsing and data management and then send to data_received already structured data.
Right now I am working on python2.7+gevent app, and I fully reuse a async-tokio implementation. It uses thrift protocol, I am moving serialization/deserialization process out of python into separate thread. Relatively easy task, especially with rust memory guaranties.
Async-tokio is in state that it can run aiohttp without problems. Performance is comparable to uvloop. I also tried to run tokio loop in separate thread from aiohttp handler, works fine but performance is similar, seems at this point performance largely limited by python itself. But it should be relatively easy to write RequestHandler and payload stream in rust and then maybe running io in separate thread would make more sense
Other updates. I added awaitable support to rust-cpython, so it is possible to create awaitable objects in rust. Also added buffer protocol support, so you don't need to copy rust memory to bytes object to expose it to python, it is possible directly access memory from python
I separated async-tokio into two repos
async-tokio is rust library
And aiohttp-tokio is concrete python extension