Last Updated: November 21, 2025
Deno
Modern JavaScript/TypeScript runtime
Core Features
| Item | Description |
|---|---|
Secure by Default
|
Explicit permissions required |
TypeScript Native
|
No config needed |
Web Standard APIs
|
Use Fetch, Web Crypto, etc. |
ES Modules Only
|
No CommonJS |
Built-in Tools
|
Formatter, linter, tester |
URL Imports
|
No package.json needed |
Common Commands
deno run script.ts
Run a script
deno run --allow-net server.ts
Run with network permission
deno test
Run tests
deno fmt
Format code
deno lint
Lint code
deno compile app.ts
Compile to executable
Server Example
// deno run --allow-net server.ts
import { serve } from "https://deno.land/std@0.180.0/http/server.ts";
const handler = async (request: Request): Promise<Response> => {
const url = new URL(request.url);
if (url.pathname === "/api/hello") {
return new Response(JSON.stringify({ message: "Hello!" }), {
headers: { "content-type": "application/json" },
});
}
return new Response("Not Found", { status: 404 });
};
await serve(handler, { port: 8000 });
Best Practices
- Use explicit permissions for security
- Import from URLs with version pinning
- Use Web Standard APIs when possible
- Leverage built-in formatter and linter
💡 Pro Tips
Quick Reference
Deno is secure by default - you must allow permissions