Rails, AnyCable, 그리고 YJS를 활용한 실시간 협업
Rails 애플리케이션에서 AnyCable을 사용하여 고성능 WebSocket 연결을 구축하고, YJS(CRDT)로 충돌 없는 실시간 동시 편집 기능을 구현할 수 있습니다.
Rails, AnyCable, 그리고 YJS를 활용한 실시간 협업
Rails 애플리케이션에서 AnyCable을 사용하여 고성능 WebSocket 연결을 구축하고, YJS(CRDT)로 충돌 없는 실시간 동시 편집 기능을 구현할 수 있습니다.
Все тесты зелёные, а байты разные: как я проверяю порты бинарных форматов
У меня было полторы сотни кросс-языковых фикстур, все тесты зелёные, и я был уверен, что мой Go-порт Yjs байт-в-байт совместим с оригиналом. Потом сравнил байты напрямую с канонической реализацией, и они разъехались: семантика сходится идеально, а на проводе документ толще. Юнит-тесты, roundtrip и даже конвергенц-тесты систематически пропускают баги совместимости, когда портируешь чужой бинарный формат на другой язык. Рабочий метод один: генерировать фикстуры из канона и требовать в CI побайтового совпадения в обе стороны. Разбираю конвейер и три реальных бага из трёх своих портов (Yjs, Loro, Willow): документ в 12 раз толще канона, big-endian остров, который молча портил бы все float’ы при обмене, и дыра, через которую 9-байтный апдейт заказывал make() на 67 ТБ. Метод обобщается на любой «порт формата X на язык Y», CRDT тут просто материал.
https://habr.com/ru/articles/1049858/
#CRDT #Yjs #Loro #Go #тестовые_векторы #фикстуры #wire_format #conformance_testing #байтсовместимость #сериализация
Большой каталог «на почитать» про $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.
https://habr.com/ru/articles/1047754/
#$mol #реактивное_программирование #TypeScript #JavaScript #frontend #React #MobX #Vue #CRDT #localfirst
🔗 ueberdosis/hocuspocus
The Yjs CRDT WebSocket backend for conflict-free real-time collaboration in your app.
Provides a ready-to-use WebSocket backend for Yjs CRDTs enabling real-time collaborative editing with extensions like SQLite persistence
⭐ Stars: 2408
📅 Last Update: Jun 08, 2026
https://github.com/ueberdosis/hocuspocus
#selfhosted #homelab #selfhost #selfhosting #opensource #crdt #realtime
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/Explorations techniques (suite)
- 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 ?
A type-safe, realtime collaborative Graph Database in a CRDT
#HackerNews #typeSafe #database #collaboration #CRDT #graphDatabase #realtimeDevelopment