Tiny & Fastest is-equal check with various ES6 objects.
- No dependencies.
- Tiny bundle size. (NPM Minified: 1.2kB, Gzipped: 574B)
- Fastest performance among other similar packages.
- Support for both CJS and ESM.
- Typescript based code, support type declarations.
- Comprehensive test coverage.
- Support for
WeakSet&WeakMap.
$ npm install tiny-equal --save # npm
$ yarn add tiny-equal # yarn
$ pnpm install tiny-equal # pnpm// esmimportisEqualfrom'tiny-equal';isEqual({a: 1,b: {c: 1}},{a: 1,b: {c: 1}})// true// cjsconstisEqual=require('tiny-equal');isEqual({a: 1,b: {c: 1}},{a: 1,b: {c: 1}})// truetiny-equal supports various objects with ES6.
isEqual(+0,-0)// trueconstset1=newSet([1,2,3]);constset2=newSet([1,2,3]);isEqual(set1,set2)// trueconstmap1=newMap();constmap2=newMap();map1.set('a',1);map2.set('a',1);isEqual(map1,map2)// trueconstregex1=/(?:foo)/g;constregex2=/(?:foo)/g;expect(isEqual(regex1,regex2))// trueconstbuffer1=newUint8Array([1,2,3]);constbuffer2=newUint8Array([1,2,3]);expect(isEqual(buffer1,buffer2))// trueconsterr1=newError('error!');consterr2=newError('error!');expect(isEqual(err1,err2))// trueclk: ~1.88 GHz
cpu: Apple M2
runtime: node 23.2.0 (arm64-darwin)$ pnpm run benchmark:simple
+ tiny-equal x 1,123,456 ops/sec ±0.25% (98 runs sampled)
dequal x 774,522 ops/sec ±0.21% (98 runs sampled)
fast-deep-equal x 600,823 ops/sec ±1.01% (92 runs sampled)
underscore.isEqual x 255,012 ops/sec ±0.35% (97 runs sampled)
es-toolkit.isEqual x 217,138 ops/sec ±0.09% (94 runs sampled)
lodash.isEqual x 107,261 ops/sec ±0.24% (98 runs sampled)
deep-equal x 508 ops/sec ±2.77% (73 runs sampled)$ pnpm run benchmark:complex
+ tiny-equal x 139,032 ops/sec ±0.15% (97 runs sampled)
dequal x 164,526 ops/sec ±0.89% (98 runs sampled)
fast-deep-equal x 55,848 ops/sec ±4.45% (92 runs sampled)
underscore.isEqual x 85,663 ops/sec ±0.72% (95 runs sampled)
lodash.isEqual x 4,708 ops/sec ±3.68% (96 runs sampled)
es-toolkit.isEqual x 30,110 ops/sec ±0.29% (101 runs sampled)
deep-equal x 419 ops/sec ±1.72% (80 runs sampled)You can see the detailed benchmark results in benchmark.
$ pnpm run test