Logo
Section 1 / 18

Deno 简介:起源与架构

了解 Deno 以及其背后的技术。

导入

Deno 简介:起源与架构

了解 Deno 以及其背后的技术。

Deno 是一个单一二进制文件、跨平台(Linux、macOS、Windows)的可执行程序,无需外部依赖。它由 Ryan Dahl 创建,而 Ryan Dahl 也是 Node.js 的创始人。Deno 于 2020 年 5 月发布了其首个稳定版本(v1.0),此后持续推出新版本。

...

为何需要另一个运行时?

Deno 可以看作是对 Node.js 的一次升级,旨在解决 Ryan Dahl 对旧系统的一些“遗憾”。简单来说,Deno 能够以更快、更安全的方式实现与 Node.js 相同的功能。
Node.js 因过于成功而迅速扩展,引入了许多具有颠覆性的改进,但这些改进对已有生产应用会造成破坏性变更。从零开始构建则使 Dahl 能够引入大量创新技术与最佳架构实践。

Deno 的基础架构

Deno 基于 V8 JavaScript 引擎、Rust 和 Tokio 构建。

Course Image

V8 是 Google 开源的高性能 JavaScript 和 WebAssembly 引擎,使用 C++ 编写。它不仅被用于 Chrome 浏览器,也被 Node.js 所采用。 V8 在执行前将 JavaScript 编译为优化后的机器码,从而提升性能。虽然最初仅用于浏览器环境,但最新版本已支持服务器端脚本运行。

...

Deno 最初使用 Go 语言编写,但很快被 Rust 替代,主要因为性能优势以及 Go 垃圾回收机制带来的开销。 Rust 允许将数据存储在栈或堆上,并能在编译时确定数据何时不再需要。这种机制确保了高效的内存访问,无需持续运行的垃圾回收器。凭借对硬件的直接访问能力,Rust 成为低级别开发(常被称为“裸金属”开发)的理想语言,在许多场景中取代了 C++。 除了技术优势,Rust 社区也极为活跃且富有支持性,因此学习该语言的资源非常丰富。

...

Tokio 是 Rust 语言的异步运行时,相当于 Node.js 中的 libuv。它通过多线程、工作窃取调度器提供卓越的应用性能,同时开销极小。Tokio 还提供一系列内存安全的 API,有助于防止内存相关错误。这些特性为 Deno 提供了坚实可靠的底层基础。

现代化功能特性

Deno 使用 TypeScript 和 Rust 编写,两者都是广泛使用的语言,能够帮助开发者构建快速、高性能的应用程序。

这一选择体现了对现代且可靠技术的坚定采纳。

以下是 Deno 的部分核心功能概览:

  • 原生支持 TypeScript(也兼容纯 JavaScript)
  • 使用 ES 模块
  • 拥有丰富的标准库,几乎覆盖所有开发需求
  • 无需标准包管理器,可通过直接 URL 下载依赖
  • 内置多种工具(打包、调试、测试)
  • 默认安全,通过显式的权限系统保障安全

以上仅为 Deno 部分功能展示,实际上它还提供了更多强大特性。

Deno 核心特性:第一部分