Skip to content
stdlib
Esc
↑↓navigate↵open⌘Jpreview
On this page

Introduction

Fast & Memory efficient

How we did it.

Pattern matching with type-safe exhaustiveness checks, inspired by ts-pattern:

ops/s · B/op stdlib ts-pattern
Per call 425M · 0 B 6.1M · 1.7 KB
ops/s stdlib ts-pattern
Per call 785M 13M

Array.map, 1000 items

ops/s · B/op stdlib remeda immer mutative
Unchanged 5.3M · 2 B 254K · 8.2 KB 2.5K · 148 KB 3.9K · 66 KB
Changed 1.2M · 8.2 KB 245K · 8.2 KB 2.4K · 158 KB 4.1K · 75 KB
ops/s stdlib remeda immer mutative
Unchanged 4.7M 1.2M 3.8K 13K
Changed 816K 914K 3.0K 13K

Object.setPath

ops/s · B/op stdlib remeda immer mutative
Unchanged 434M · 0 B 1.8M · 1.0 KB 1.5M · 2.8 KB 2.6M · 2.7 KB
Changed 33M · 200 B 1.8M · 1.0 KB 669K · 3.8 KB 1.8M · 3.5 KB
ops/s stdlib remeda immer mutative
Unchanged 691M 3.6M 1.8M 2.2M
Changed 30M 3.7M 225K 1.8M

Object.merge

ops/s · B/op stdlib remeda
Unchanged 328M · 0 B 23M · 176 B
Changed 65M · 72 B 24M · 176 B
ops/s stdlib remeda
Unchanged 929M 19M
Changed 80M 18M

Unchanged/Changed: Our functions return the original input when nothing changed:

const a = [1, 2, 3]
const b = Array.map(a, (i) => i)
a === b // true