Peritext - Rich Text를 위한 CRDT
(inkandswitch.com)- 리치 텍스트 문서의 협업을 위한 CRDT 알고리듬
- 비동기 방식으로 동작도 가능해서 로컬에서 편집 후 머징하는 방법 지원
ㅤ→ 마치 Git과 PR처럼
- 작성자의 의도를 보존
ㅤ→ 서식 편집과 텍스트 삽입이 동시 일어날 때, 새로 삽입된 글자에도 서식 적용
ㅤ→ 동시 서식 편집의 컨플릭 처리
- Peritext 알고리듬
ㅤ→ 기존 플레인 텍스트용 CRDT를 이용해서 리치 텍스트 문서를 표현
ㅤ→ 포맷 변경을 표현하는 CRDT 오퍼레이션 생성
ㅤ→ 이 오퍼레이션을 적용하여 내부 문서 상태(State)를 생성
ㅤ→ 내부 상태를 기반으로 텍스트 편집기에 적합한 문서를 만들기
- Automerge CRDT 라이브러리의 심플 버전을 확장한 TypeScript 오픈소스
ㅤ→ 나중에 Automerge 에 알고리듬을 넣는 것을 기대
ㅤ→ 에디터는 ProseMirror 이용
- 제가 틀렸었어요. CRDT가 미래입니다. https://news.hada.io/topic?id=2962
- 더 빠른 CRDT를 위해 최적화 하기 https://news.hada.io/topic?id=4744