Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

  1. Secure by default. No file, network, or environment access, unless explicitly enabled.
  2. Supports TypeScript out of the box.
  3. Ships only a single executable file.
  4. Has built-in utilities like a dependency inspector (deno info) and a code formatter (deno fmt).
  5. Has a set of reviewed (audited) standard modules that are guaranteed to work with Deno: deno.land/std
  6. Has a number of companies interested in using and exploring Deno

Installation

Deno ships as a single executable with no dependencies. You can install it using the installers below, or download a release binary from the releases page.

Shell (Mac, Linux):

$
curl -fsSL https://deno.land/install.sh | sh

PowerShell (Windows):

$
iwr https://deno.land/install.ps1 -useb | iex

Homebrew (Mac):

$
brew install deno

Chocolatey (Windows):

$
choco install deno

Scoop (Windows):

$
scoop install deno

Build and install from source using Cargo:

$
cargo install deno --locked

See deno_install for more installation options.

Getting Started

Try running a simple program:

$
deno run https://deno.land/std/examples/welcome.ts

Or a more complex one:

import { serve } from "https://deno.land/std@0.136.0/http/server.ts";
console.log("http://localhost:8000/");serve((req) => new Response("Hello World\n"), { port: 8000 });

You can find a more in depth introduction, examples, and environment setup guides in the manual.

Runtime Documentation

The basic runtime documentation for Deno can be found on doc.deno.land.

Deno comes with a manual which contains more in depth explanations about the more complex functions of the runtime, an introduction to the concepts that Deno is built on, details about the internals of Deno, how to embed Deno in your own application and how to extend Deno using Rust plugins.

The manual also contains information about the built in tools that Deno provides.

Standard Modules

Next to the Deno runtime, Deno also provides a list of audited standard modules that are reviewed by the Deno maintainers and are guaranteed to work with a specific Deno version. These live in the denoland/deno_std repository.

These standard modules are hosted at deno.land/std and are distributed via URLs like all other ES modules that are compatible with Deno.

Third Party Modules

Deno can import modules from any location on the web, like GitHub, a personal webserver, or a CDN like Skypack, jspm.io, jsDelivr or esm.sh.

To make it easier to consume third party modules Deno provides some built in tooling like deno info and deno doc. deno.land also provides a web UI for viewing module documentation. It is available at doc.deno.land.

deno.land also provides a simple public hosting service for ES modules that work with Deno. It can be found at deno.land/x.

Built-in Toolchain

Deno comes with a robust set of tools, so you can spend less time searching and evaluating third party modules, and more time writing code and being productive. Here are a few examples.

Lint all JS/TS files in the current directory and subdirectories:

$
deno lintChecked 54 files

Format all supported files in the current directory and subdirectories:

$
deno fmtChecked 46 files

Run a test:

$
deno test https://deno.land/std@0.132.0/testing/chai_example.tsrunning 3 tests from https://deno.land/std@0.132.0/testing/chai_example.tstest we can make chai assertions ... ok (8ms)test we can make chai expectations ... ok (2ms)test we can use chai should style ... ok (4ms)
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out (27ms)

For the full list of tools and their options, see here.

Examples

Here are some examples that you can use to get started immediately.

  1. Hello World
  2. Importing & Exporting
  3. Dependency Management
  4. HTTP Requests
  5. HTTP Server: Hello World

For more examples, check out examples.deno.land.