A collaborative text editor implementing
Neil Fraser's
differential synchronization algorithm
as a Python
server with a JS
client. The implementation is functionally
complete, but does not address all the network failure scenarios considered
by Fraser. A caveat is in order: The project was conceived as an
experiment in using coroutines/continuations in Python. I haven't had
a chance to clean or tighten up the code since.
The Docker container includes all dependencies.
If not using Docker, running:
pip install -r requirements.txt
...will install:
bottle
for routesgevent
andgevent-websocket
for WebSocketgoogle-diff-match-patch
is included
./go
Open a browser and visit http://localhost:1070/. Copy/paste the generated url in a new tab or two.
This repository is licensed under the
MIT license, except for
./py/diff_match_patch.py
and ./static/js/diff_match_patch.js
which are licensed under
Apache-2.0.
The default Match_Threshold
has been modified from the original
diff_match_patch.py
source.