#dom #wasm-interpreter #react #ui #wasm

dioxus-interpreter-js

JS 解释器 for Dioxus - 一个用于交互式用户体验的并发渲染无关的 Virtual DOM

18 个版本

0.6.0-alpha.22024 年 8 月 7 日
0.5.6 2024 年 7 月 18 日
0.5.0 2024 年 3 月 28 日
0.4.3 2023 年 12 月 7 日
0.2.0 2022 年 3 月 9 日

GUI 中排名 772

Download history 3838/week @ 2024-05-03 4010/week @ 2024-05-10 4204/week @ 2024-05-17 3787/week @ 2024-05-24 4307/week @ 2024-05-31 3526/week @ 2024-06-07 3785/week @ 2024-06-14 4201/week @ 2024-06-21 2982/week @ 2024-06-28 2000/week @ 2024-07-05 2787/week @ 2024-07-12 2878/week @ 2024-07-19 3068/week @ 2024-07-26 2882/week @ 2024-08-02 3009/week @ 2024-08-09 2950/week @ 2024-08-16

每月下载量 12,402
用于 53 个 Crates(直接使用 6 个)

MIT/Apache

270KB
4.5K SLoC

Rust 3.5K SLoC // 0.1% comments TypeScript 1K SLoC // 0.1% comments JavaScript 6 SLoC

dioxus-interpreter-js

Crates.io MIT licensed Build Status Discord chat

网站 | 指南 | API 文档 | 聊天

概述

dioxus-interpreter-js 提供 Dioxus VirtualDom 产生的编辑流的高性能 JavaScript 桥接,并将它们转换为实际 web DOM 上的突变。

该软件包具有用于 web 和 sledgehammer 的绑定,以提高性能。

架构

我们使用 TypeScript 编写绑定,并使用一个非常简单的 build.rs 以及 bun 将它们转换为 JavaScript,压缩它们并将它们粘接到项目其余部分。

并非每个 JS 片段都会被使用,因此我们将这些片段从核心解释器中分离出来。

理论上,我们可以使用 Rust 在浏览器中完成这些绑定所做的一切。实际上,我们想继续使用 JS 以避免在运行 LiveView 和 WebView 渲染器时需要 WASM 编译步骤。我们还想使用 JS 以防止像取消事件、上传文件和收集表单输入这样的行为出现分歧。在两种语言中实现这些细节时,确保 1:1 兼容性是非常困难的。

如果您想为绑定做出贡献,您需要在您的机器上安装 TypeScript 编译器和 bun。

https://bun.net.cn/docs/installation

贡献

  • 在我们的 问题跟踪器 上报告问题。
  • 加入 Discord 并提问!

许可证

本项目采用 MIT 许可证

除非您明确声明,否则您提交给 Dioxus 的任何贡献都将按 MIT 许可证许可,不附加任何额外条款或条件。

依赖项

~0–8MB
~61K SLoC