You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Smart caching (hash check + cache hit) for watch mode, incremental builds, and CI.
Tool
Small (~50 lines)
Medium (~100 lines)
Large (~330 lines)
XLarge (~1050 lines)
dtsx (cached)
97.81 ns
162.55 ns
376.39 ns
1.43 µs
zig-dtsx
3.43 µs (35.0x)
7.16 µs (44.0x)
22.00 µs (58.5x)
147.21 µs (103.0x)
oxc-transform
7.35 µs (75.1x)
22.66 µs (139.4x)
85.77 µs (227.9x)
558.72 µs (390.7x)
tsc
236.82 µs (2421x)
463.06 µs (2849x)
1.53 ms (4065x)
4.66 ms (3259x)
In-Process API — No Cache
Raw single-transform comparison (cache cleared every iteration).
Tool
Small (~50 lines)
Medium (~100 lines)
Large (~330 lines)
XLarge (~1050 lines)
zig-dtsx
3.37 µs
7.05 µs
21.89 µs
144.89 µs
oxc-transform
7.36 µs (2.2x)
21.91 µs (3.1x)
89.66 µs (4.1x)
560.86 µs (3.9x)
dtsx (no-cache)
15.52 µs (4.6x)
34.06 µs (4.8x)
81.96 µs (3.7x)
573.92 µs (4.0x)
tsc
169.69 µs (50.4x)
410.31 µs (58.2x)
1.03 ms (47.1x)
4.02 ms (27.7x)
Note: tsgo (@typescript/native-preview) is CLI-only — no in-process API is available yet. Each measurement includes ~40ms process spawn overhead, so it is not directly comparable to the in-process tools above. Once tsgo ships an in-process API, it will be added to the tables.
CLI — Single File
Compiled native binaries via subprocess.
Tool
Small (~50 lines)
Medium (~100 lines)
Large (~330 lines)
XLarge (~1050 lines)
zig-dtsx
2.69 ms
2.35 ms
2.28 ms
3.14 ms
oxc
17.08 ms (6.3x)
17.12 ms (7.3x)
17.95 ms (7.9x)
17.69 ms (5.6x)
dtsx
33.42 ms (12.4x)
34.09 ms (14.5x)
34.41 ms (15.1x)
36.34 ms (11.6x)
tsgo
40.53 ms (15.1x)
44.10 ms (18.8x)
44.39 ms (19.5x)
57.77 ms (18.4x)
tsc
384.25 ms (142.8x)
407.51 ms (173.4x)
418.81 ms (183.7x)
454.74 ms (144.8x)
Multi-File Project
All tools processing files in-process sequentially.