# mattphillips/deep-object-diff

Deep diffs two objects, including nested structures of arrays and objects, and returns the difference. ❄️

Repository: https://github.com/mattphillips/deep-object-diff
Canonical: https://ross.abutalabs.com/products/deep-object-diff
Homepage: https://www.npmjs.com/package/deep-object-diff
Language: JavaScript
License: MIT
License Family: permissive
Topics: deep, diff, nested-structures, object, array
Last push: 2024-03-04T12:06:22+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 3569, "days_push": 912, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1139, forks 97 (observed 2026-08-28T04:03:44.265691+00:00)

## What it is
A small JavaScript library that computes deep differences between two objects, including nested structures of arrays and objects. It provides functions to get all differences or only added, deleted, or updated values.

## Use cases
- compare two nested JavaScript objects and get the differences
- find which keys were added between two object versions
- detect deleted properties in an updated object
- get a detailed breakdown of added, deleted, and updated values
- diff deeply nested state objects in a Redux app
- compare JSON payloads before and after an API change

## When to choose
- you need to diff plain JavaScript objects with nested arrays and objects
- you want separate added/deleted/updated diff results
- you need a tiny, dependency-free diff utility for Node or the browser

## When to avoid
- you need to diff arrays as ordered lists with element-level matching
- you need structural diffs for non-JSON values like Maps, Sets, or class instances
- you need patch generation or applying diffs, not just detecting them

## Facets
- artifact type: library
- maturity: maintenance
- function: serialization, developer-tools
- domain: developer-tools
- platform: browser
- tags: deep-diff, object-comparison, nested-objects, immutable-data, state-comparison, javascript, nodejs

## Member repositories
- mattphillips/deep-object-diff (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:44.265691+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:35:53.146082+00:00, confidence not recorded.
  - readme: https://github.com/mattphillips/deep-object-diff (fetched 2026-08-28T04:03:44.265691+00:00, sha 721c9484611d)
  - registry_npm: https://registry.npmjs.org/deep-object-diff (fetched 2026-08-29T12:41:06.501683+00:00, sha 09f4cc179d03)
- Data as of 2026-08-30T08:39:29.467469+00:00.
