Deno is a simple, modern and secure runtime for JavaScript, TypeScript, and WebAssembly that uses V8 and is built in Rust.
deno info
) and a code formatter (deno fmt
).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.
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/http/server.ts";serve(req => new Response("Hello World\n"));
You can find a more in depth introduction, examples, and environment setup guides in the manual.
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.
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.
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.
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.
Here are some examples that you can use to get started immediately.
For more examples, check out examples.deno.land.