libnatpmp is a portable client library implementing the protocol NAT-PMP. It is based on non blocking sockets and all call of the API are asynchronous.