Matrix-CRDT
y-webrtc
Matrix-CRDT | y-webrtc | |
---|---|---|
10 | 2 | |
712 | 418 | |
- | 3.1% | |
1.0 | 4.9 | |
about 1 month ago | 5 days ago | |
TypeScript | JavaScript | |
Mozilla Public License 2.0 | 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.
Matrix-CRDT
- Help - chat server
-
Feature request: online collaboration
Another interesting and peculiar approach would be to use Matrix, which is chat and collaboration framework that is completely decentralised. Essentially, in this way Scrivano would translate pen input into chat messages that are sent to other users who receive them in real time. One advantage of this approach is that the collaborative notes will remain accessible even after you go offline and multiple users will be able to collaborate on a single note just like they would in a group chat. There are already apps that make use of this idea (e.g. see Matrix-CRDT or TheBoard), but when I tried this it last time didn't work very well and I'm not sure whether this is a limitation of the service or of the specific implementation I tried.
-
Libli, tiny matrix client for building public libraries
1. This is complicated. There is a notion of power_level, which you can set to different events. So you can set "send message" to power level 30, and any user with a "power level" of 30 or more will be able to send messages. Those power levels (and the required level to send an event) are granted by the room creator.
There is, however, no power_level associated with reading messages. I think you need to be joined to a room to send messages, and to be joined, you need to be able to read messages by design. So the "inbox" model doesn't seem representable to me. But maybe I'm missing something!
2. Yes. Events can refer to prior events to modify them, e.g. you can "edit" a previous message by appending a new message of type "msg.edit" (made up type, not sure what the exact it), specifying the old message id, and the new text. For matrix-based CRDT, see Matrix-CRDT[1], a Yjs backend using Matrix.
[1]: https://github.com/YousefED/Matrix-CRDT
-
E2EE Social Media?
Have you checked out Matrix? It's specifically a protocol (they've used OpenWhisper) but people are using it like a social media platform (specifically like IRC). There's even people doing google docs like services. I'm going to link a HN thread from that last link because others are just talking about Matrix and that'll likely be helpful to you.
- Matrix-CRDT: Use Matrix as a backend for local-first applications with the Matrix-CRDT Yjs provider.
- Show HN: Matrix-CRDT – real-time collaborative apps using Matrix as backend
- Matrix-CRDT – real-time collaborative apps using Matrix as backend
-
Hacker News top posts: Jan 18, 2022
Show HN: Matrix-CRDT – real-time collaborative apps using Matrix as backend\ (2 comments)
y-webrtc
-
Password protect a static HTML page
Here's one w/ 100_000. Perhaps it's missing a couple zeroes.
https://github.com/yjs/y-webrtc/blob/master/src/crypto.js#L2...
-
Show HN: Yboard is a multiplayer desktop-like workspace based on CRDT
Haven't tried with this specific project, but Yjs has a WebRtcProvider [0] which could be used where the project now uses WebsocketProvider [1].
Yjs is built to allow you to switch easily between providers so it shouldn't be too much trouble to make the change.
[0] https://github.com/yjs/y-webrtc
What are some alternatives?
syncthing-android - Wrapper of syncthing for Android.
SyncedStore - SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.
y-crdt - Rust port of Yjs
y-websocket - Websocket Connector for Yjs
Radicale-DecSync - Radicale storage plugin to add synchronization using DecSync
yjs - Shared data types for building collaborative software
mute - a scalable collaborative document editor with CRDT, P2P and E2EE
yboard - Yboard is a multiplayer desktop-like workspace based on Yjs
matrix-room-element
plaf - Low profile markdown static website generator / template engine based on handlebars
slate-yjs - Yjs binding for Slate
PageCrypt - Client-side password-protection for HTML