SEE: Six in-demand programming languages: Getting started (free PDF)
"Furthermore the mechanism for linking to external libraries is fundamentally centralized through the NPM repository, which is not in line with the ideals of the web," he adds, referring to Node's NPM packages.
The Deno core is written in Rust, and Deno 1.0's main component is the Deno command line interface (CLI).
Dahl says Deno is not a monolithic program, but rather a collection of Rust "crates" – packages or software libraries – that allow integration at different layers. For example, the Deno core crate is the "very bare bones" of Deno, while the rusty_v8 crate provides Rust bindings to V8's C++ application programming interface (API).
"The crate provides binaries that are built in GitHub Actions CI, but it also allows users to compile V8 from scratch and adjust its many build configurations," Dahl writes.
"All the V8 source code is distributed in the crate itself. Finally rusty_v8 attempts to be a safe interface. It's not yet 100% safe, but we're getting close. Being able to interact with a VM as complex as V8 in a safe way is quite amazing and has allowed us to discover many difficult bugs in Deno itself."
Dahl also stresses that Deno is not a fork of Node, but a completely new implementation, albeit with similar goals to Node. It's also not, in general, compatible with NPM. However Dahl expects Deno will eventually be able to run more Node programs out of the box.
Deno's performance on web server is about equal to Node, according to Dahl, but Deno has better latency than Node.
"A hello-world Deno HTTP server does about 25k requests per second with a max latency of 1.3 milliseconds. A comparable Node program does 34k requests per second with a rather erratic max latency between 2 and 300 milliseconds," he notes.