- "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 작업등을 지원할 계획