daff
Diff and patch tables
Install
daff on PyPI
pip
pip install daffuv
uv add daffpoetry
poetry add daffPackage facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 466 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: daff-1.4.2-py3-none-any.whl
Keywords: data, diff, patch
About daff
from the package's own PyPI description — quoted content, verbatim
NPM version (image) PyPI version (image) PHP version (image) Gem Version (image)
daff: data diff
This is a library for comparing tables, producing a summary of their differences, and using such a summary as a patch file. It is optimized for comparing tables that share a common origin, in other words multiple versions of the "same" table.
For a live demo, see: > https://paulfitz.github.io/daff/
Install the library for your favorite language:
npm install daff -g # node/javascript
pip install daff # python
gem install daff # ruby
composer require paulfitz/daff-php # php
install.packages('daff') # R wrapper by Edwin de Jonge
Use on the web from a CDN:
<script src="https://cdn.jsdelivr.net/npm/daff@latest/lib/daff.min.js"></script>
Other translations are available here: > https://github.com/paulfitz/daff/releases/tag/v1.3.16
Or use the library to view csv...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
daff compares two tables (CSV, JSON, SQLite, etc.), produces a structured diff showing row and column changes, and can apply those diffs as patches to transform one table into another.
Installation is straightforward with no runtime dependencies. The package is actively maintained with a recent release (2025-05-04) and 921 GitHub stars, indicating stable, community-backed development.
MIT license permits unrestricted use, modification, and distribution with minimal obligations—suitable for both open-source and commercial projects.
Usage
pip install daff
from daff import TableView, compareTables, CompareFlags, TableDiff
data1 = [['Country', 'Capital'], ['Ireland', 'Dublin']]
data2 = [['Country', 'Capital'], ['Ireland', 'Dublin']]
table1 = TableView(data1)
table2 = TableView(data2)
alignment = compareTables(table1, table2).align()
flags = CompareFlags()
highlighter = TableDiff(alignment, flags)
data_diff = []
table_diff = TableView(data_diff)
highlighter.hilite(table_diff)
Verdict: daff is a mature, actively maintained library for intelligent table diffing and patching across multiple formats. Zero security vulnerabilities, permissive MIT license, and no dependencies make it a low-friction choice for projects needing structured data comparison—though the Alpha classifier suggests API stability may still evolve.
Needs verification
- Whether Python version support is truly unspecified or if there are undocumented minimum/maximum Python version constraints
- Performance characteristics and scalability limits for large tables or complex diffs
Similar packages
permissive · top 1,000 on PyPI
unidiffpermissive · top 1,000 on PyPI
prettytablepermissive · top 1,000 on PyPI
pycountrycopyleft · top 1,000 on PyPI
aiosqlitepermissive · top 1,000 on PyPI
agatepermissive · top 1,000 on PyPI
tabulatepermissive · top 1,000 on PyPI
alembicpermissive · top 1,000 on PyPI
youtube-transcript-apipermissive · top 1,000 on PyPI
jsonpatchpermissive · top 1,000 on PyPI