TSByte ⚡
The High-Performance Native TypeScript Compiler for the JVM.
Compile TypeScript directly to native JVM bytecode and executable JARs — without Node.js, V8, Kotlin, or Gradle.
🚀 What is TSByte?
TSByte is a cutting-edge compiler written in Rust that takes standard TypeScript source files and compiles them directly into Java .class files and standalone, executable .jar archives.
Traditional TypeScript execution requires a heavy runtime environment like Node.js, Bun, or Deno. TSByte bypasses interpreter runtimes entirely, translating your TypeScript syntax directly into native, optimized JVM bytecode. You keep the standard TypeScript developer experience — node_modules, type checking, and modern ES features — while gaining the legendary performance, reliability, and security of the JVM ecosystem.
⚡ Performance Comparison
| Metric | Node.js (V8) | JVM + Kotlin / Java | TSByte (Compiled TS) |
|---|---|---|---|
| Startup / Cold Start | Slow (50ms+) | Slow (150ms+) | Ultra-Fast (3ms - 5ms) |
| Memory Footprint | Large (30MB+) | Large (80MB+) | Extremely Low (8MB) |
| Deployment Package | node_modules (100MB+) |
Heavy Fat JAR (50MB+) | Standalone JAR (< 100KB) |
| Runtime Interpreter | Required (Node/V8) | Required (JRE) | Native JVM Bytecode |
💡 Key Use Cases (Where TSByte Shines)
TSByte is exceptionally well-suited for high-throughput, modern infrastructure where speed, portability, and security are paramount:
- ⚡ High-Performance Serverless & Microservices: Achieve near-instant millisecond cold starts on AWS Lambda, Google Cloud Functions, or Kubernetes.
- 🛠️ Zero-Dependency CLI Tools: Compile your TypeScript command-line utilities into a single, highly portable
.jarfile that runs anywhere Java is installed. - 🔒 Secure Enterprise Environments: Run secure TypeScript programs natively inside highly locked-down corporate JVM networks without installing JavaScript runtime engines.
- 📊 Distributed Data Processing: Write type-safe map/reduce, stream filters, or ETL pipelines in TypeScript and run them natively on high-performance JVM data engines (like Apache Spark, Flink, or Hadoop).
- 📦 Embedded Scripting: Embed compiled TypeScript routines inside Java desktop, backend, or Android systems as precompiled library classes.
📦 Installation & Quick Start
Get up and running in seconds with cargo:
# Install the TSByte compiler globally
# Create a new TSByte project template
# Compile TypeScript directly to an executable JAR and execute it!
⚙️ How It Works Under the Hood
TypeScript Source → TSByte Compiler → JVM Bytecode → Executable JAR
(your code) (Rust) (.class) (java -jar)
- Write standard TypeScript: Fully compatible with standard ES2020 types and syntax.
- AST Parsing: TSByte parses your source code and builds an optimized Middle Intermediate Representation (MIR) and High Intermediate Representation (HIR) using SWC.
- Native Bytecode Generation: Generates standard Java 8+
.classfiles directly, executing native closures, arrow functions, and class declarations without any middle-step Kotlin or Java transpilation. - Embedded Zero-Dependency Runtime: Packages everything — including a specialized JVM-backed, precompiled runtime helper package embedded directly in the compiler's binary — into a standard, lightweight, standalone executable JAR.
🛠️ CLI Reference
tsbyte init [dir]
Scaffold a standard TypeScript workspace preconfigured for JVM target compilations.
- Generates a clean workspace:
package.json,tsconfig.json,src/main.ts, and gitignore files. - Installs dependencies and sets up scripts.
tsbyte compile <file>
Emit only JVM .class files to a target build directory.
Options:
-o, --output <dir>— Output directory (default:./build)-p, --package <pkg>— Target JVM package path (default:com.tsbyte.app)
tsbyte jar <file>
Compile TypeScript to a standalone, executable JAR archive.
Options:
-o, --output <path>— Output.jarpath (default:./output.jar)-p, --package <pkg>— Target JVM package path (default:com.tsbyte.app)
🎯 Supported Standard Library & APIs
TSByte features a robust, zero-dependency, JVM-native implementation of standard ES built-ins, offering fully compliant reference equality and performance benefits:
| Built-in | Description | Status |
|---|---|---|
Map |
Insertion-ordered, custom key/value hash map mapping JS semantics. | ✅ |
Set |
Insertion-ordered unique item collection. | ✅ |
WeakMap |
Weak-referencing dynamic key-value map backing JVM WeakHashMap. |
✅ |
WeakSet |
Weak-referencing membership collection. | ✅ |
Date |
Epoch-backed UTC millisecond timestamps, parse wrappers, and getters/setters. | ✅ |
RegExp |
Dynamic RegExp engine matching captures, matches, indices, and .exec() / .test(). |
✅ |
JSON |
Native high-performance stringifier and parser. | ✅ |
fetch |
Native HTTP Client wrapping JDK's high-performance HttpClient with full Response support! |
✅ |
Object Identity Semantics
Unlike JVM structural collections, standard TsObject instances feature Reference Equality identity semantics (equals and hashCode delegate to standard reference addresses), perfectly adhering to ECMAScript standard behaviors when tracking object instances in collections.
📂 Project Architecture
src/
├── swc_frontend/ # SWC AST parsing — TS source → AST
├── codegen/
│ ├── compiler/
│ │ ├── bytecode_emitter/ # JVM bytecode generation
│ │ ├── ir_builder/ # AST to HIR/MIR converter
│ │ ├── type_checker/ # Static type validation
│ │ ├── module_graph.rs # Relative imports/exports path resolver
│ │ ├── runtime_gen.rs # Embedded Java runtime class bundler
│ │ └── runtime_bytes.rs # Embedded runtime .class bytes
│ ├── jar.rs # Executable JAR packager
│ └── mod.rs # CodeGenerator driver
├── cli/
│ └── init.rs # Project scaffolding template
├── error.rs # Pretty-printed diagnostics
├── lib.rs # Public programmatic compiler library API
└── main.rs # CLI entrypoint
🤝 Contributing
We welcome contributions of all kinds! Please read our contributing guide to get started.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
Distributed under the MIT License. See LICENSE for more information.