Skip to content

y-community/y-collective

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Y-Collective

Chat Financial contributors Sponsor

A transparent funding organization that finances the work on open-source tools for creating collaborative & decentralized applications - https://opencollective.com/y-collective

We want to improve the ecosystem around the Yjs CRDT for building collaborative applications. The y-collective is managed by trusted authors of relevant software libraries in this space. We define the work that this collective is funding based on the interest of our sponsors. The maintainers of approved projects can charge up to $100/h for approved work and must make their timesheets publically available.

Please use the discussion board to ask questions or to provide feedback.

Members

Projects

In this section we define the work that y-collective is funding. If you want to make a significant contribution to work that is not listed here, then please contact us directly so we can define the work together.

Hocuspocus

Hocuspocus is an extensible, infinitely scalable server for Yjs documents.

  • Extension interface for custom authentication mechanisms.
  • Extension interface for storing the shared document in a central database for indexing and persistence.
  • Work on y-redis as a provider for infinite scalability.
  • Support for efficient synchronization of Yjs' subdocuments.
Gold Sponsors:

cargo

saga-logo

Y-CRDT

Y-CRDT is a port of the Yjs CRDT to different languages.

Our goal is to make the Y CRDT ubiquitous by providing ports of Yjs to many different languages like Swift, Go, WASM, PHP, Python, Java, ..

We already started the work on Yrs ("wires") - a high-performance port of the Yjs CRDT to the Rust programming language. We are working on novel data structures to represent the internal CRDT structure even more efficiently than Yjs. Once we have a reference implementation, we will port Yrs to different languages using language bindings.

  • Yrs - Work on a full port of the Yjs CRDT to the Rust programming language.
    • Find appropriate data structures to represent the CRDT structures in Rust.
    • Sync with Yjs documents (implement the updates API https://docs.yjs.dev/api/document-updates#update-api).
    • Read the Yjs documents (implement shared types including the API to read the content. It will be possible to convert the types to a JSON representation).
    • Functionality to manipulate shared types (Y.Map and Y.Array will be fully implemented. But Y.Text won't implement the complete extensive rich-text API).
    • Publish a Yrs cargo package including documentation
    • Performance analysis compared to Yjs and Automerge
  • Provide WASM bindings (see Ywasm)
    • Performance analysis compared to Yjs and Automerge
  • Provide Python bindings (see Ypy)

Tiptap

Tiptap is a headless editor framework, with core support for collaborative editing.

Slate-yjs

Yjs bindings for Slate.

  • Mark related changes (combining neighboring leaf text nodes)
  • Add identifiers to the in yjs stored Slate nodes to be able to sync move_node operations properly (just an idea)
  • Improve the current collab cursor implementation
  • Write a slate-history compatible Yjs based plugin to properly handle undos/redos (with support for withoutSaving, withoutMerging, etc.)
  • Improve the documentation and test coverage
  • Update the plugins to work with Slate 0.63

About

A transparent funding organization to improve the Yjs ecosystem

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published