2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00
2026-09-01 02:45:20 +02:00

Diff Tools

Compare text and structured data locally in the browser.

Diff Tools is a standalone, local-first application in the add·ideas Toolbox. Inputs are processed in a disposable browser worker and are never uploaded by the application.

Version 0.1 scope

  • Text diff by line, word, Unicode code point or grapheme cluster, with exact LF, CRLF, CR and final-newline state.
  • Explicit text comparison rules for case, whitespace, line endings, final newline and Unicode normalization. Normalized differences stay visible.
  • Semantic JSON comparison with duplicate-key rejection, exact decimal numbers, object-order reporting and RFC 6902 output when representable.
  • Namespace-aware XML comparison with visible prefix, attribute-order, comment, whitespace and CDATA normalization. DOCTYPE, entity declarations and XInclude are rejected.
  • CSV and TSV comparison by one or more unique key columns, including duplicate-key diagnostics, string-preserving fields and visible column/row order changes.
  • Unified and side-by-side views, an exact unified text patch and a portable, versioned JSON report.
  • Stable-last-result interaction: invalid or unfinished input does not blank the previous successful result.

This version intentionally does not compare images, binary documents, directories or archives.

Safety limits

Each input is limited to 8 MiB and 4 million characters. Parsing and output also have explicit row, cell, token, node, nesting, edit-count, time and display limits. Imported values are rendered as React text nodes; parser-provided HTML is never inserted. See privacy and security.

Development

Requires Node.js 22 and npm 11.

npm ci
npm run check
npm run test:browser

The browser suite builds and serves the app below /deep/nested/diff/, blocks external requests, checks CSP and immutable worker assets, and runs on Chromium and Firefox.

Release

npm run release:artifact

This creates deterministic release/diff-tools-0.1.0.zip and .sha256 files after all validation gates pass.

Licence

GPL-3.0-or-later. Runtime dependencies retain their own licences; see third-party notices.

S
Description
Local-first semantic file and document comparison for add·ideas Toolbox.
Readme GPL-3.0
245 KiB
2026-09-02 04:43:16 +02:00
Languages
TypeScript 83.4%
CSS 8.6%
JavaScript 7.7%
HTML 0.3%