One of our design goals when planning the platform was to fully support socket.io, because this is where node.js really shines: real-time applications like chat, messaging and other collaboration tools. Having followed the original Etherpad from the beginning, we knew about the challenges and complexity of the two-way communication needed for such tools.
Etherpad Lite
When we heard about Etherpad Lite and its dramatic slim-down, we knew that this is an ideal candidate to test our platform. With Etherpad Lite it should be possible to run an application on a shared hosted platform, which normally needs at least a medium VM just to start up.
Etherpad | Etherpad Lite | |
Size of the folder (without git history) | 30 MB | 1.5 MB |
Languages used server side | Javascript (Rhino), Java, Scala | Javascript (node.js) |
Lines of server side Javascript code | ~101k | ~9k |
RAM Usage immediately after start | 257 MB (grows to ~1GB) | 16 MB (grows to ~30MB) |
Installation Steps
The installation is straight forward. The only difficulty I encountered, was the dependency on SQLite 3, a database we don't support out of the box (for now). So, I got SQLite 3.7.7.1, compiled it and added the compiled library to the repository at /usr/lib. That did the job and the app is now live at http://etherpad.cloudno.de.