Deno was announced at JSConf EU 2018 by
Ryan Dahl in his talk "10 Things I Regret About Node.js". In his talk, Dahl mentioned his regrets about the initial design decisions with Node.js, focusing on his choices of not using
promises in
API design, usage of the legacy build system
GYP, node_modules and package.json, leaving out
file extensions, magical module resolution with index.js and breaking the sandboxed environment of V8. He eventually presented the prototype of Deno, aiming to achieve system call bindings through message passing with serialization tools such as
Protocol Buffers, and to provide command line flags for
access control. Deno was initially written in
Go and used
Protocol Buffers for serialization between privileged (Go, with system call access) and unprivileged (V8) sides. However, Go was soon replaced with
Rust due to concerns of double runtime and
garbage collection pressure.
Tokio was introduced in place of
libuv as the asynchronous event-driven platform, and
FlatBuffers was adopted for faster, "zero-copy" serialization and deserialization but later in August 2019, FlatBuffers was removed after publishing benchmarks that measured a significant overhead of serialization in April 2019. A standard library, modeled after Go's standard library, was created in November 2018 to provide extensive tools and utilities, partially solving Node.js'
dependency tree explosion problem. The official Deno 1.0 was released on May 13, 2020. Deno Deploy, inspired by
Cloudflare Workers, was released on June 23, 2021. Announced May 4, 2022 Beta 4 improved the dashboard and added billing functionality. Deno Fresh 1.0 was announced June 28, 2022. It features a new full stack web framework for Deno that by default sends zero JavaScript to the client. The framework has no build step which allows for an order of magnitude improvements in deployment times. Version 1.1 was released September 8, 2022. Deno SaaSKit beta was announced April 4, 2023. It is an open-source, modern SaaS template built with Fresh and Deno. Deno 2 was released October 9, 2024. It primarily brings Node.js compatibility improvements and removes deprecated features. == Overview ==