Need help with mendoza?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sanity-io
214 Stars 4 Forks MIT License 39 Commits 0 Opened issues

Description

Differ for structured documents (JSON)

Services available

!
?

Need anything else?

Contributors list

Mendoza, differ for structured documents

Mendoza looks at two structured documents, referred to as left and right, and constructs a patch of the differences. By having the left document and the patch you'll be able to recover the right document. Mendoza is designed for creating a minimal patch, not necessarily a readable patch.

Example:

$ cat left.json
{"name": "Bob Bobson", "age": 30, "skills": ["Go", "Patching", "Playing"]}
$ cat right.json
{"firstName": "Bob Bobson", "age": 30, "skills": ["Diffing", "Go", "Patching"]}
$ dozadiff left.json right.json
[19,1,10,1,14,"firstName",11,2,20,"Diffing",21,0,2,15]

Features / non-features:

  • Lightweight JSON format.
  • Flexible format which can accommodate more advanced encodings in the future.
  • Differ/patcher available as a Go library (this repo).
  • Patcher available as a JavaScript library: mendoza-js.
  • Efficient handling of renaming of fields.
  • Efficient handling of reordering of arrays.
  • Not designed to be human readable.
  • The patch can only be applied against the exact same version.

Format: See docs/format.adoc

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.