[HN Gopher] Show HN: Rustpad, a self-hosted online collaborative...
       ___________________________________________________________________
        
       Show HN: Rustpad, a self-hosted online collaborative text editor
        
       Author : ekzhang
       Score  : 64 points
       Date   : 2021-06-05 20:44 UTC (2 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | re wrote:
       | FYI, https://rustpad.io breaks the back button by updating the
       | URL hash to a new document every time I try to go back. Use
       | location.replace() https://developer.mozilla.org/en-
       | US/docs/Web/API/Location/re... or history.replaceState()
       | https://developer.mozilla.org/en-US/docs/Web/API/History/rep...
       | to avoid that, instead of assigning to window.location.hash.
        
       | jdellinger wrote:
       | Looks nice and clean! Also feels very snappy in two tabs.
       | 
       | However, you're breaking the back button with your redirect to a
       | unique room. Once in a room, pressing back will join a new room.
       | History replace instead of push should be a better choice.
        
         | ekzhang wrote:
         | Thanks! And good catch, I'll fix that right away.
        
       | zeotroph wrote:
       | Could end-to-end encryption be added (see cryptpad), or does
       | operational transformation or some other design aspect require a
       | central server?
       | 
       | What also comes to mind when editing source code is a non-browser
       | participant which can actually run and test the code (or for
       | other non-interactive backends, such as en external spellcheck).
        
       | messo wrote:
       | Thanks for making this, I have been looking for a worthy
       | replacement of Etherpad for a long time, that is easy to use and
       | has the option to be self-hosted.
        
       | sreeramb93 wrote:
       | I really like the architectural decisions made in the project.
       | OperationalTransform library may need some work like testcases
       | and add more powerful constructs. Is there any theory behind it?
       | Maybe add a link to it.
       | 
       | I believe this project can become a popular opensource project.
       | It is really fast.
        
         | ekzhang wrote:
         | Thanks! Operational transformation is the same technology that
         | powers Google Docs. It's been studied in academia for real-time
         | collaboration since the 1990s and has eventual consistency
         | guarantees. See the Wikipedia article:
         | https://en.wikipedia.org/wiki/Operational_transformation
         | 
         | The Rust operational-transform library was not written by me,
         | but it's listed on crates.io by spebern, and it's worked
         | wonderfully so far. It seems to be a very close port of ot.js
         | (https://github.com/Operational-Transformation/ot.js). The text
         | transformation algorithm isn't very complicated (<700 SLOC
         | including tests), but there's probably room for optimization!
        
       | amelius wrote:
       | Is this for editing Rust only? If not, why the name?
        
       | executive wrote:
       | Stuck at connecting to server on iOS Safari.
        
         | ekzhang wrote:
         | What version of iOS? It works for me on my iPhone 8 running iOS
         | 14.4.2.
        
         | luke2m wrote:
         | 6S running 14.5.1 works fine.
        
       ___________________________________________________________________
       (page generated 2021-06-05 23:00 UTC)