Currently, the code uses raw sockets that block. This should be wrapped up in an async framework like [zeromq](http://zeromq.org/) or [twisted](https://twistedmatrix.com/trac/) and rewritten to spare CPU.
Currently, the code uses raw sockets that block. This should be wrapped up in an async framework like zeromq or twisted and rewritten to spare CPU.