169 个重大版本

0.175.0 2024 年 8 月 22 日
0.173.0 2024 年 7 月 31 日
0.151.0 2024 年 3 月 28 日
0.137.0 2023 年 12 月 21 日
0.5.0 2020 年 12 月 30 日

#1847 in 网页编程

Download history 1154/week @ 2024-05-02 1039/week @ 2024-05-09 1123/week @ 2024-05-16 597/week @ 2024-05-23 799/week @ 2024-05-30 835/week @ 2024-06-06 1695/week @ 2024-06-13 1504/week @ 2024-06-20 641/week @ 2024-06-27 886/week @ 2024-07-04 1065/week @ 2024-07-11 706/week @ 2024-07-18 1289/week @ 2024-07-25 888/week @ 2024-08-01 440/week @ 2024-08-08 340/week @ 2024-08-15

3,047 每月下载量
用于 27 个库 (20 直接)

MIT 许可证

6MB
152K SLoC

Rust 57K SLoC // 0.2% comments JavaScript 52K SLoC // 0.1% comments TypeScript 43K SLoC // 0.2% comments

deno_runtime

crates docs

这是 Deno CLI 的精简版,移除了 TypeScript 集成和各种工具(如 lint 和 doc)。基本上只包含使用 Deno 操作系统绑定的 JavaScript 执行。

稳定性

此库使用经过战斗检验的模块构建,这些模块最初位于 deno 库中,但是此库的 API 可能会经历快速和破坏性的变化。

MainWorker

此库的主要 API 是 MainWorkerMainWorker 是一个封装 deno_core::JsRuntime 的结构,并使用一系列 ops 来实现 Deno 命名空间。

在创建 MainWorker 时,实现者必须调用 MainWorker::bootstrap 来准备 JS 运行时。

MainWorker 高度可配置,并允许自定义许多运行时属性

  • 模块加载实现
  • 错误格式化
  • 支持源映射
  • 支持 V8 检查器和 Chrome 开发者工具调试器
  • HTTP 客户端用户代理,CA 证书
  • 随机数生成器种子

Worker 网页 API

deno_runtime 包含对 Worker 网页 API 的支持。 Worker API 是使用 WebWorker 结构实现的。

创建新的MainWorker实例时,实现者必须提供一个回调函数,该函数用于创建新的Worker实例。

所有WebWorker实例都是MainWorker的后代,负责设置与子工作进程的通信。每个WebWorker都会启动一个专属于该工作进程的操作系统线程。

依赖项

~180MB
~4M SLoC