Deno is a JavaScript, TypeScript, and WebAssembly runtime built on V8, Rust, and Tokio. It runs TypeScript and JSX from source with no separate compiler, bundler, or configuration step, and it is Node-compatible: existing Node projects run on it, and it reads npm, yarn, and pnpm lockfiles.
Permissions are off by default and granted per capability at the command line, so a script that needs network access is started with an explicit flag. That model is what makes the runtime usable as a sandbox for code an agent generates or for tools it calls.
A single executable carries the surrounding toolchain rather than leaving it to separate packages: package manager, test runner, formatter, linter, task runner, type checker, coverage tool, workspace manager, benchmarker, documentation generator, Jupyter kernel, compiler, and desktop app builder. Packages are resolved from npm and JSR into a global cache with one integrity file instead of a per-project node_modules directory.
Features
- Secure by default: capability flags such as --allow-net grant a program only the access it is started with
- TypeScript and JSX from source: no separate transpile step or build configuration
- Node and npm compatibility: runs Node code and reads npm, yarn, and pnpm lockfiles
- Built-in toolchain: formatter, linter, test runner, benchmarker, type checker, coverage, and documentation generator in one binary
- Package management: npm and JSR resolution into a global cache with a single lockfile, plus npm workspaces
- Server APIs: Deno.serve starts an HTTP server from a request handler
- Distribution: deno compile produces a standalone executable and deno desktop builds a desktop app
- Standard library: a maintained set of common utilities published on JSR