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.
- Rating100k+Stars on GitHub
- Community400k+Active Deno users
- Ecosystem2M+Community modules
All your favorite tools, built-in and ready to go
Deno natively supports TypeScript, JSX, and modern ECMAScript features with zero configuration.
account.ts
typeUser={ name: string; balance: number};functiongetBalance(user:User): string{return`Balance:${user.balance.toFixed(2)}`;}console.log(getBalance({ name:"Alice", balance:42}));
$ deno run account.tsBalance: $42.00$ deno checkCheck account.ts✅ Type check successful
Just run
Run
.ts
files directly with built-in type checking and compilation—no additional tooling or configuration required!Seamless
support
With first-class support for npm and Node, Deno can read your
package.json
automatically, or you can import packages from npm directly.Import from package.json…
import{Hono}from"hono";const app=newHono();app.get("/",(c)=>{return c.text("Hello Hono!");});Deno.serve(app.fetch);
…or import directly from npm
import{Hono}from"npm:hono@4";const app=newHono();app.get("/",(c)=>{return c.text("Hello Hono!");});Deno.serve(app.fetch);
Built on web standards
Consistent code from browser to backend
Deno prioritizes web standard APIs, maximizing code reuse between browser and server and future-proofing your code.
Skip past APIs listWorkerMessageEventWritableStreamDefaultControllerstructuredCloneDecompressionStreamCompressionStreamsetIntervalPromiseRejectionEventclearIntervalBlobfetchbtoalocalStorageNavigatorclearTimeoutReadableStreamDefaultControllerResponse.json()EventTargetcachesCacheStorageMessagePortLocationDedicatedWorkerGlobalScopeWebSocketqueueMicrotaskCryptoKeyErrorEventPerformanceMarkWorkerNavigatorReadableStreamBYOBRequestTextDecoderWorkerLocationTextEncoderStreamReadableByteStreamControllerTransformStreamFileCustomEventEventperformanceDOMExceptionReadableStreamBYOBReadercryptoCloseEventURLPatternPerformanceEntryconsoleglobalThis.close()CryptoRequestReadableStreamStorageWebAssemblyTextDecoderStreamURLSearchParamsProgressEventFileReaderByteLengthQueuingStrategyBeforeUnloadEventTextEncoderatobglobalThis.alert()setTimeoutPerformanceHeadersWorkerGlobalScopeAbortSignalFormDataResponseMessageChannelURLBroadcastChannelTransformStreamDefaultControllerSubtleCryptoCacheWritableStreamAbortControllerReadableStreamDefaultReaderPerformanceMeasureWritableStreamDefaultWriter
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.tsDeno.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 moreDeno.serve(req=>newResponse("Hello!"));
$ deno compile--allow-net server.tsCompile file:///tmp/server.ts to server$./serverListening 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.
Other runtimes
$ noderandom.jsExecutingrandom.js...🚨 File system compromised!
Deno
$ denorandom.js⚠️ Deno requests write accessAllow? [y/n/A]$ n❌ Denied write accessExited
High-performance networking
Out of the box support for:
- HTTPS (encryption)
- WebSocket
- HTTP2
- Automatic response body compression
Requests per second*
More is better
Deno
105200Node
48700Built for the cloud
Whether you deploy with our lightning-fast Deno Deploy or on other cloud providers, Deno streamlines your experience.
Deno runs on
— The cloud built for modern JavaScript —
Project hostingmade for Deno
Unlock the full potential of your JavaScript and TypeScript projects with the all-new, completely reimagined Deno Deploy
Unlock thefull 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 anythingbuilt 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
Get the most out of Deno withFresh 2.0
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
exportdefaultfunctionHomePage(){return(<div><h1>HTML fresh from the server!</h1><p> Delivered at{newDate().toLocaleTimeString()}</p></div>);}
/islands/Counter.tsx
import{ useSignal}from"@preact/signals";exportdefaultfunctionCounter(){const count= useSignal<number>(0); return (<buttononClick={()=> 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.
Our vibrant community
“I knew this was gonna happen! Deno is truly building the fastest, most secure and personalizable JS runtime!”
“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. 👏”
“I really think Deno is the easiest and most capable JS runtime. URL imports are slept on.”
“npm packages in Deno 👀That’s an exciting development for those of us building at the edge.”
“This Deno thing is fast, no doubt about it. #denoland”
“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.”
“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.”