Martin Kleppmann

Results 30 issues of Martin Kleppmann

Many collaborative apps need a way of sharing real-time updates with other users without persisting those updates. This happens when the real-time updates are useful for communication with other users,...

Automerge documents should have a way of moving some subtree to a different location in the document. This includes changing an object to have a new parent node, reordering elements...

In #308 we introduced an experimental "observable" API allowing applications to register callbacks that get called whenever an Automerge document (or a particular object within it) changes. At the moment,...

Quick extension to the Observable API (#308) requested by @echarles: the callback function now receives an additional parameter containing the path from the root object to the object being observed....

This PR provides an implementation of cursors, which allow a particular element of a list, or a particular character in an `Automerge.Text` object, to be referenced from elsewhere in the...

We need a tool to losslessly convert documents in Automerge's current JSON-based format into the new binary format (#253). It will need to do the following: - In the old...

We need a detailed documentation/specification of Automerge's new binary data format (#253), so that others can implement it if they want to. I am thinking an RFC-style document of prose,...

*(Notes from a discussion with Peter van Hardenberg and Jeff Peterson in October 2018)* At present, Automerge always merges all changes that are received from other actors. This is not...

design-discussion

We have previously discussed a few things we'd like to be able to do with Automerge documents: * Forking documents (like forking in github/branching in git), with the choice of...

design-discussion

The current Automerge API, which uses the change callback (with proxy objects) for modifications, and `Object.freeze()`-frozen plain JS objects for the read-only view of a document, is good for many...