home.social

#crdt — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #crdt, aggregated by home.social.

fetched live
  1. Zed oznámili DeltaDB, nový systém pro správu verzí, který zaznamenává práci průběžně, jak vzniká, a udržuje každou změnu propojenou s konverzací, ze které vzešla. Momentálně běží early access s waitlistem.

    O co jde:

    Zatímco Git zachycuje snímek při každém commitu, DeltaDB zachycuje každou operaci mezi commity a dává jí stabilní identitu – jednotku […]

    https://zdrojak.cz/zpravicky/deltadb-od-zedu/
  2. It sounds easy. Two people share a grocery list, both add pet food to it, and life goes on. Right until the dog food disappeared from the list and nobody could explain why. That little mystery broke my heart when I realized its full implications.

    brainframe.tech/blog/2026/08/0

    #BuildInPublic #localfirst #CRDT

  3. getting back to writing some #Rust and feeling like I'm starting to get into the flow. I think the breakthrough was stopping struggling with IDEs yelling at me after every character I type with squiggles and highlights, and just coding in #Vim for now.

    Working on implementing a #CRDT for my binary tree-shaped #PKM outliner.

    Took some time to learn about #P2Panda as I'd like to use it for #P2P offline-first outline syncing.

    #RustLang #OfflineFirst

  4. I'm using the incredible crdt_lf library. It's landed in BrainFrame, and it's handling that layer. Next up is the way that I'm going to interact with it, and that's got some real challenges.

    The entire point is that you keep your files. You don't manage the CRDTs. You're able to edit with any editor you choose. So now I have to integrate the CRDT layer with a directory watcher and a diff reconciliation engine to handle you doing that. Yes, diffs and CRDTs work in different spaces, but I don't have a choice. If you edit your files in Obsidian, then I have to turn those changes you made into CRDT operations somehow, and that's going to start with a diff. I know, I hate it too 🙂

    A line that's starting to become a refrain for me: it all sounds easy, right until it isn't. And this integration definitely will tax me.

    #CRDT #BuildInPublic #LocalFirst #Dart

  5. I've talked about CRDTs in bits and pieces here, but never laid out the whole picture: What they do, why they matter, and why you might care about them. So I wrote it all up (no code, just ideas, explanations, and one very troublesome owl 🦉). I'd love to hear what you think! brainframe.tech/blog/2026/07/2

    #CRDT #LocalFirst #PKMS #PKM #BuildInPublic

  6. CRDTs are hard. Unicode is hard. And I'm mixing the two of them to make one tool.

    At least I've gotten to spend the time designing it well, and I'm finding the bugs earlier rather than later.

    This is easily one of the toughest programming challenges I've ever had. And it's one of the most fun I've ever done.

    #crdt #unicode #pkms #oss

  7. I'm working on better understanding Conflict-free Replicated Data Types (CRDTs) for my app. It's only the technology that lets you make a Google Drive doc with a bunch of other people simultaneously, so how difficult could it be, right? It only upends everything you think you know about files, no big deal :)

    #pkm #crdt

  8. @marijn Congratulations! I love Prosemirror, the one that ruled the contenteditable mess best of all. The foundation of great editors and Wordgard looks like the essence of all the learnings from Prosemirror and Codemirror. But I wonder, if you might have a genius idea for an CRDT approach to collaborative editing of rich text? OT still requires a server or sequential application. For #localfirst #CRDT would be the more robust approach IMO.

  9. We've got mentioned in this academic publication, apparently we are "sophisticated"! :thistbh:

    Didn't read further to not get to the "however" part .. 🙈

    arxiv.org/abs/2604.23560

    #crdt #p2p #localfirst #sophisticated

  10. Все тесты зелёные, а байты разные: как я проверяю порты бинарных форматов

    У меня было полторы сотни кросс-языковых фикстур, все тесты зелёные, и я был уверен, что мой Go-порт Yjs байт-в-байт совместим с оригиналом. Потом сравнил байты напрямую с канонической реализацией, и они разъехались: семантика сходится идеально, а на проводе документ толще. Юнит-тесты, roundtrip и даже конвергенц-тесты систематически пропускают баги совместимости, когда портируешь чужой бинарный формат на другой язык. Рабочий метод один: генерировать фикстуры из канона и требовать в CI побайтового совпадения в обе стороны. Разбираю конвейер и три реальных бага из трёх своих портов (Yjs, Loro, Willow): документ в 12 раз толще канона, big-endian остров, который молча портил бы все float’ы при обмене, и дыра, через которую 9-байтный апдейт заказывал make() на 67 ТБ. Метод обобщается на любой «порт формата X на язык Y», CRDT тут просто материал.

    habr.com/ru/articles/1049858/

    #CRDT #Yjs #Loro #Go #тестовые_векторы #фикстуры #wire_format #conformance_testing #байтсовместимость #сериализация

  11. Большой каталог «на почитать» про $mol, web и не только

    Реактивность лучше MobX , виртуализация рендеринга «из коробки» , типизированные стили на TypeScript , локально-первая модель данных через CRDT — эти идеи Дмитрий Карловский ( nin-jin ) разрабатывает на своём фреймворке $mol и в проекте $hyoo. За десять лет накопилось около сотни статей на Хабре и большая документация на mol.hyoo.ru , разбросанная по годам и площадкам — карта потерялась даже у тех, кто читал. Этот каталог — навигатор по корпусу. 80+ материалов разложены по 12 темам : с чего начать и для кого это вообще история фреймворка от тизера 2016-го до обзора 2025-го реактивность от первого «атома» 2014-го до свежего цикла 2026-го архитектура: MAM, view.tree , виртуализация, CSS-in-TS руководство по практике утилиты: $mol_fetch , $mol_time , $mol_regexp , VaryPack , MarkedText TypeScript-приёмы и принципы кода $hyoo и Гипер База — распределённые данные на CRDT сообщество, бенчмарки, аналитика проекта в цифрах На каждый материал один абзац о сути и прямая ссылка на оригинал. Полезно даже тем, кто не будет писать на $mol.

    habr.com/ru/articles/1047754/

    #$mol #реактивное_программирование #TypeScript #JavaScript #frontend #React #MobX #Vue #CRDT #localfirst

  12. Local-first web dnes neznamená jednu architekturu, ale několik různých kompromisů: lokální databázi v prohlížeči, repliku čtení z PostgreSQL nebo CRDT model pro souběžné úpravy. Každý přístup posouvá data blíž k uživateli, ale zároveň přidává nové otázky kolem persistence, konfliktů, autorizace a provozu.

    https://zdrojak.cz/clanky/data-bliz-k-uzivateli-kde-narazi-local-first-web/
  13. CW: Détails techniques 9/9

    Explorations techniques (suite)

    #localfirst

    - Comment synchroniser mes données locales entre plusieurs machines ? avec un serveur ?
    - #eventsourcing et #CQRS ?
    - #crdt (@inkandswitch.com ) pour la collaboration ? Est-ce qu'il faut de la collaboration ?

  14. 🚀✨ Oh, look, it's yet another mind-bogglingly complex tech Frankenstein, combining every buzzword imaginable: type-safe, #realtime, collaborative, #CRDT, and more! 🤯🔧 Perfect for making your #TypeScript look like the intricate inner workings of a space station, but maybe next time just try a regular database, like adults do. 🍕👩‍💻
    codemix.com/graph #techfrankenstein #typeSafe #collaboration #HackerNews #ngated

  15. I'll be honest: I'm procrastination on the gaps and layers stuff which is a lot of going through the different cases of resizing, moving, adding and deleting clips with and without ripple editing turned on. There's also potentially spooky #CRDT stuff involved. Help

  16. Что больнее OT или CRDT в совместном редактировании? И почему до сих пор нет идеала?

    Привет, Хабр! Меня зовут Антон Леонтьев, я старший разработчик в команде ядра

    habr.com/ru/companies/ncloudte

    #collaboration #мойофис #мойофис_документы #мойофис_текст #редакторы #редактирование #ot #crdt

  17. Currently working on a feature to preview changes in the #MiruVideoEditor without syncing so that:

    - users are less likely to get confused by clips flashing between their and someone else's changes (in theory)
    - fewer ephemeral #CRDT updates are sent between users
    - we can more easily have an [Esc] key to cancel current drag/resize, or close a dialog without applying changes
    - we can use the same preview system with a lightweight real-time API for live changes from other clients

  18. I hadn't ever thought of having each device write its own database / file to a synced folder, and then just periodically having each device read all the other files to accumulate a fully synced state 🤔 via: github.com/tonsky/crdt-filesync #datasync #crdt