Breep is a c++ bridged peer to peer library. What does that mean? It means that even though the network is constructed as a peer to peer one, there may be no direct connections between two dudes, say A and B, if these connections are impossible (due to poorly configured ports, for example). In that case, Breep will attempt to use another peer C as a bridge between A and B. Breep is also a high-level library. You don't have to care on when peers connect, disconnect, send data, and on how to send your classes. You simply register listeners that get notified when peers come and go, when they send you stuff. You may even use serialization and send your own object directly through the network. Same goes for your listeners: you don't say 'I want to listen for piles of bytes', but instead you say 'I want to listen for fancy::MyClass'. The BREEP_DECLARE_TYPE involved here is used to tell to breep::network that we will listen/send some std::strings. If you forget to do it, you will get a compile-time error.