Sources of IGCL, the Internet Group Communication Library, and of several example algorithms, implemented as part of the Master's Thesis "Group Communication for Large Scale Computing Projects".  IGCL was built for executing distributed algorithms in remote nodes, traversing NATs and firewalls. IGCL clients with peer-to-peer capabilities inside configurable groups of nodes and allows them to communicate during execution. Exchange of data is done via basic send\slash receive methods, n-buffering, and several common communication patterns. Although targetting Internet-scale communication, IGCL can also be used in local environments.