The Myers diff can be implemented in linear space, which is quite compelling. There will likely be some up-front computing cost to produce the edit sequence, but once built and indexed, I imagine it'd be possible to inject the necessary edit sequence elements into the rendering of arbitrarily positioned and sized view ports.
And important challenge is that the algorithm might be faced with gigabyte deltas in terabyte files, and it must still finish in "reasonable" time.
Keyboard shortcuts for navigating to next and previous difference would also be helpful.
Finding alignments like in BLAST might also be useful:
It's not entirely clear what this means, precisely.
Something already exists for this use case, which may provide inspiration: https://github.com/madsen/vbindiff
Best bet is probably the Myers diff algorithm, or a variant thereof:
The Myers diff can be implemented in linear space, which is quite compelling. There will likely be some up-front computing cost to produce the edit sequence, but once built and indexed, I imagine it'd be possible to inject the necessary edit sequence elements into the rendering of arbitrarily positioned and sized view ports.
And important challenge is that the algorithm might be faced with gigabyte deltas in terabyte files, and it must still finish in "reasonable" time.
Keyboard shortcuts for navigating to next and previous difference would also be helpful.
Finding alignments like in BLAST might also be useful: