Saros is a Eclipse plugin for collaborative text editing that in particular targets distributed pair programming (also called remote pair programming), but can support arbitrarily many participants at once. All members of a session have an identical copy of an Eclipse project and Saros keeps these copies in sync as editing progresses.
One author ("driver" in pair programming lingo) can change any file and one or more "observers" can either set their Saros to automatically show them the author's activity ("follow mode") or can look around elsewhere in the same file or different files. Markers in everybody's viewport will indicate who is currently seeing what ("awareness information"). All participants can highlight text for others by means of simple text selection which will be shown in different colors according to participant.
The role of being the driver of a session can be given to any participants. Saros supports multiple concurrent drivers as an experimental feature using an implementation of the Jupiter algorithm taken from the Open Source project ACE (A Collaborative Editor).
Saros will automatically sync the contents of the Eclipse project from the initiator of a session ("host") to the other participants. Separate high-quality audio conferencing completes the collaboration scenario.
Saros uses an XMPP/Jabber server for session initiation and will also use it for all its internal protocol communication if some participants cannot be reached directly via IP (because their computer is behind a firewall or NAT). However, Saros uses STUN and Jingle to provide low-latency, high-bandwidth direct connections even in the presence of some kinds of NATs.