Reimplementation of Yjs 13.5.13 in Golang

Hello everyone, I have rewritten the Yjs 13.5.13 version in Go. In the near future, I will test and fix the compatibility issues between skyterra/y-crdt and yjs/y-crdt. The Go version of y-crdt focuses on the server side, which can quickly merge text content from multiple terminals and synchronize it to all clients, thereby reducing the conflict resolution pressure on the client side. I hope the Go version of y-crdt will be helpful to everyone.

Repo: GitHub - skyterra/y-crdt

1 Like

This is amazing, thank you so much for sharing!!

A good news, I conducted compatibility tests on the Golang version of y-crdt using the testing methods in
the code at compatibility_tests.rs,
and the tests have passed.

By the way, I plan to build a y-server in the future for merging updates from multiple terminals, distributing differential data, and archiving data. Regarding data snapshots, I might consider archiving Y.Doc data directly, as the backend service should not interfere too much with data editing—after all, data editing is a core function of the client side.

1 Like