18 个版本 (10 个破坏性版本)

0.73.2 2022 年 8 月 21 日
0.68.0 2022 年 7 月 10 日

#20#ops

Download history 44/week @ 2024-03-28 43/week @ 2024-04-04

每月 52 次下载

MIT 许可证

5MB
124K SLoC

JavaScript 46K SLoC // 0.1% comments TypeScript 41K SLoC // 0.2% comments Rust 37K SLoC // 0.3% comments

deno_runtime

crates docs

这是 Deno CLI 的精简版本,删除了 TypeScript 集成和各种工具(如 lint 和 doc)。基本上只使用 Deno 的操作系统绑定(ops)进行 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 都会为该工作进程创建一个全新的 OS 线程。

依赖关系

~158MB
~3.5M SLoC