GitHubCreative Dev & WebGLidea-techcode
yjs/yjs
yjs·@yjs·Jan 25, 2024
개요 협업 소프트웨어를 위한 공유 데이터 타입 라이브러리다. CRDT(Conflict-free Replicated Data Type) 기반으로 여러 사용자가 동시에 편집해도 충돌 없이 자동으로 병합되는 실시간 협업 기능을 구현할 수 있다.
핵심 내용 텍스트, 배열, 맵, XML 등 다양한 공유 데이터 타입을 제공하며, WebSocket, WebRTC, IndexedDB 등 다양한 동기화 프로바이더를 지원한다. Tiptap, ProseMirror, CodeMirror 등 주요 에디터와 통합이 가능하다. 21,000+ stars의 협업 편집 분야 핵심 라이브러리다. 오프라인에서도 편집 후 재연결 시 자동 병합된다.
기존 대비 차별점 Operational Transform(OT) 방식 대비 CRDT는 중앙 서버 없이도 분산 환경에서 충돌 해결이 가능하다. Notion, Figma 등 대형 협업 도구의 내부 기술과 동일한 원리를 오픈소스로 제공한다.
활용 가능성 구글 독스 같은 협업 문서 편집기, 화이트보드 앱, 코드 협업 도구, 오프라인 우선(offline-first) 앱 등에 활용할 수 있다. 실시간 멀티플레이어 기능이 필요한 모든 앱의 기반 기술로 적합하다.
참고 자료 - 원본
JavaScript⭐ 21,481collaborationcollaborative-editingcrdtdecentralizedoffline-firstp2ppeer-to-peerrealtimeshared-editingyjs
#crdt#collaborative-editing#real-time#offline-first#decentralized