Brussels / 31 January & 1 February 2015


Yjs: A Real-Time Framework for Peer-to-peer Group Editing on Arbitrary Data Types

Enabling real-time collaboration on the Web

Yjs is an open source framework that can be used to collaborate in real-time on arbitrary data types. It is based on a new operational transformation-like approach that can be used in peer-to-peer settings on the Web, using standard communication protocols such as WebRTC or XMPP. Part of the shared editing projects family (e.g. ShareJs, OpenCoweb, etc.), Yjs currently implements support for text, XML and JSON and proved to be very fast and reliable. In this lightning talk we introduce the concepts and features of the Yjs framework and discuss how it can be leveraged to design the next generation of peer-to-peer shared editing tools. We conclude the talk with a short demo that highlights the capabilities of the framework.

Yjs solves many of the current issues for concurrency control and consistency maintenance approaches in collaborative software. In order to achieve this, we created a new approach for optimistic concurrency control, which was formally proven to be reliable and to output the best time complexity (compared to existing dedicated related literature). The approach was designed to support real-time shared editing on linear, tree and graph data structures. A short part of this lightning talk aims to present the core concepts of our approach.

Designed to work on both peer-to-peer and client-server architectures, Yjs can be easily embedded in Web applications in order to foster collaboration. Developed in Javascript, the framework outputs very good scaling capabilities in the number of users and operations in test environments. Yjs currently supports text, JSON and XML data types and was tested using WebRTC and XMPP as an underlying communication protocol.

In this lightning talk, the Yjs framework will be presented to the wider OS community for the first time. We consider our framework to be developer friendly, but given the opportunity of a lightning talk, we would like to invite FOSDEM developers to use Yjs and share with us their experience. Ideally we aim to establish connections and potential collaborations, in order to improve our open source project.


Photo of Petru Nicolaescu Petru Nicolaescu
Kevin Jahns