Real-world performance comparisons between tidy-ts and other data manipulation libraries. See how tidy-ts performs across different operations and dataset sizes.
Rust + WASM: tidy-ts achieves near-native performance through Rust's zero-cost abstractions and WASM's direct memory access, often performing within 2-3x of native libraries while maintaining TypeScript's developer experience.
TS / JS | TS / JS | Python | Python | R | |
---|---|---|---|---|---|
Operation | tidy-ts | Arquero | Pandas | Polars | dplyr |
creation (ms) | 116(1×) | 38(0.3×) | 757(6.5×) | 10(0.1×) | 0(0×) |
filter (ms) | 13(1×) | 12(0.9×) | 3(0.2×) | 1(0.04×) | 6(0.4×) |
mutate (ms) | 2(1×) | 3(1.7×) | 3(1.7×) | 0(0.05×) | 1(0.4×) |
sort (ms) | 119(1×) | 343(2.9×) | 212(1.8×) | 56(0.5×) | 26(0.2×) |
distinct (ms) | 108(1×) | 616(5.7×) | 55(0.5×) | 15(0.1×) | 16(0.2×) |
innerJoin (ms) | 66(1×) | 296(4.5×) | 47(0.7×) | 15(0.2×) | 490(7.4×) |
leftJoin (ms) | 50(1×) | 400(8×) | 56(1.1×) | 17(0.3×) | 912(18.2×) |
outerJoin (ms) | 99(1×) | 1245(12.6×) | 66(0.7×) | 33(0.3×) | 807(8.2×) |
pivotLonger (ms) | 246(1×) | 287(1.2×) | 64(0.3×) | 9(0.04×) | 39(0.2×) |
pivotWider (ms) | 4(1×) | 4(1×) | 9(2.5×) | 4(1×) | 3(0.8×) |
summarize (ms) | 157(1×) | 79(0.5×) | 8(0.05×) | 2(0.02×) | 8(0.05×) |