从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?
对于 Nodejs 而言. 简单的可以理解为下面,
众多的 Javascript 运行时
现在市面上有很多 Javascript 运行时。下面是比较有名的几个。
Node.js
- 基于 V8 引擎(Chrome 的 JavaScript 引擎)和 C++ 构建
- 主要用途:服务端和后端应用开发
- 特点:事件驱动、非阻塞 I/O、丰富的包生态系统(npm)
Deno
- 基于 V8 和 Rust 构建
- 主要用途:安全且现代化的运行时,支持 ES 模块
- 特点:内置 TypeScript 支持,默认安全(沙箱机制)
Bun
- 使用 Zig 和 JavaScriptCore(WebKit 引擎)构建
- 主要用途:高性能的一体化解决方案(打包工具、测试运行器等)
- 特点:快速启动、集成工具、兼容 Node.js
Cloudflare Workers
- 基于 V8 引擎(隔离 Workers)和 C++ 构建
- 主要用途:边缘计算的无服务器环境
- 特点:极小的冷启动时间,为轻量级函数优化
AWS LLRT
- 基于 Quickjs 引擎 和 Rust 构建
- 主要用途:边缘计算的无服务器环境
- 特点:极小的冷启动时间
这些 runtime 各自实现了自己的标准库和 API。虽然说生态蓬勃发展,但是也带来了一些问题。比如,不同的 runtime 之间的代码不可复用,不同的 runtime 之间的代码不可迁移。
WinterTC (Technical Committee on Web-interoperable Server Runtimes)
WinterTC (TC55) 是 Ecma International 的一个技术委员会,旨在实现服务器端 JavaScript 运行时之间的 API 互操作性,特别是对于与 Web 共同的 API。
从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?从 0 写个微小的 Javascript 运行时(01) -- 什么是 Javascript 运行时?