channels-yroom is a Django Channels WebSocket consumer and worker for synchronizing Yjs clients. It implements the network protocol for Yjs doc synchronization and awareness updates and makes them available as Django Channels WebSocket consumer and worker.
Under the hood, this project uses a high-level Python binding to a Yjs synchronization and awareness implementation in Rust based on the official Yjs Rust port.
I included an example text collaboration project (using
y-prosemirror) and a Docker compose setup to quickly try it, see the README for details.
Real-time collaboration is table stakes for some type of apps and I hope that this project makes it possible to integrate this functionality into existing Django projects without too much effort.
I just released this and haven’t tested it extensively, feedback is appreciated!