
Deno, the next-generation JavaScript runtime
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.
Skip to main content Introducing Claw Patrol: an open-source security firewall for agents Read the post-> Dismiss Uncomplicate JavaScript Deno is the open-source JavaScript runtime for the modern web. Docs GitHub Install Deno 2.8.1 Release notes MacOS/Linux (Currently selected) Windows curl -fsSL https://deno.land/install.sh | sh Copy command Deno is the open-source JavaScript runtime for the modern web. Built on web standards with zero-config TypeScript, unmatched security, and a complete built-in toolchain. Rating 100k+ Stars on GitHub Community 400k+ Active Deno users Ecosystem 2M+ Community modules Enterprise-grade JavaScript Now offering enterprise support for the Deno runtime Learn more All your favorite tools, built-in and ready to go Deno natively supports TypeScript, JSX, and modern ECMAScript features with zero configuration. account.ts type User = { name: string; balance: number };
function getBalance(user: User): string {
return Balance: $${user.balance.toFixed(2)};
}
console.log(getBalance({ name: "Alice", balance: 42 }));
$ deno run account.ts Balance: $42.00
$ deno check Check account.ts ✅ Type check successful Just run Run .ts files directly with built-in type checking and compilation—no additional tooling or configuration required! More about TypeScript in Deno Seamless With first-class support for npm and Node, Deno can read your package.json automatically, or you can import packages from npm directly. Node and npm support Using package.json or import maps import { Hono } from "hono";
const app = new Hono();
app.get("/", (c) => { return c.text("Hello Hono!"); });
Deno.serve(app.fetch); Using inline imports import { Hono } from "npm:hono@4";
const app = new Hono();
app.get("/", (c) => { return c.text("Hello Hono!"); });
Deno.serve(app.fetch); Built on web standards Whenever possible, Deno implements web standard APIs on the server. Deno actively participates in TC39 and WinterCG to help move the web forward. Consistent code from browser to backend Deno prioritizes web standard APIs, maximizing code reuse between browser and server and future-proofing your code. Web APIs in Deno Skip past APIs list Worker MessageEvent WritableStreamDefaultController structuredClone DecompressionStream CompressionStream setInterval PromiseRejectionEvent clearInterval Blob fetch btoa localStorage Navigator clearTimeout ReadableStreamDefaultController Response.json() EventTarget caches CacheStorage MessagePort Location DedicatedWorkerGlobalScope WebSocket queueMicrotask CryptoKey ErrorEvent PerformanceMark WorkerNavigator ReadableStreamBYOBRequest TextDecoder WorkerLocation TextEncoderStream ReadableByteStreamController TransformStream File CustomEvent Event performance DOMException ReadableStreamBYOBReader crypto CloseEvent URLPattern PerformanceEntry console globalThis.close() Crypto Request ReadableStream Storage WebAssembly TextDecoderStream URLSearchParams ProgressEvent FileReader ByteLengthQueuingStrategy BeforeUnloadEvent TextEncoder atob globalThis.alert() setTimeout Performance Headers WorkerGlobalScope AbortSignal FormData Response MessageChannel URL BroadcastChannel TransformStreamDefaultController SubtleCrypto Cache WritableStream AbortController ReadableStreamDefaultReader PerformanceMeasure WritableStreamDefaultWriter Batteries included
The essential tools you need to build, test, and deploy your applications are all included out of the box.
Code linter
Deno ships with a built-in code linter to help you avoid bugs and code rot.
Learn more › $ deno lint --watch Test runner
Deno provides a test runner and assertion libraries as a part of the runtime and standard library.
Learn more › // server_test.ts Deno.test("1 + 2 = 3", () => { const x = 1 + 2; console.assert(x == 3); }); $ deno test server_test.ts Standalone executables
Instantly create standalone executables from your Deno program. It even supports cross-compiling for other platforms!
Learn more › Deno.serve(req => new Response("Hello!")); $ deno compile --allow-net server.ts
Compile file:///tmp/server.ts to server $ ./server Listening on http://localhost:8000/ Code formatter
Deno's built-in code formatter (based on dprint) beautifies JavaScript, TypeScript, JSON, and Markdown.
Learn more › $ deno fmt --line-width=120 Secure by default A program run with Deno has no file, network, or environment access unless explicitly enabled. Prevent supply chain attacks
Stop worrying about npm modules introducing unexpected vulnerabilities. Deno restricts access to the file system, network, and system environment by default, so code can access only what you allow.
Security in Deno Other runtimes $ node random.js Executing random.js... 🚨 File system compromised! Deno $ deno random.js ⚠️ Deno requests write access Allow? [y/n/A] $ n ❌ Denied write access Exited High-performance networking Out of the box support for: HTTPS (encryption) WebSocket HTTP2 Automatic response body compression View documentation Requests per second*
More is better
Deno 0 Node 0
- Ubuntu 22 on ec2 m5.metal; Deno 2.5.2 vs. Node 18.12.1 Built for the cloud Whether you deploy with our lightning-fast Deno Deploy or on other cloud providers, Deno streamlines your experience. — Deno runs on — Official Docker image hayd/deno-lambda How to Deploy Deno to Digital Ocean Run a Deno App - Fly.io Docs skymethod/denoflare anthonychu/azure-functions-deno-worker How to Deploy to Google Cloud Run — The cloud built for modern JavaScript — Project hosting made for Deno Unlock the full potential of your JavaScript and TypeScript projects with the all-new, completely reimagined Deno Deploy Unlock the full power of Deno Deno users can enjoy first-class support for features like OpenTelemetry, Deno KV, and the Deno Deploy CLI—plus exclusives like Playgrounds, Databases, and more. Built for anything built with JavaScript Because Deno is compatible with Node, your teams and projects can enjoy Deno Deploy's powerful features—even if you're not using Deno Fresh logo Vue logo Hono logo Next logo Solid Start logo Nuxt logo SvelteKit logo Docusaurus logo React logo Astro logo Solid logo Remix logo Vite logo Express logo Deno logo Node logo Learn more about Deno Deploy Pricing Sign in Get the most out of Deno with Fresh 2.0 Fresh is the Deno web framework, built with Preact and fully compatible with Vite for blazing speed and instant productivity. Build fast sites fast Author routes as the JSX (or TSX) components you already know and love, and Fresh handles dynamic server-side rendering by default. /routes/index.tsx export default function HomePage() { return ( <div> <h1>HTML fresh from the server!</h1> <p> Delivered at {new Date().toLocaleTimeString()} </p> </div> );
} /islands/Counter.tsx import { useSignal } from "@preact/signals";
export default function Counter() { const count = useSignal<number>(0);
return ( <button onClick={() => count.value += 1}> The count is {count.value} </button> ); }
Ship less JavaScript Island-based architecture lets you opt in to only the JavaScript you need, for absolutely minimal runtime overhead. Learn more about Fresh Our vibrant community “I knew this was gonna happen! Deno is truly building the fastest, most secure and personalizable JS runtime!” Manu (Qwik) “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. 👏” Wes Bos “I really think Deno is the easiest and most capable JS runtime. URL imports are slept on.” Atalocke “npm packages in Deno 👀 That’s an exciting development for those of us building at the edge.” Jason Lengstorf “This Deno thing is fast, no doubt about it. #denoland” Poorly Funded Snob “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.” Taylor Young “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.” Stefan Arentz Manu (Qwik)(active) Wes Bos Atalocke Jason Lengstorf Poorly Funded Snob Taylor Young Stefan Arentz Ready to get started with Deno? Install now Read the docs Open-source Deno Fresh JSR Products Deno Deploy Deno Sandbox Subhosting Pricing Deno Deploy Docs Deno Resources Deno Docs Deno API Reference Standard Library Third-Party Modules Deno Examples Company Blog News Merch Branding Privacy Policy Terms and Conditions Report abuse GitHub Discord Bluesky Mastodon Twitter or X or whatever YouTube Copyright © 2026 Deno Land Inc. All rights reserved. | Opt out of analytics All systems operational
