Matrix-CRDT
kakoune
Matrix-CRDT | kakoune | |
---|---|---|
10 | 110 | |
712 | 9,581 | |
- | - | |
1.0 | 9.7 | |
about 1 month ago | 5 days ago | |
TypeScript | C++ | |
Mozilla Public License 2.0 | The Unlicense |
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)
kakoune
- Multi-cursor code editing: An animated introduction
-
Helix: Release 24.03 Highlights
Helix's modal editing is based on Kakoune's modal editing which is like an evolution to Vim's modal editing. You can think of it as being always in selection (visual) mode. https://github.com/mawww/kakoune?tab=readme-ov-file#selectio...
- Kakoune
- Kakoune Code Editor
-
A tutorial for the Sam command language (1986) [pdf]
And while it doesn’t use the sam language precisely, I think in the broader “postfix Vi with visual feedback” category Kakoune[1] also warrants mentioning. The command language, in my experience, feels much more logical than that of Vis coming from a blank slate (things might be different if you come from Vim, but even when I used Vim regularly I never used the editing language that much exactly because I could never remember the damn thing).
And having mentioned Kakoune it’d probably be unfair to then not mention Helix[2]. It has a very similar editing language, but it’s a fairly anti-Unix everything-bolted-in affair on the inside (“everything works out of the box” being the advertising take) compared to Kakoune’s Acme-inspired no-scripting scripting (there’s an ex-style command to exec a user program that can then drive the editor over stdio RPC, a set of hooks, and that’s it). So if you’ve come for the Plan 9 feels, I don’t expect Helix to be that appealing. It’s still a good editor, nevertheless.
[1] https://kakoune.org/
[2] https://helix-editor.com/
-
What is the best book for complete beginner?
You can take a look at kakoune. The source code (excluding documentations, test cases, customizations etc.) is less than 40k. It is, IMHO, a show case of a C++ project in use.
-
Why Kakoune
> I wonder if the author has ever heard of vis[0]
Yes.
https://github.com/martanne/vis/wiki/Differences-from-Kakoun...
https://github.com/mawww/kakoune/wiki#onboarding
> which imho fulfills far better each one of those premises
Not very motivated for such a harsh critic..
-
Understanding the Origins and the Evolution of Vi and Vim
I've been using Vim for years, but if there was one thing I could change, it would be the verb-noun order. The Kakoune[1] editor behaves mostly like Vim, but where Vim has `dw` as "delete word", Kakoune has it backwards: `wd`.
It might sound minor, but by placing the range first, Kakoune can give a preview of what will be changed. The longer or more complicated the command, the more this feature shines.
Strictly better as far as I know. A shame my muscle memory, and all default installations, are still stuck with Vim.
[1] https://kakoune.org/
- Ask HN: Where do I find good code to read?
-
Helix editor: Make HTTP requests and insert JSON
Helix is a postmodern text editor built in Rust built for the terminal. It is inspired by Kakoune, another Rust based text editor. Helix has got multiple selections, built-in Tree-sitter integration, powerful code manipulation and Language server support.
What are some alternatives?
syncthing-android - Wrapper of syncthing for Android.
helix - A post-modern modal text editor.
y-crdt - Rust port of Yjs
micro-editor - A modern and intuitive terminal-based text editor
y-webrtc - WebRTC Connector for Yjs
vis - A vi-like editor based on Plan 9's structural regular expressions
Radicale-DecSync - Radicale storage plugin to add synchronization using DecSync
Yuescript - A Moonscript dialect compiles to Lua.
mute - a scalable collaborative document editor with CRDT, P2P and E2EE
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
matrix-room-element
neovim - Vim-fork focused on extensibility and usability