twitst4tz

twitter statistics web application
Log | Files | Refs | README | LICENSE

README.md (3323B)


      1 # fast-deep-equal
      2 The fastest deep equal with ES6 Map, Set and Typed arrays support.
      3 
      4 [![Build Status](https://travis-ci.org/epoberezkin/fast-deep-equal.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-deep-equal)
      5 [![npm](https://img.shields.io/npm/v/fast-deep-equal.svg)](https://www.npmjs.com/package/fast-deep-equal)
      6 [![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-deep-equal/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-deep-equal?branch=master)
      7 
      8 
      9 ## Install
     10 
     11 ```bash
     12 npm install fast-deep-equal
     13 ```
     14 
     15 
     16 ## Features
     17 
     18 - ES5 compatible
     19 - works in node.js (8+) and browsers (IE9+)
     20 - checks equality of Date and RegExp objects by value.
     21 
     22 ES6 equal (`require('fast-deep-equal/es6')`) also supports:
     23 - Maps
     24 - Sets
     25 - Typed arrays
     26 
     27 
     28 ## Usage
     29 
     30 ```javascript
     31 var equal = require('fast-deep-equal');
     32 console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true
     33 ```
     34 
     35 To support ES6 Maps, Sets and Typed arrays equality use:
     36 
     37 ```javascript
     38 var equal = require('fast-deep-equal/es6');
     39 console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true
     40 ```
     41 
     42 To use with React (avoiding the traversal of React elements' _owner
     43 property that contains circular references and is not needed when
     44 comparing the elements - borrowed from [react-fast-compare](https://github.com/FormidableLabs/react-fast-compare)):
     45 
     46 ```javascript
     47 var equal = require('fast-deep-equal/react');
     48 var equal = require('fast-deep-equal/es6/react');
     49 ```
     50 
     51 
     52 ## Performance benchmark
     53 
     54 Node.js v12.6.0:
     55 
     56 ```
     57 fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled)
     58 fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled)
     59 fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled)
     60 nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled)
     61 shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled)
     62 underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled)
     63 lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled)
     64 deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled)
     65 deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled)
     66 ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled)
     67 util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled)
     68 assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled)
     69 
     70 The fastest is fast-deep-equal
     71 ```
     72 
     73 To run benchmark (requires node.js 6+):
     74 
     75 ```bash
     76 npm run benchmark
     77 ```
     78 
     79 __Please note__: this benchmark runs against the available test cases. To choose the most performant library for your application, it is recommended to benchmark against your data and to NOT expect this benchmark to reflect the performance difference in your application.
     80 
     81 
     82 ## Enterprise support
     83 
     84 fast-deep-equal package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-deep-equal?utm_source=npm-fast-deep-equal&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers.
     85 
     86 
     87 ## Security contact
     88 
     89 To report a security vulnerability, please use the
     90 [Tidelift security contact](https://tidelift.com/security).
     91 Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues.
     92 
     93 
     94 ## License
     95 
     96 [MIT](https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE)