Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Why Deno?

The Lykn toolchain uses Deno exclusively. The reasons align with Lykn’s own design principles:

ESM-native — all code is ES modules. No require, no CommonJS, no .mjs vs .js. This matches Lykn’s ESM-only compilation (Ch 16).

Single binarydeno is one executable. No npm install for the toolchain. Install Deno, clone lykn, build with cargo — done.

Permissions — network, file, and environment access must be explicitly granted. deno run --allow-read app.js is the minimum. Security by default, not by opt-in.

Built-in tools — test runner, formatter, linter, bundler. No external tooling needed for basic workflows.

Node.js compatibility — Deno runs most Node.js code via node: specifiers (import "node:fs") and npm packages via npm: specifiers. The ecosystem is accessible.

Standard libraryjsr:@std/* provides vetted, maintained utilities: HTTP servers, path manipulation, assertions, encoding.

The Daily Workflow

The Lykn developer’s commands:

lykn run packages/my-app/mod.lykn     # compile + run
lykn test                              # run project tests
lykn compile src/app.lykn -o app.js    # compile to file
deno run --allow-net app.js            # run compiled JS directly