Better, faster JavaScript
Deno is a fast, open-source, fully Node-compatible JS runtime with TypeScript and everything else you need baked right in.
Faster than Node; more stable than Bun.
Built-in tools: package manager, test runner, formatter, linter, task runner, type checker, coverage tool, workspace manager, benchmarker, doc generator, jupyter kernel, compiler, desktop app builder.
Everything just works
tsc, no ts-node, no bundler, no config to get in the way.import { Hono } from "hono";
interface Book {
title: string;
year: number;
}
const books: Book[] = [{ title: "Deno", year: 2018 }];
const app = new Hono();
app.get("/books", (c) => c.json(books));
export default app;{
"name": "project-with-npm-deps",
"dependencies": {
"chalk": "^5.6.2",
"hono": "^4.12.27"
}
}

Zero-setup TypeScript and npm
deno check away.Your Node project, without the Node problems
- npm
- node_modules
- package.json
- tsconfig.json
- ESM
- JSX / TSX
- node:* imports
- CommonJS
Built-in everything
$
A faster package manager
node_modules. {
"workspaces": ["./api", "./web", "./core"],
"scripts": {
"dev": "deno run -A --watch main.ts",
"test": "deno test -A"
},
"dependencies": {
"hono": "hono^4"
}
}import { BinarySearchTree } from "@std/data-structures";
import { assertEquals } from "@std/assert";
const values = [3, 10, 13, 4, 6, 7, 1, 14];
const tree = new BinarySearchTree<number>();
values.forEach((value) => tree.insert(value));
assertEquals([...tree], [1, 3, 4, 6, 7, 10, 13, 14]);Standard library included
On the cutting edge of JavaScript
fetch, Request, Response, and Crypto APIs you use in the browser, now on the server — and as a TC39 and WinterCG participant, Deno is regularly first to ship new standards-track features.Available today: Temporal · Set methods · Iterator helpers · Promise.try · Float16Array
Granular security controls
$
Three layers of defense
- 1Default deny
Supply-chain safety
Shut down the most common ways a dependency turns hostile.
- Postinstall scripts
- Off by default
- Opt a package in
--allow-scripts- Trusted dynamic imports
--allow-import- Audit the dependency tree
deno audit- Apply the fixes
deno audit fix- Minimum dependency age
minimumDependencyAge: "P3D"
- 2Scoped grants
Runtime sandbox
Scope what a single program can do, and deny-list the rest.
- Granular allow flags
--allow-net- Deny-list on top
--deny-net- Subprocess isolation
- Apply permissions to Deno child processes
- Permission stack traces
DENO_TRACE_PERMISSIONS=1- Symlink-aware checks
- Evaluated at the link
- 3Audits
Centralized policy & audit
Govern permissions, and keep a record of every call.
- Permission broker
DENO_PERMISSION_BROKER_PATH- Audit logs
DENO_AUDIT_PERMISSIONS
- grant
- denied / off
- opt-in
Faster than you think
Built for the real world
100 concurrent connections · AMD EPYC x86_64, pinned cores · oha, median of 3 runs, uncompressed · Deno.serve (Deno 2.9), Bun.serve (Bun 1.4), node:http (Node v26). Results vary by workload and hardware.
See anything, understand everything
Deploy Deno anywhere
…and any platform that runs a Linux, macOS, or Windows binary.
Or run it on the platform we built for it.
The hosting platform built for Deno
Built for anything built with JavaScript
And now, the desktop
Better JavaScript



