Arkhe Bundle Size
Real numbers. No marketing fluff. Data auto-generated on Feb 20, 2026.
TL;DR
Pithos is smallest or comparable (±10%) in 57% of utilities. Always smaller than Lodash. Competitive with es-toolkit and Radashi.
Arkhe Utilities Comparison
Individual function sizes, minified + gzipped.
| Utility | Pithosv1.1.0 | Lodashv4.17.23 | es-toolkitv1.44.0 | Remedav2.33.4 | Radashiv12.7.1 |
|---|---|---|---|---|---|
camelCase | 306 B baseline | 2.93 kB +880% | 274 B -10% | 477 B +56% | 271 B -11% |
capitalize | 121 B baseline | 1.42 kB +1100% | 107 B -12% | 248 B +105% | 140 B +16% |
chunk | 200 B baseline | 1.51 kB +671% | 208 B +4% | 384 B +92% | 123 B -38% |
clamp | 126 B baseline | 1.04 kB +744% | 95 B -25% | 239 B +90% | 128 B +2% |
countBy | 129 B baseline | 6.44 kB +5012% | 129 B = | 293 B +127% | 116 B -10% |
debounce | 267 B baseline | 1.38 kB +431% | 325 B +22% | 446 B +67% | 189 B -29% |
deepClone | 492 B baseline | 5.29 kB +1002% | 1.10 kB +128% | 393 B -20% | 492 B = |
difference | 215 B baseline | 3.16 kB +1406% | 101 B -53% | 724 B +237% | 163 B -24% |
flip | 78 B baseline | 4.67 kB +6036% | 95 B +22% | - | 78 B = |
get | 581 B baseline | 2.62 kB +362% | - | 240 B -59% | 169 B -71% |
groupBy | 126 B baseline | 6.44 kB +5136% | 147 B +17% | 307 B +144% | 133 B +6% |
inRange | 103 B baseline | 1.10 kB +994% | 151 B +47% | - | 145 B +41% |
intersection | 233 B baseline | 2.99 kB +1215% | 102 B -56% | 739 B +217% | 138 B -41% |
invert | 123 B baseline | 2.03 kB +1593% | 128 B +4% | 241 B +96% | 109 B -11% |
isArray | 59 B baseline | 337 B +471% | - | 70 B +19% | 53 B -10% |
isBoolean | 69 B baseline | 692 B +903% | 81 B +17% | 81 B +17% | 81 B +17% |
isDate | 66 B baseline | 836 B +1167% | 77 B +17% | 77 B +17% | 123 B +86% |
isEmpty | 163 B baseline | 2.24 kB +1310% | - | 123 B -25% | 244 B +50% |
isEqual | 484 B baseline | 4.82 kB +920% | 1.22 kB +159% | 513 B +6% | 261 B -46% |
isError | 67 B baseline | 890 B +1228% | 78 B +16% | 78 B +16% | 124 B +85% |
isFunction | 70 B baseline | 736 B +951% | 76 B +9% | 70 B = | 76 B +9% |
isNil | 57 B baseline | 348 B +511% | 69 B +21% | 72 B +26% | 72 B +26% |
isNumber | 68 B baseline | 688 B +912% | 93 B +37% | 92 B +35% | 92 B +35% |
isObject | 93 B baseline | 377 B +305% | - | - | 120 B +29% |
isPlainObject | 132 B baseline | 823 B +523% | 170 B +29% | 134 B +2% | 139 B +5% |
isString | 68 B baseline | 703 B +934% | 80 B +18% | 80 B +18% | 80 B +18% |
isSymbol | 68 B baseline | 687 B +910% | 80 B +18% | 80 B +18% | 80 B +18% |
isUndefined | 66 B baseline | 355 B +438% | 78 B +18% | - | 80 B +21% |
kebabCase | 186 B baseline | 2.43 kB +1237% | 198 B +6% | 496 B +167% | 257 B +38% |
keyBy | 109 B baseline | 6.42 kB +5928% | 120 B +10% | 250 B +129% | 108 B -1% |
mapKeys | 137 B baseline | 6.25 kB +4574% | 138 B +1% | 251 B +83% | 116 B -15% |
mapValues | 138 B baseline | 6.25 kB +4541% | 138 B = | 248 B +80% | 115 B -17% |
maxBy | 141 B baseline | 6.14 kB +4357% | 145 B +3% | - | 125 B -11% |
minBy | 140 B baseline | 6.14 kB +4389% | 145 B +4% | - | 124 B -11% |
noop | 52 B baseline | 337 B +548% | 53 B +2% | 78 B +50% | 53 B +2% |
omit | 98 B baseline | 6.91 kB +7115% | 117 B +19% | 288 B +194% | 117 B +19% |
omitBy | 138 B baseline | 6.63 kB +4822% | 140 B +1% | 254 B +84% | 153 B +11% |
once | 96 B baseline | 1.16 kB +1135% | 100 B +4% | 92 B -4% | 144 B +50% |
orderBy | 211 B baseline | 6.64 kB +3122% | 220 B +4% | 358 B +70% | 135 B -36% |
partition | 132 B baseline | 6.35 kB +4823% | 132 B = | 265 B +101% | 109 B -17% |
pick | 130 B baseline | 3.79 kB +2885% | 132 B +2% | 240 B +85% | 223 B +72% |
pickBy | 141 B baseline | 6.54 kB +4649% | 140 B -1% | 251 B +78% | 153 B +9% |
pipe | 164 B baseline | 2.71 kB +1590% | 288 B +76% | 529 B +223% | 104 B -37% |
random | 125 B baseline | 1.50 kB +1126% | 168 B +34% | 180 B +44% | 92 B -26% |
range | 200 B baseline | 1.46 kB +647% | 215 B +8% | 235 B +18% | 150 B -25% |
sample | 106 B baseline | 1.99 kB +1823% | 103 B -3% | 332 B +213% | 141 B +33% |
set | 1002 B baseline | 2.94 kB +201% | - | 222 B -78% | 460 B -54% |
shuffle | 146 B baseline | 2.06 kB +1344% | 145 B -1% | 273 B +87% | 165 B +13% |
snakeCase | 186 B baseline | 2.43 kB +1237% | 197 B +6% | 496 B +167% | 290 B +56% |
throttle | 280 B baseline | 1.44 kB +427% | 427 B +53% | - | 201 B -28% |
times | 191 B baseline | 1.20 kB +545% | 280 B +47% | 275 B +44% | 169 B -12% |
union | 139 B baseline | 3.21 kB +2265% | 98 B -29% | - | 144 B +4% |
unionBy | 151 B baseline | 7.01 kB +4654% | 170 B +13% | - | 144 B -5% |
uniq | 204 B baseline | 2.45 kB +1127% | 74 B -64% | - | 144 B -29% |
uniqBy | 128 B baseline | 6.45 kB +5058% | 148 B +16% | - | 144 B +13% |
uniqWith | 122 B baseline | 2.46 kB +1967% | 133 B +9% | - | 144 B +18% |
unzip | 223 B baseline | 1.04 kB +375% | 157 B -30% | - | 163 B -27% |
zip | 179 B baseline | 1.80 kB +929% | 161 B -10% | 279 B +56% | 174 B -3% |
zipWith | 156 B baseline | 1.88 kB +1133% | 172 B +10% | 267 B +71% | 174 B +12% |
defaults | 151 B baseline | 2.77 kB +1777% | - | - | 231 B +53% |
defaultTo | 110 B baseline | 362 B +229% | 96 B -13% | 221 B +101% | - |
differenceBy | 172 B baseline | 6.95 kB +4040% | 117 B -32% | 673 B +291% | - |
differenceWith | 100 B baseline | 3.20 kB +3181% | 101 B +1% | 673 B +573% | - |
drop | 119 B baseline | 1.18 kB +916% | 89 B -25% | 300 B +152% | - |
dropRight | 136 B baseline | 1.19 kB +793% | 105 B -23% | 243 B +79% | - |
dropRightWhile | 147 B baseline | 6.23 kB +4238% | 130 B -12% | 259 B +76% | - |
dropWhile | 113 B baseline | 6.22 kB +5538% | 119 B +5% | 250 B +121% | - |
escape | 147 B baseline | 996 B +578% | 136 B -7% | - | 145 B -1% |
findLast | 112 B baseline | 6.60 kB +5936% | - | 248 B +121% | - |
findLastIndex | 118 B baseline | 6.52 kB +5558% | - | 255 B +116% | - |
intersectionBy | 306 B baseline | 6.90 kB +2210% | 156 B -49% | 670 B +119% | - |
intersectionWith | 327 B baseline | 3.03 kB +850% | 101 B -69% | 670 B +105% | - |
isMap | 65 B baseline | 1.53 kB +2317% | 85 B +31% | - | 122 B +88% |
isNull | 58 B baseline | 348 B +500% | 69 B +19% | - | - |
isPromise | 103 B baseline | - | - | 80 B -22% | 100 B -3% |
isSet | 65 B baseline | 1.53 kB +2317% | 85 B +31% | - | 122 B +88% |
memoize | 245 B baseline | 2.03 kB +747% | 165 B -33% | - | 227 B -7% |
mergeDeep | - | 4.75 kB | 320 B | 334 B | - |
reverse | 74 B baseline | 377 B +409% | 80 B +8% | 219 B +196% | - |
sampleSize | 222 B baseline | 2.57 kB +1087% | 311 B +40% | 332 B +50% | - |
take | 132 B baseline | 1.18 kB +812% | 233 B +77% | 291 B +120% | - |
takeRight | 133 B baseline | 1.19 kB +814% | 251 B +89% | 240 B +80% | - |
takeRightWhile | 128 B baseline | 6.23 kB +4882% | 128 B = | 259 B +102% | - |
takeWhile | 120 B baseline | 6.22 kB +5208% | 130 B +8% | 258 B +115% | - |
template | 207 B baseline | 4.43 kB +2092% | 1.35 kB +566% | - | 148 B -29% |
toggle | 114 B baseline | 3.50 kB +3042% | - | - | 195 B +71% |
truncate | 291 B baseline | 2.37 kB +733% | - | 321 B +10% | - |
uniqueId | 82 B baseline | 889 B +984% | 95 B +16% | - | 244 B +198% |
xor | 183 B baseline | 3.50 kB +1857% | 151 B -17% | - | - |
after | 162 B baseline | 1.13 kB +612% | 153 B -6% | - | - |
before | 166 B baseline | 1.14 kB +606% | 153 B -8% | - | - |
castMapping | 103 B baseline | 7.69 kB +7543% | - | - | 112 B +9% |
curry | 205 B baseline | 4.71 kB +2251% | 135 B -34% | - | - |
deburr | 335 B baseline | 1.58 kB +382% | 323 B -4% | - | - |
defaultsDeep | 305 B baseline | 4.83 kB +1520% | 522 B +71% | - | - |
defer | 130 B baseline | 1.58 kB +1141% | 128 B -2% | - | - |
fill | 183 B baseline | 1.50 kB +742% | 143 B -22% | - | - |
findKey | 127 B baseline | 6.18 kB +4886% | 99 B -22% | - | - |
flowRight | 126 B baseline | 2.71 kB +2103% | 161 B +28% | - | - |
has | 98 B baseline | 2.90 kB +2926% | - | - | - |
isArrayBuffer | 73 B baseline | 842 B +1053% | 92 B +26% | - | - |
isBigint | 68 B baseline | - | - | 83 B +22% | 83 B +22% |
isPrimitive | 97 B baseline | - | 103 B +6% | - | 103 B +6% |
lowerCase | 578 B baseline | 2.43 kB +330% | 195 B -66% | - | - |
lowerFirst | 111 B baseline | 1.40 kB +1187% | 100 B -10% | - | - |
mergeWith | 231 B baseline | 4.75 kB +2008% | 330 B +43% | - | - |
negate | 73 B baseline | 472 B +547% | 75 B +3% | - | - |
pascalCase | 355 B baseline | - | 231 B -35% | - | 171 B -52% |
sleep | 134 B baseline | - | 260 B +94% | - | 91 B -32% |
titleCase | 126 B baseline | - | - | 470 B +273% | 210 B +67% |
toArray | 78 B baseline | 398 B +410% | - | - | 88 B +13% |
toNumber | 139 B baseline | 971 B +599% | - | - | 145 B +4% |
unescape | 163 B baseline | 1007 B +518% | 158 B -3% | - | - |
unionWith | 135 B baseline | 3.25 kB +2365% | 155 B +15% | - | - |
upperCase | 577 B baseline | 2.43 kB +331% | 232 B -60% | - | - |
words | 220 B baseline | 1.59 kB +640% | 163 B -26% | - | - |
Why Pithos is Competitive
Modern JavaScript target. Pithos targets ES2020+. No polyfills, no legacy compatibility layers.
Pure functions. Each utility is a standalone function. No classes, no prototypes, no hidden dependencies.
True tree-shaking. Import what you use, ship what you import:
// Only chunk ends up in your bundle
import { chunk } from "pithos/arkhe/array/chunk";
Why Lodash is Larger
Lodash pioneered the JavaScript utility ecosystem and remains widely used. Its larger bundle size comes from a deliberate choice: broad compatibility across environments, including ES5 and older runtimes. Every function carries internal utilities and polyfills to ensure consistent behavior everywhere.
That legacy support has a cost. Lodash is 10-50x larger than Pithos for most utilities. Not because it's poorly written, but because it solves a different problem: universal compatibility vs. modern-first.
es-toolkit
es-toolkit is a modern Lodash replacement with good tree-shaking. Pithos is generally 10-30% smaller on individual functions.
es-toolkit/compat is their Lodash compatibility layer, significantly larger due to legacy API support.
Reproduce These Results
Want to verify these results? See how to reproduce our data.
Related
- Arkhe vs Lodash — Full comparison: philosophy, API, migration
- Taphos — Bundle Size — Deprecated utilities size comparison
- Equivalence Table — Full library equivalence across all modules
- Comparison Overview — When to use each Pithos module