Skip to main content

Deno v1.38.4Free & open source
Next-generation JavaScript runtime

Secure by default
Native support for TypeScript and JSX
Testing, linting, formatting, and more out of the box
High performance async I/O with Rust and Tokio
Backwards compatible with Node.js and npm
250k+ Active developers
Trusted By
Slack
Netlify
GitHub
Supabase

Upgrade from Node.js to Deno

Deno features improved security, performance, and developer experience compared to its predecessor. It's a great time to upgrade your Node.js project to run on Deno.

Deno logo
node.js logo
Millions of community modules
Millions of community modules
Built on V8 JavaScript engine
Built on V8 JavaScript engine
Runtime security by default
No granular runtime security
Built-in TypeScript, JSX, formatter, linter, and testing
Dozens of dependencies and config files for dev tools
Easily embeddable with Rust and Tokio
More complex embedding process with C++
Built with web standard APIs
Incomplete web API coverage
Comprehensive standard library
Limited standard library

Secure by default

Deno restricts access to sensitive runtime APIs by default, protecting your infrastructure from malicious code.

Configure granular access to the filesystem, network, and system environment, so your code only has access to the resources it needs.

Security in Deno
β€œWhat stood out first and foremost to our team was their laser focus on security... like the ability to execute code with limited access to the file system or external domains.”
Quote above by Slack, signified by their logo

TypeScript out of the box

Deno natively supports modern JavaScript extensions like TypeScript and JSX without a build step or extra configuration.


TypeScript in Deno
TypeScript is better in Deno for these reasons
Native TypeScript support with zero config
Use bleeding edge JavaScript features
Intellisense and auto-complete in Visual Studio Code
Publish and distribute modules as TypeScript source code

Essential dev tools built in

Standalone executables

Instantly create standalone executables from your Deno program. It even supports cross-compiling for other platforms! Learn moreabout the Deno compiler

$ deno compile --allow-net server.ts
Compile file:///tmp/server.ts to server
$ ./server
Listening on http://localhost:8000/
// server.ts
Deno.serve(() => new Response("Hello!"));

Code formatter

Deno's built-in code formatter (based on dprint) beautifies JavaScript, TypeScript, JSON, and Markdown. Learn moreabout Deno's built-in code formatting

$ deno fmt --line-width=120

Code linter

Deno ships with a built-in code linter to help you avoid bugs and code rot. Learn moreabout Deno's linter

$ deno lint --watch

Test runner

Deno provides a test runner and assertion libraries as a part of the runtime and standard library. Learn moreabout testing

$ deno test main_test.ts
// main_test.ts
Deno.test("1 + 2 = 3", () => {
  const x = 1 + 2;
  console.assert(x == 3);
});

Built for the cloud

Whether you deploy with our lightning-fast Deno Deploy or on other cloud providers, Deno streamlines your experience. It's more than a runtime; it's JavaScript reimagined for the cloud age, offering a seamless alternative to traditional containers.

Deno Deploy

The easiest way to host your Deno projects.

  • Globally distributed
  • Deploy in seconds
  • Built-in key/value database
  • Integrate with GitHub for CI/CD
  • Run static sites, apps, and edge functions

High performance networking

// Ryan Dahl's favorite one-line web server
Deno.serve((req) => new Response("Hello world"));

Out of the box support for:

  • HTTPS (encryption)
  • WebSockets
  • HTTP2
  • Automatic response body compression

HTTP server documentation

Throughput, requests per sec

(bigger is better)
Requests per second of 'hello world' web servers in Deno 1.36.1 and Node 18.12.1 measured with wrk on a Linux 8 core Intel Xeon E-2378G machine.
import express from "npm:express@4";

const app = express();

app.get("/", function (_req, res) {
  res.send("hello");
});

app.listen(3000, () => {
  console.log("Express listening on :3000");
});

Millions of community modules

Deno is backwards compatible with Node.js built-in APIs and over two million modules on npm. Bring the best of the Node.js ecosystem with you to Deno.

Dive into Deno code

Deno.serve((req) => {
  if (req.headers.get("upgrade") != "websocket") {
    return new Response(null, { status: 501 });
  }
  const { socket, response } = Deno.upgradeWebSocket(req);
  socket.addEventListener("open", () => {
    console.log("a client connected!");
  });
  socket.addEventListener("message", (event) => {
    if (event.data === "ping") {
      socket.send("pong");
    }
  });
  return response;
});

Seamless persistence with Deno KVBeta

The Deno runtime ships with Deno KV, a key/value database designed for globally distributed applications.

Go from development to production on Deno Deploy with no API keys or infrastructure to configure.

Deno KV logo

Fresh - modern web apps on the edge

Fresh is a modern web framework, designed from the ground up for the Deno runtime on edge servers.

Built for speed, reliability, and simplicity
Island-based client hydration for maximum interactivity
Zero runtime overhead - no JavaScript is sent to the client by default

SaaSKit - quick start template for Fresh

Built on top of Fresh, the SaaSKit template app includes authentication, billing, and more.

User authentication with oAuth 2.0
Recurring payments implemented with Stripe
Sessions and authorization pre-built
Fast, lightweight persistence with Deno KV

Vibrant Community

  • Manu (Qwik)

    I know this was gonna happen!
    Deno is truly building the fastest, most secure and personalizable JS runtime!

  • Atalocke

    I really think Deno is the easiest and most capable JS runtime. URL imports are slept on.

  • Jason Lengstorf

    npm packages in Deno πŸ‘€

    That’s an exciting development for those of us building at the edge.

  • Poorly Funded Snob

    This Deno thing is fast, no doubt about it. #denoland

  • Taylor Young

    Deno: I have to use the browser APIs cause they are everywhere, and everywhere is my target runtime (the web).

    The runtime that tries to mirror browser APIs server side makes my life easiest.

  • Stefan Arentz

    Deno is fantastic. I am using it to level up a bit in terms of JavaScript and TypeScript and it is the easiest way to get going. Their tooling is like 100x simpler than all the usual Node stacks.

  • Wes Bos

    Deno's security model is PERFECT for this type of script.

    Running a script from a rando off the internet? It asks for read access to only the CWD and then asks for access to the file it wants to write to. πŸ‘ @deno_land

  • Carlos Vazquez πŸ‡²πŸ‡½

    I've just upgraded to 1.6.0 | I love Deno not only for freeing us all from npm but for using Typescript / javaScript as default runtimes. But to top it all off, one can upgrade it in the simplest, fastest way. Deno is making me love Typescript and javaScript again πŸ¦•πŸ¦•πŸ¦•

Ready to get started with Deno?

Install Now