1. What? libcage is NATs free DHT library which implements Kademlia. This enables decentralized key-value store and peer-to-peer communications via NATs. Even if both peers are under NATs, peers can communicate with each other. 2. How to compile libcage depends on: libevent (http://www.monkey.org/~provos/libevent/) boost (http://www.boost.org/) and uses C++ compiler and OMake (http://omake.metaprl.org/index.html). So, please install above libraries and applications before compiling. You can then compile as: $ cd libcage $ omake libcage uses libevent as a default event library. If you'd like to use libev instead of libevent, please use the EV option when compiling. $ omake EV=TRUE The DEBUG option enables debugging which passes -O0 and -g flags to the compiler. $ omake DEBUG=TRUE If you want to debug RDP, please add a -DDEBUG_RDP flag to the CXXFLAGS option. When enabled DEBUG_RDP, libcage outputs RDP packets to the standard error. $ omake CXXFLAGS=-DDEBUG_RDP 3. Install If you want to install to /usr/local, please type: $ omake install If you want to install to any other places, plese use PREFIX option. For example, to install to /opt/local, please type: $ omake install PREFIX=/opt/local 4. Uninstall If you have installed to /user/local, please type: $ omake uninstall If you have installed to any other places, plese use PREFIX option. $ omake uninstall PREFIX=/opt/local You can uninstall libcage as: # rm -rf /usr/local/include/libcage # rm /usr/local/lib/libcage*