Fast portable non-blocking network programming with Libevent