The Internals of Deno
  • The Internals of Deno
  • Audience
  • Reviews
  • Translations
  • Formats
  • Contents
  • Chapter 1 - INTRODUCTION
    • 1.0 Cover page
    • 1.1 Introduction
    • 1.2 History of Deno
    • 1.3 About Deno
    • 1.4 Releases
    • 1.5 The Deno Company
    • 1.6 Deno's source
    • 1.7 What's next
  • Chapter 2 - ARCHITECTURE
    • 2.0 Cover page
    • 2.1 Architecture
    • 2.2 Overall architecture
    • 2.3 Programming Languages
    • 2.4 Deno components
    • 2.5 OPs
    • 2.6 TSC/SWC
    • 2.7 Rusty_v8
    • 2.8 Tokio
    • 2.9 V8
    • 2.10 What's next
  • CHAPTER 3 - THREADING MODEL
    • 3.0 Cover page
    • 3.1 Threading model
    • 3.2 Default threading model
    • 3.3 Asynchronous green threads
    • 3.4 What's next
  • CHAPTER 4 - BRIDGE
    • 4.0 Cover page
    • 4.1 The bridge
    • 4.2 Print
    • 4.3 Encode and decode
    • 4.4 What's next
  • CHAPTER 5 - FOUNDATIONS
    • 5.0 Cover page
    • 5.1 Hello world program
    • 5.2 Basic hello world
    • 5.3 Main program of Deno
    • 5.4 Module Specifier
    • 5.5 CLI Factory
    • 5.6 Permissions
    • 5.7 Main Worker
    • 5.8 JS Runtime
    • 5.9 Run main module
    • 5.10 Load module
    • 5.11 Recursive module loading
    • 5.12 Module graphs
    • 5.13 File fetching
    • 5.14 Transpile
    • 5.15 Register / compile module
    • 5.16 Instantiate module
    • 5.17 Evaluate module
    • 5.18 What's next
  • CHAPTER 6 - IMPORTS AND OPS
    • 6.0 Cover page
    • 6.1 Imports and ops
    • 6.2 Hello world program v2
    • 6.3 Module graph with imports
    • 6.4 Transpile
    • 6.5 Registration and instantiation
    • 6.6 Registration of ops
    • 6.7 Evaluate module
    • 6.8 Sync OPs
    • 6.9 Debug logs
    • 6.10 What's next
  • CHAPTER 7 - LOCAL AND SESSION STORAGE
    • 7.0 Cover page
    • 7.1 Introduction
    • 7.2 Local storage
    • 7.3 Session storage
    • 7.4 What's next
  • AFTERWORD
    • Afterword
Powered by GitBook
On this page
  1. Chapter 2 - ARCHITECTURE

2.6 TSC/SWC

Previous2.5 OPsNext2.7 Rusty_v8

Last updated 10 months ago

Google's V8 engine is exclusively designed to run JavaScript code and does not support TypeScript, a superset of JavaScript that includes additional type information. To address this, TypeScript code must be translated into JavaScript through a transformation process, enabling the V8 engine to execute it.

Deno, however, utilizes a combination of tools - the TypeScript Compiler (TSC) and the Super-fast Web Compiler (SWC) - to handle both TypeScript and JavaScript files. When type-checking is required, Deno employs Microsoft's TSC compiler, which converts TypeScript to JavaScript and performs type error checking. Otherwise, Deno leverages the high-performance SWC compiler for rapid transpilation. This preference is due to TSC's slower performance, being implemented in JavaScript, compared to SWC's speed and efficiency.

SWC, built with Rust, is a fast TypeScript/JavaScript compiler that takes in modern files featuring async-await and generates browser-compatible JavaScript code. This transformation ensures code compatibility across various browsers with different levels of support for newer language features. Deno utilizes SWC to convert TypeScript files to JavaScript seamlessly. With its compatibility with the latest ECMAScript specifications, Deno eliminates the need to convert JavaScript files for compatibility reasons. By default, SWC selectively processes TypeScript files, leaving JavaScript files untouched unless explicitly requested to modify them.

For further information on SWC, visit their official website at , which provides detailed insights into the compiler's features, functionality, and optimal usage.

https://swc.rs/