TypeScript, compiled.
An LLVM-based ahead-of-time compiler that turns TypeScript into standalone native executables. No Node.js required.
ts-aot app.ts -o app && ./app What you get
Native Binaries
Single executable output. No runtime dependencies. Compile .ts, .tsx, .js, .jsx to standalone binaries.
Node.js Compatible
32 built-in modules: fs, http, net, crypto, streams, and more. 11 npm packages verified (semver, uuid, nanoid, etc.).
LLVM Optimized
Full O0-O3 pipeline with type-driven codegen, NaN-boxing, escape analysis, and flat inline-slot objects.
Real TypeScript
Classes, generics, async/await, decorators, generators, iterators, destructuring, and more. Not a subset.
Performance
AOT compilation eliminates JIT warmup. ts-aot shines in cold-start and recursive compute workloads.
Cold Start
2x faster startup -- no JIT warmup needed
Recursive fib(35)
1.7x faster -- AOT excels at recursive calls
V8's JIT excels at long-running array and string operations. See limitations for a full comparison.
How it works
A hand-written C++ parser feeds into type-aware analysis, SSA-based HIR with 8 optimization passes, then LLVM 18 for native code generation. The result links against a custom C++ runtime with mark-sweep GC, ICU strings, and libuv async I/O.
Best for
Built by Claude
ts-aot is written entirely by Claude, Anthropic's AI assistant. The compiler, runtime, extension system, test suites, and this website were all generated through conversation with a human collaborator.
That means ~100,000 lines of C++20, a hand-written recursive descent parser, a custom mark-sweep garbage collector with generational nursery, 8 SSA optimization passes, 32 Node.js API modules, and 560+ passing tests -- all produced by an AI pair-programming with Claude Code.
The project is an experiment in what AI-assisted software engineering can produce today. Every line of code was written by Claude, with human direction on architecture and priorities.
Ready to try it?
Compile your first TypeScript program to a native executable.