asyncbanana/microdiff

A fast, zero dependency object and array comparison library. Significantly faster than most other deep comparison libraries and has full TypeScript support.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 48 minutes ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 17th, 2026
Created on October 31st, 2021
Open Issues & Pull Requests: 2 (+0)
GitHub issues: Enabled
Number of forks: 84
Total Stargazers: 3,872 (+0)
Total Subscribers: 25 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1.6 hours
Mean response time: 9.3 days
90th percentile: 49.2 days
Tracked items: 9

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,766 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (2)
  • bug (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Microdiff is a zero-dependency object and array comparison library for JavaScript and TypeScript. It identifies differences between two objects or arrays and returns them as a structured list of changes, each with a path to the modified property and the values involved.

The tool solves the problem of efficiently detecting what has changed between two data structures, which is essential for state management, change tracking, and data synchronization. It achieves its performance through a specialized diffing algorithm designed to minimize computational overhead while maintaining accuracy across nested objects, arrays, and special object types like Date and RegExp. The library handles cyclical references by default but allows disabling this check for simpler data like parsed JSON when performance is critical.

Microdiff suits projects where bundle size matters and performance is a priority, particularly in frontend applications, state management systems, and real-time collaboration features. Its single exported function and straightforward API make it accessible for developers who need basic diffing without learning a complex interface. The tool's extreme lightness and zero dependencies make it ideal for environments with strict size constraints, including web applications, service workers, and Deno projects.

The project shows consistent maintenance with active engagement on issues and pull requests. Development activity demonstrates responsiveness to user feedback and bug reports. The codebase maintains a focus on performance optimization, with benchmarking infrastructure included to validate improvements against competing libraries. The maintainer provides educational resources explaining the implementation approach, indicating a commitment to transparency about how the tool achieves its speed and size characteristics.