RedSyS (Real-Time Document Synchronization and Service Broker) is an architecture enabling real-time integration of editing services into editors.
Imagine you want Eclipse, jEdit and [Ace Editor] (http://ace.ajax.org/) to be able to compile, syntax highlight and autocomplete "CoffeeScript" files. The typical way of achieving this is to use the extension mechanisms provided by the editors and write Editor dependent plugins. Note that
This is all very expensive both to develop as well as maintain....
The idea in this project is a bit different. Imagine you're writing your "CoffeeScript" in a Google Docs document. You can share this document with three friends of yours: "John the Coffee compiler", "Mary the Coffee Syntax Highlighter" and "Bob the Coffee autocompleter". When John sees some compilation error in the document, he will underline the parts which don't compile and color them in red. Mary will choose colors for each of your Coffee-script characters and Bob will give you autocomplete suggestions when you need it. Furthermore, imagine jEdit, Eclipse and Ace Editor could connect to that Google Docs document and display the colors and underlines etc as Google Docs can. Then, with the help of the same three friends, you will have syntax highlighting, compilation and autocompletion integrated in each of the editors -- without rewriting the services for each of the editors.
Generally, all it takes to integrate these three, quite different editing services, is
Here is a summary of the advantages of such an architecture:
Here are the steps you need to take
Checkout the source code
# git clone https://github.com/jucovschi/redsys redsys
Install the ShareJS (you need a specific version adding etherpad support)
# npm install git://github.com/jucovschi/ShareJS.git#etherpad_type
Install some more dependencies
# npm install async vfs-local deep-extend express
Recompile sharejs
# cd node_modules/share
# cake webclient
# cake build
# cd ../..
Run the redsys server
# cd bin
# coffee redsys.coffee
Open your browser at [http://localhost:8002/)
Run the available services at
# cd bin
# coffee runner.coffee
The plan is to give the possibility to write editing services in any language. Currently you can write realiably such services only using JavaScript. There are two Java libraries