rustpad
ot.js
Our great sponsors
rustpad | ot.js | |
---|---|---|
23 | 2 | |
3,054 | 2,019 | |
- | 1.3% | |
0.0 | 0.0 | |
5 months ago | almost 2 years ago | |
Rust | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rustpad
-
Stashpad launches Google Docs alternative you can use without any login
Take a look at https://github.com/ekzhang/rustpad
-
Software similar to https://rustpad.io
I'm looking for software similar to https://rustpad.io but with login and password. Docker would be nice :)
-
Could someone suggest a editable, no-account, password protected paste-bin?
You could try rustpad
- Ask HN: Is there a site that is just a text scratchpad?
- Paste server for local network
-
Let's Markdown: A self-hosted, open source collaborative markdown editor
Looks pretty similar to https://rustpad.io/
-
Let's Markdown: A real-time collaborative markdown editor built with Rust, WebAssembly, and React!
Awesome! I requested this in rustpad but it was closed with wontfix. I suppose it is out of scope of rustpad but I'm really glad to see that there's this project to add it.
-
Have you ever started a project in Rust but switched to a different language? If so, why?
Just adding an example to the other side, I wrote https://rustpad.io/ in Rust, which is a collaborative text editor that uses WebSockets and resolves edit conflicts in real time using an operational transformation algorithm. It's a fairly complex bit of logic. But I actually thought Rust was the best language for this application because of performance, data race-safety, Serde, and the borrow checker. (My second choice would have been Go with stress tests run under `the -race flag.)
- Rustpad – Collaborative Code Editor
ot.js
-
You don't need a CRDT to build a collaborative experience
This single file shows the entire set of OT transformations (retain, insert, delete):
https://github.com/Operational-Transformation/ot.js/blob/mas...
and this is a good post outlining the basics of OT, from the creator of CodeMirror:
https://marijnhaverbeke.nl/blog/collaborative-editing-cm.htm...
-
Show HN: Rustpad, a self-hosted online collaborative text editor in Rust
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!
What are some alternatives?
iced - A cross-platform GUI library for Rust, inspired by Elm
collabs - Collabs library monorepo
mkdocs-material - Documentation that simply works
othello-ocaml - Reimplementation of https://github.com/jahfer/othello in OCaml programming language
async-tungstenite - Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation
rich-text - Format for representing rich text documents and changes
nativeshell - Experimental embedder for Flutter
automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
docs-deploy - Deploys a VuePress docs repo to GitHub Pages
warp - A super-easy, composable, web server framework for warp speeds.
web-view - Rust bindings for webview, a tiny cross-platform library to render web-based GUIs for desktop applications
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...