GitXplorerGitXplorer
A

fastest-deep-clone-json

public
2 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
37db9675772f79c44143f9d14ba01ad7b6843698

new clones

AAlessioGr committed 6 months ago
Verified
1e2c615f5e6bebae12269a7822bc8069faa12785

add rfdc

AAlessioGr committed 6 months ago
Verified
4aacb7a252d12254ee2787a35f15be2399829ac6

add clone3

AAlessioGr committed 6 months ago
Verified
87ba59ce32edadedfcb45b22d624bb8eb8fd74b2

docs: update readme

AAlessioGr committed 6 months ago
Verified
9aebfaed5cdbf2007bb0ed2155d3f59fae4f4d0d

chore: add benchmark.js benchmark

AAlessioGr committed 6 months ago
Verified
5b835938d8439c4222b6ed6b32d6c97b614969e5

chore: add benchmarks

AAlessioGr committed 6 months ago

README

The README file for this repository.

This is the fastest deep-clone implementation for JSON objects - faster than structuredClone, JSON.parse(JSON.stringify(obj)) and other implementations, according to www.measurethat.net.

This package is ESM-only.

  • Dependencies: 0
  • Bundle size (minified and gzipped): 316 Bytes
  • Module count: 1

It avoids recursion in favor of a stack, in order to keep the memory usage low.

Performance comparison

Method Ops/sec
This package (iterative deep clone) 3.560.061
recursive deep clone 3.476.448
fastest-json-copy v2 1.523.427
JSON.stringify 1.465.516
fastest-json-copy v1 1.320.249
jsondiffpatch.clone 1.245.459
structuredClone 789.100

Run it yourself: https://www.measurethat.net/Benchmarks/ShowResult/534839 (this package is deepCopyObjectIterative in that comparison).

When running the local benchmark, the results are very different and jsondiffpatch.clone becomes the fastest.

Installation

pnpm install fastest-deep-clone-json

or

npm install fastest-deep-clone-json

Usage

import { deepCloneJson } from 'fastest-deep-clone-json';

const obj = { a: 1, b: { c: 2 } };

const cloned = deepCloneJson(obj);

console.log(cloned); // { a: 1, b: { c: 2 } }

This library will only work with JSON-serialized objects. It does not handle data types like Date, Map, Set, BigInt, Symbol, Function etc etc. The goal is to provide the fastest deep-clone implementation for JSON objects.