Today, we’re thrilled to announce Deno 2, which includes:
- Backwards compatibility with Node.js and npm, allowing you to run existing Node applications seamlessly
- Native support for package.json and node_modules
- Package management with new deno install, deno add, and deno remove commands
- A stabilized standard library
- Support for private npm registries
- Workspaces and monorepo support
- Long Term Support (LTS) releases
- JSR: a modern registry for sharing JavaScript libraries across runtimes
We are also continually improving many existing Deno features:
- deno fmt can now format HTML, CSS, and YAML
- deno lint now has Node specific rules and quick fixes
- deno test now supports running tests written using node:test
- deno task can now run package.json scripts
- deno doc’s HTML output has improved design and better search
- deno compile now supports code signing and icons on Windows
- deno serve can run HTTP servers across multiple cores, in parallel
- deno init can scaffold now scaffold libraries or servers
- deno jupyter now supports outputting images, graphs, and HTML
- deno bench supports critical sections for more precise measurements
- deno coverage can now output reports in HTML
Deno is a single binary for the TypeScript and JavaScript ecosystems. Deno is secure by default (installing npm libs do not automatically have full system perms/access).
The new standard library stabilizes a vetted collection of safe binaries instead of having to search for and install random libraries for basic or common use cases with [or without] own security assessments.
Deno compile compiles the TS/JS project into a single binary.
The backwards compatibility to npm and npm/js frameworks enables deno usage in existing projects and with existing libs with the benefits of deno and a path to incremental migration.
The announcement video is worth watching. The intro is great.
Been using deno 1.x for edge functions use cases at work and its been pretty solid. The standard library is excellent and it leans into web standards rather than node.js, while usually still supporting the node.js standard lib (I’m assuming through some polyfilling to the web standard but idk for sure)
It feels a lot more like working in python where you can probably get the job done with the standard library rather than needing to reach for packages for every task.
I’m looking forward to 2.x, it’ll feel a lot less like a WIP runtime.