@@ -6,41 +6,82 @@ How nanofaker compares to other popular faker libraries.
66
77| Feature | nanofaker | @faker-js/faker | Laravel Faker | Chance.js | Casual |
88| ---------| -----------| -----------------| ---------------| -----------| --------|
9- | ** Bundle Size** | ~ 50KB | ~ 200-500KB | N/A (PHP) | ~ 100KB | ~ 80KB |
9+ | ** Published Size** | 174 KB | 4.29 MB | N/A (PHP) | 2.08 MB | 408 KB |
10+ | ** File Count** | 38 files | 231 files | N/A | 164 files | 75 files |
1011| ** Performance** | ⚡️ Fastest | Medium | N/A | Medium | Medium |
1112| ** TypeScript** | ✅ Native | ✅ Yes | ❌ No (PHP) | ⚠️ Types available | ⚠️ Types available |
12- | ** Locales** | 20 (complete) | 70+ (partial) | 50+ | Limited | Limited |
13+ | ** Locales** | 26 (complete) | 70+ (partial) | 50+ | Limited | Limited |
1314| ** Locale Coverage** | 100% | 30-80% | Varies | N/A | N/A |
1415| ** CLI Tool** | ✅ Yes | ❌ No | ❌ No | ❌ No | ❌ No |
1516| ** Tree Shaking** | ✅ Yes | ⚠️ Partial | N/A | ❌ No | ❌ No |
1617| ** Seeding** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No |
1718| ** Active Development** | ✅ Yes | ✅ Yes | ✅ Yes | ⚠️ Slow | ❌ Archived |
1819
19- ## Bundle Size Comparison
20+ ## Package Size Comparison
2021
21- Smaller bundles = faster loading times and better user experience.
22+ Smaller packages = faster installation and better user experience.
23+
24+ ### Published Package Size (npm download)
2225
2326```
24- nanofaker: ~50KB ████
25- @faker-js/faker: ~350KB ██████████████████████████████████████
26- Chance.js: ~100KB ████████████
27- Casual: ~80KB ██████████
27+ nanofaker: 174KB ████
28+ Casual: 408KB ████████████
29+ @ngneat/falso: 1.16MB ████████████████████████████████████████
30+ Chance.js: 2.08MB ████████████████████████████████████████████████████████████████████
31+ @faker-js/faker: 4.29MB ████████████████████████████████████████████████████████████████████████████████████████████████████████████
2832```
2933
30- ** Impact** : nanofaker is ** 7x smaller** than @faker-js/faker .
34+ ** Impact** : nanofaker is ** 24.7x smaller** than @faker-js/faker (saves 4.12 MB, 96% reduction).
35+
36+ ### File Count
37+
38+ ```
39+ nanofaker: 38 files ████
40+ Casual: 75 files ████████
41+ Chance.js: 164 files ███████████████████
42+ @faker-js/faker: 231 files ████████████████████████████
43+ @ngneat/falso: 399 files ████████████████████████████████████████████████
44+ ```
45+
46+ ** Impact** : nanofaker has ** 6.1x fewer files** than @faker-js/faker .
3147
3248### Real-World Impact
3349
34- For a typical web application:
50+ #### Installation Time
3551
36- ``` ts
37- // Bundle size impact
38- import { faker } from ' @faker-js/faker' // +350KB
39- import { faker } from ' nanofaker' // +50KB
52+ ``` bash
53+ # @faker-js/faker
54+ npm install @faker-js/faker # Downloads 4.29 MB
55+ Time: ~ 2-3 seconds
56+
57+ # nanofaker
58+ npm install nanofaker # Downloads 174 KB
59+ Time: ~ 0.3 seconds
4060
41- // Savings: 300KB = Faster page loads!
61+ # Savings: 4.12 MB (96% reduction), ~2.5 seconds faster
4262```
4363
64+ #### CI/CD Bandwidth
65+
66+ For projects with frequent builds:
67+
68+ ``` bash
69+ # 100 CI runs per day
70+ @faker-js/faker: 100 × 4.29 MB = 429 MB/day
71+ nanofaker: 100 × 174 KB = 17.4 MB/day
72+
73+ # Monthly bandwidth savings: ~12.3 GB (96% reduction)
74+ ```
75+
76+ #### Development Experience
77+
78+ Smaller package means:
79+ - ✅ Faster ` npm install ` / ` bun install `
80+ - ✅ Faster module resolution
81+ - ✅ Less disk space usage
82+ - ✅ Faster Docker image builds
83+ - ✅ Better tree-shaking potential
84+
4485## Performance Benchmarks
4586
4687All benchmarks run on the same machine generating 10,000 items.
0 commit comments