3 # Introduction {#Introduction}
5 Collage is a cross-platform C++ library for building heterogenous, distributed
6 applications. Among other things, it is the cluster backend for the [Equalizer
7 parallel rendering framework](https://github.com/Eyescale/Equalizer). Collage
8 provides an abstraction of different network connections, peer-to-peer
9 messaging, node discovery, synchronization and high-performance,
10 object-oriented, versioned data distribution. Collage is designed for
11 low-overhead multi-threaded execution which allows applications to easily
12 exploit multi-core architectures.
15 [API documentation](http://eyescale.github.io/Collage-1.4/index.html) can be
16 found on [eyescale.github.io](http://eyescale.github.io/). As with any open
17 source project, the available source code, in particular the
18 [unit tests](https://github.com/Eyescale/Collage/tree/1.4/tests) provide a
19 reference for developing applications.
21 Technical questions can be posted to the Equalizer
22 [Developer Mailing List](http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev),
24 [info@equalizergraphics.com](mailto:info@equalizergraphics.com?subject=Collage%20question).
26 Commercial support, custom software development and porting services are
27 available from [Eyescale](http://www.eyescale.ch). Please contact
28 [info@eyescale.ch](mailto:info@eyescale.ch?subject=Collage%20support)
29 for further information.
31 # Features {#Features}
33 Collage provides different levels of abstraction to facilitate the
34 development distributed applications:
36 * Network Connections: stream-oriented point-to-point and reliable multicast
37 connections for TCP/IP, SDP, InfiniBand RDMA, UDT, events, named and anonymous
38 pipes, memory buffers and reliable multicast over UDP.
39 * Peer-to-Peer Messaging: Endian-safe node-to-node message communication with
40 thread-aware message dispatch.
41 * Synchronization: Distributed barriers and synchronous messaging.
42 * Object data distribution: high-performance, object-oriented, versioned data
43 distribution for C++ objects based on delta serialization.
44 * Detailed @ref Changelog
46 # Building {#Building}
48 Collage is a cross-platform library, designed to run on any modern operating
49 system, including all Unix variants and the Windows operating system. Collage
50 uses CMake to create a platform-specific build environment. The following
51 platforms and build environments are tested:
53 * Linux: Ubuntu 14.04, RHEL 6.6 (Makefile, Ninja)
54 * Windows: 7 (Visual Studio 2012)
55 * Mac OS X: 10.8 (Makefile, Ninja)
57 Building from source is as simple as:
59 git clone https://github.com/Eyescale/Collage.git