Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@react-hookz/deep-equal

Package Overview
Dependencies
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-hookz/deep-equal

Fast deep equal comparator

  • 3.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

@react-hookz/deep-equal

NPM Version NPM Downloads Dependents (via libraries.io), scoped npm package GitHub Actions Workflow Status Codecov NPM Type Definitions

× DISCORD ×


The fastest deep comparator for JS/TS.


Features 🚀

  • ✅ Handles ES6+ structures like Map, Set, TypedArray, DataView, and ArrayBuffer.
  • ✅ Supports Date, RegExp, and NaN.
  • ✅ Safe handling of React and Preact objects (no stack overflow).
  • ✅ Works seamlessly with objects created via Object.create(null).
  • ⚠️ Circular reference handling:
    • Supported: React and Preact objects.
    • Not supported: Other objects (causes stack overflow).

Installation 📦

It's as simple as:

npm install @react-hookz/deep-equal
# or
yarn add @react-hookz/deep-equal

Usage 💡

Importing

This package is distributed using the ESNext language level and ES module system. Depending on your target environment, you might need to transpile the package. Check your bundler's documentation for instructions on transpiling node_modules.

import { isEqual } from '@react-hookz/deep-equal';

isEqual({ a: 1 }, { a: 1 }); // true

Performance ⚡

Note: Benchmarks were conducted on specific datasets (available in the src/fixtures directory). Your results may vary depending on your data and use case. Running benchmarks on your dataset is recommended.

Simple Data (non-ES6+)

	 name                               hz     min     max    mean     p75     p99    p995    p999     rme  samples
 · @react-hookz/deep-equal  1,780,770.64  0.0005  0.7278  0.0006  0.0006  0.0010  0.0011  0.0013  ±0.18%  1780771   fastest
 · react-fast-compare       1,690,244.66  0.0005  3.2804  0.0006  0.0006  0.0010  0.0012  0.0013  ±0.65%  1690245
 · fast-deep-equal          1,663,437.00  0.0005  3.5417  0.0006  0.0006  0.0010  0.0011  0.0012  ±0.70%  1663438   slowest
 · dequal                   1,693,113.15  0.0005  3.2976  0.0006  0.0006  0.0007  0.0010  0.0012  ±0.65%  1693114

Complex Data (ES6+)

	 name                               hz     min     max    mean     p75     p99    p995    p999     rme  samples
 · @react-hookz/deep-equal  1,725,589.83  0.0005  0.2565  0.0006  0.0006  0.0009  0.0010  0.0012  ±0.20%  1725590   fastest
 · react-fast-compare       1,406,227.02  0.0006  0.1635  0.0007  0.0007  0.0011  0.0014  0.0016  ±0.21%  1406228
 · fast-deep-equal          1,553,848.07  0.0005  2.7540  0.0006  0.0007  0.0008  0.0011  0.0013  ±0.57%  1553849
 · dequal                   1,026,213.59  0.0008  0.1810  0.0010  0.0010  0.0011  0.0012  0.0019  ±0.16%  1026214   slowest

Run Benchmarks Locally 🛠️

To get more detailed benchmarks for different data types, run the tests directly on your own machine:

  1. Clone the repository:
    git clone https://github.com/react-hookz/deep-equal
    cd deep-equal
    
  2. Install dependencies:
    corepack enable
    yarn
    
  3. Run benchmarks:
    yarn benchmark
    

Contributors

xobotyi
Anton Zinovyev
kylemh
Kyle Holmberg
nichita-pasecinic
Pasecinic Nichita

Keywords

FAQs

Package last updated on 11 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc