跳到主要内容

Deno 与 Rust

问题

Deno 是什么?它与 Rust 的关系是什么?

答案

Deno 是 Ryan Dahl(Node.js 创始人)用 Rust 重新构建的 JavaScript/TypeScript 运行时,旨在修复 Node.js 的设计缺陷。

关于 Node.js 基础,可参考 Node.js 基础

Deno 的 Rust 架构

Deno 的核心组件全部由 Rust 实现:

  • 运行时:Tokio 驱动的异步 IO
  • TypeScript:SWC 编译,无需 tsc
  • HTTP:hyper(Rust 最快的 HTTP 库)
  • V8 绑定:rusty_v8

Deno vs Node.js

维度Node.jsDeno
语言C++Rust
TypeScript需要 tsc/SWC原生支持
模块CommonJS + ESMESM only
包管理npm + node_modulesURL import / npm 兼容
安全无沙箱权限模型
内置工具fmt, lint, test, bench
Web API部分尽量对齐浏览器

权限模型(Rust 实现的安全沙箱)

# 默认禁止所有权限
deno run script.ts
# Error: Requires net access

# 显式授权
deno run --allow-net --allow-read=./data script.ts

这是 Deno 最重要的设计——Rust 的类型系统在编译时保证权限检查不可绕过。


常见面试问题

Q1: Deno 用 Rust 构建带来了什么优势?

答案

  1. 安全模型:Rust 的类型安全保证权限沙箱的正确性
  2. 性能:Tokio 异步运行时 + hyper HTTP = 极致性能
  3. TypeScript:内置 SWC 编译,启动即用
  4. 稳定性:Rust 的内存安全减少 runtime crash

相关链接