A peer-to-peer document-sharing application that allows groups of users to easily collaborate, supports intermittent connectivity, and provides intelligent merge and commit services.

In the long history of humankind (and animal kind, too) those who learned to collaborate and improvise most effectively have prevailed.
Charles Darwin, in support of our group’s P2P design
The Context prototype is a shell text editor that implements our conflict resolution strategy. It works wherever Java does. Run java -jar context.jar and see for yourself.
The Context proposal outlines the representation of a document stored at each peer, along with the protocol and algorithms the nodes use to exchange updates.
The Context research paper describes the design and evaluation of the full system in detail. Reading it will put our synchronization and fault-tolerant mechanisms into context.
| Command | Shortcut | Description |
|---|---|---|
new_user username | nu |
Creates a document copy for username |
switch_user username | su |
Switches to the document copy owned by username |
merge username1 username2 | m |
Merges the document copies of username1 and username2 |
add sentence | a |
Appends sentence to the end of the working copy |
insert index sentence | i |
Inserts sentence at location index |
delete index | d |
Deletes sentence at location index |
modify index new_sentence | mod |
Changes sentence at location index to new_sentence |
move old_index new_index | mv |
Moves sentence at location old_index to location new_index |
move_block start_index-end_index new_index | mvb |
Moves a block of sentences at locations start_index to end_index to location new_index |
commit commit_name | c |
Commits the working copy under commit_name |
print_committed commit_name | pc |
Prints out the document committed under commit_name |