Skip to content
XTXP

XTXP

The XML to XML Protocol. Many people editing one XML document at once, with branchable history, from a native desktop app down to a browser with JavaScript switched off.

Xmesh: the engine

The CRDT engine that resolves concurrent edits on an XML tree. A thin, pure layer on the XML types of Yrs, the Rust port of Yjs: a stable, open foundation to build on. No I/O, no clocks, no threads: everything else is an adapter around it.

Read about Xmesh →

muppet: the executor

Multi User Progressive Patch Execution Tree. Client-side Xmesh, embedded in Inkscape, in the browser via Wasm, or on a server for no-JS users. It owns every view: the canvas, spatial chat and comments, onion skin and redline. Any muppet can host sessions: admitting edits against their grants, routing them and storing them. On a server it runs headless.

Read about the muppet →
System context: designers, browser users (an XTXP-compliant browser, a Wasm polyfill, or no JavaScript), and mobile users connect to a mesh of peers and hosts over WebSocket, an XMPP bridge and, from a host's server muppet, plain HTML; a muppet disco such as xtxp.link helps them find sessions.System context: designers, browser users (an XTXP-compliant browser, a Wasm polyfill, or no JavaScript), and mobile users connect to a mesh of peers and hosts over WebSocket, an XMPP bridge and, from a host's server muppet, plain HTML; a muppet disco such as xtxp.link helps them find sessions.
Select the diagram to view it full screenPlantUML source
  • North star: the read-write web, with XTXP built into browsers and compatible with every browser through a Wasm polyfill and a no-JS client, and where the idea comes from.
  • Architecture shows how the parts fit together.
  • Open questions is the list of things to argue about next.

Everything is developed in the open, under the xtxp-link organisation on GitHub. See Repositories for what lives where, and the open questions for what’s up for argument.