Cross-platform C++ library for building heterogenous, distributed applications
C++ CMake Other
Latest commit 206860e Feb 21, 2017 @eile eile committed with eile Fix CO_AGGRESSIVE_CACHING bitrot
Failed to load latest commit information.
CMake CMake/common adaptions Apr 14, 2016
co Fix CO_AGGRESSIVE_CACHING bitrot Feb 23, 2017
doc Support sending of large payload for OCommands Jan 6, 2017
tests clang-format Feb 9, 2017
tools Remove C++03 zombies (ScopedMutex) Feb 23, 2017
.clang-format clang-format Feb 9, 2017
.gitattributes Fix tests, install headers needed by Equalizer Jul 30, 2012
.gitexternals Release preparation (#203) Dec 7, 2016
.gitignore Bump externals to fix Servus compilation error Jul 3, 2015
.gitsubprojects Remove C++03 zombies (ScopedMutex) Feb 23, 2017
.travis.yml Release preparation (#203) Dec 7, 2016
CMakeLists.txt Fix CO_AGGRESSIVE_CACHING bitrot Feb 23, 2017
CTestConfig.cmake More release preparations Mar 13, 2013
LGPL Release 0.1 preparations: Update top-level documentation files and re… Oct 31, 2006
LICENSE.txt Release 1.2 preparations Jul 7, 2015
build.bat More cleaning Equalizer Jul 31, 2012


Collage is a cross-platform C++ library for building heterogenous, distributed applications. Among others, it is the cluster backend for the Equalizer parallel rendering framework. Collage provides an abstraction of different network connections, peer-to-peer messaging, node discovery, synchronization and high-performance, object-oriented, versioned data distribution. Collage is designed for low-overhead multi-threaded execution which allows applications to easily exploit multi-core architectures.

The API documentation can be found on As with any open source project, the available source code, in particular the unit tests provide a reference for developing applications.

Technical questions can be posted to the Equalizer Developer Mailing List, or directly to

Commercial support, custom software development and porting services are available from Eyescale. Please contact for further information.


Collage provides different levels of abstraction to facilitate the development distributed applications:

  • Network Connections: stream-oriented point-to-point and reliable multicast connections for TCP/IP, InfiniBand RDMA, UDT, events, named and anonymous pipes, memory buffers and reliable multicast over UDP.
  • Peer-to-Peer Messaging: Endian-safe node-to-node message communication with thread-aware message dispatch.
  • Synchronization: Distributed barriers and synchronous messaging.
  • Object data distribution: high-performance, object-oriented, versioned data distribution for C++ objects based on delta serialization.
  • Detailed @ref Changelog


Collage is a cross-platform library, designed to run on any modern operating system, including all Unix variants and the Windows operating system. It requires a C++11 compiler and uses CMake to create a platform-specific build environment. The following platforms and build environments are tested:

  • Linux: Ubuntu 16.04, RHEL 6.8 (Makefile, Ninja)
  • Windows: 7 (Visual Studio 2012)
  • Mac OS X: 10.9 (Makefile, Ninja)

Building from source is as simple as:

git clone
mkdir Collage/build
cd Collage/build
cmake -GNinja ..