12P by xguru 6달전 | favorite | 댓글 1개
  • "Local-First" 개발 패러다임을 위한 오픈소스 고성능 CRDT 라이브러리인 Loro에 대한 소개
  • 다양한 CRDT 알고리듬을 지원
    • 공통 자료 구조: 정렬된 컬렉션을 위한 List, 키-밸류 쌍을 위한 LWW(Last Write Win) Map, 계층형 데이터를 위한 Tree, Rich Text 조작을 위한 Text
    • OT-like CRDTs: Seph Gentle 의 Diamond-type 컨셉에 기초함
    • Rich Text CRDTs: Ink & Switch의 Peritext 와 Matthew Weidner의 RDT Fugue 알고리듬을 통합
    • Movable Tree: Martin Kleppman의 논문인 "A Highly-Available Move Operation for Replicated Trees"를 구현
  • Loro의 고급 기능
    • 편집 기록 보존: 오버헤드가 적은 편집 이력을 기록하여 변경 사항을 손쉽게 추적
    • History를 통한 시간 여행: 일반적으로 충돌이 발생하면 CRDT가 잘 해결하지만, 필요할 때 사용자가 수동으로 비교하고 병합할 수 있음
    • 고성능: yjs, automerge 등 보다 빠름
  • 자료 구조
    • generic-btree 를 오픈소스로 공개. 컴팩트한 메모리 레이아웃 및 캐시 친화적인 설계
    • 성능이 뛰어나며, 최소한의 코드로 다양한 정보유형을 지원
    • 내부적으로 문서의 상태와 히스토리(새 탭에서 열기)를 분리
  • 내년 중반까지 1.0을 출시하는 것을 목표로 하고 있음
    • WASM 인터페이스를 제공할 예정
    • 문서화 작업도 진행중
    • Movable Lists 와 글로벌 Undo/Redo 작업등을 지원할 계획