Skip to content
François Pinard edited this page Feb 5, 2013 · 5 revisions

Concepts page

colorg

The project name is colorg, which comes from the paraphrase: Collaboration between Org users. It is an amusing, but accidental pun that one read the word color in that name. To be fair to the project goal, it is nicer to pronounce col-org rather than color-g!

Client

The Emacs editor, while being used to edit an Org file, acts as a colorg client. Any tool implementing the colorg protocol may act as a colorg client, but none exists besides Emacs. If many buffers in a single Emacs session are edited in collaborative mode, they are still part of a single client.

Server

All communication between colorg clients go through a server, which collects the description of changes and broadcast them. Clients do not directly communicate with one another; to collaborate, they ought to connect the same server. There is usually a single server in a collaborative environment, but there might be many. A single client might connect to many servers at once, but a single edited buffer is associated with one server at most.

Resource

A resource is the meeting point for collaborative editing, and exists within a colorg server. A colorg client associates a given editing buffer to a colorg server resource. A client buffer gets associated to a single server resource, different clients may get associated to the same server resource, this is how collaboration is established. A resource has a name which usually is the same as the buffer name it is associated to, but this is only a convenience, these names may well differ.

User

A user is an individual working in collaboration with others, and is identified by providing their nickname though a login operation, but without password or any strong authentication. The login is usually automatic, after being configured in. Users may modify resources on a server, these modifications are reflected on other’s clients by hinting at the user originating them, using distinctive colored background. There is no attempt at identifying which client a particular is using, however. The other reason for having users is for chat communications, to know to which client (or clients) a message should be sent.

Protocol

The colorg protocol is the convention by which colorg clients and colorg servers communicate.

Security

At this stage, there is no such thing as security in colorg ☺.