clos-diff
clos-diff is a library to create and apply diffs of CLOS objects in a compact representation. The library also preforms the diffs recursively, so that (theoretically) infinite layers of objects can be diffed. The only dependency is closer-mop.

Homepage: https://github.com/krzysz00/clos-diff

License: GPL

Author: Krzysztof Drewniak <krzysdrewniak AT gmail DOT com>

API:

function: clos-diff:diff (old new &key (test #'equalp))

This function will create a diff that represents the modification that need to be applied to object old to create the object new. The test parameter will control the test used for equality. As a special case is the old parameter is nil, a diff from an object with no bound slots will be created.

function: clos-diff:apply-diff (diff &optional object)

This function will apply the diff given in the parameter diff to the object contained in object. If object is nil, a fresh object of the appropriate type (with all slots unbound) will be created, and the diff will be applied to that (See the documentation for diff for more information).


Topics: serialization