#v8 #deno #typescript #run-time #bindings #module #ops

deno_core

使用 V8、Rust 和 Tokio 构建的现代化 JavaScript/TypeScript 运行时

268 个破坏性发布

新功能 0.306.0 2024年8月21日
0.304.0 2024年8月19日
0.300.0 2024年7月29日
0.272.0 2024年3月21日
0.0.1 2019年9月13日

#618 in 网页编程

Download history 10473/week @ 2024-05-03 13406/week @ 2024-05-10 19622/week @ 2024-05-17 16796/week @ 2024-05-24 12151/week @ 2024-05-31 18697/week @ 2024-06-07 15957/week @ 2024-06-14 13026/week @ 2024-06-21 15322/week @ 2024-06-28 12537/week @ 2024-07-05 9534/week @ 2024-07-12 12181/week @ 2024-07-19 10818/week @ 2024-07-26 9143/week @ 2024-08-02 14249/week @ 2024-08-09 16158/week @ 2024-08-16

52,566 每月下载量
用于 141 个crate(114 个直接使用)

MIT 许可证

1.5MB
33K SLoC

Deno Core Crate

crates docs

此crate的主要依赖项是 rusty_v8,它提供了 V8-Rust 绑定。

这个Rust crate 包含了 Deno 命令行界面(Deno CLI)的必要 V8 绑定。这里的主要抽象是 JsRuntime,它提供了一种执行 JavaScript 的方法。

JsRuntime 实现了执行代码的事件循环抽象,它会跟踪所有挂起的任务(异步操作、动态模块加载)。用户需要负责通过使用 JsRuntime::run_event_loop 方法来驱动这个循环——它必须在 Rust 的未来执行器(例如 tokio、smol)的上下文中执行。

可以使用 deno_core::extension! 宏在 JavaScript 中注册 Rust 函数。编写 ops 的常规方法是使用 deno_ops crate。

目前这个crate的文档比较少。请参考hello_world.rseval_js_value.rs作为使用示例。

本层不支持TypeScript和其他许多功能。请参阅CLI

依赖项

~84MB
~1.5M SLoC