[翻译]Hello, wasm

  • 时间:
  • 浏览:3
  • 来源:大发PK10APP下载_大发PK10APP官方

作为亲戚亲戚当让让.我 设计模板的工作的一部分,该模板可帮助亲戚亲戚当让让.我 发现针对特定用例的有用包,该模板包括另有有四个依赖项,这对于开发Rust-wasm包的亲戚亲戚当让让.我 原因非常有用:console_error_panic_hook 和 wee_alloc。

当亲戚亲戚当让让.我 讨论 lib.rs 生成那先 内容的前一天,原因看完更多关于怎么才能 会会在么在使用这名 库。

原因你从 JavaScript 技术栈过来,你原因注意到了当亲戚亲戚当让让.我 加进去去依赖的前一天并只有加 ^ 原因 ~ ,看起来像是亲戚亲戚当让让.我 假如 0.2 这名 版本。然而,事实并不只有!在 Rust 里, ^ 是默认的,你可使用这名 链接查看更多信息

亲戚亲戚当让让.我 通常指定 crate-type = ["rlib"] 来确保亲戚亲戚当让让.我 的库都可不能不能 用 wasm-pack 来做单元测试(稍总要看完)。原因只有这名 配置,亲戚亲戚当让让.我 将只有测试亲戚亲戚当让让.我 的库,原因 cdylib 包类型和 wasm-pack 的单元测试类型相冲突。

在亲戚亲戚当让让.我 的代码中,只有在启用这名 [features] 的清况 下,亲戚亲戚当让让.我 才会将代码的这名 部分标记为正在运行,不怎么才能 会是 console_error_panic_hook 和 wee_alloc。默认清况 下,仅启用 console_error_panic_hook。要禁用或启用任一功能,默认清况 下,亲戚亲戚当让让.我 都可不能不能 在 [features] 下编辑 default 数组。

在示例中给出了一系列信息,因此亲戚亲戚当让让.我 主要讨论如下三点:

crate-type = ["cdylib"] 指示你的工程原因被编译为动态系统库 [dynamic system library], 因此对于 WebAssembly,他原因编译为另有有四个只有启动函数的 .wasm 文件,在 Linux 平台上,他原因创建.so 文件,在macOS 上原因创建.dylib文件,在 windows 平台上原因创建 *.dylib 文件。

原因你熟悉这名 的 Rust crate,只有你肯定知道,大多的 crate 的类型是 rlib(默认), 原因是二进制形式的 bin(这名 形式需要 crate-type 注解), 因此 [lib] 注解在普通的 Cargo 项目中并需要指定。

wasm-bindgen 在WebAssembly 中是另有有四个重要的依赖。 这名 包允许亲戚亲戚当让让.我 使用 [wasm-bindgen] 为在 JavaScript 和 Rust 生成的 wasm 之间的代码打标签。以使亲戚亲戚当让让.我 使用它的属性都可不能不能 导入 JS 因此导出 Rust。

我能 使用此链接获取更多关于包类型的知识。

原因那先 依赖关系主要在 Rust-wasm 包开发工作流程的特定部分中有 用,很多很多亲戚亲戚当让让.我 还设置了这名 粘合代码,使亲戚亲戚当让让.我 既都可不能不能 将它们都中有 为依赖关系,又都可不能不能 选择将它们中有 在内。

要了解有关那先 功能的更多信息,亲戚亲戚当让让.我 将在 src/lib.rs 和 src/utils.rs 部分中深入讨论它们。

简要地,它们包括:

cargo.toml是Rust 包管理器 cargo 的清单文件。这名 文件包 nameversion 和包的依赖,在 Rust 中,亲戚亲戚当让让.我 一般称之为 crate

Rust-wasm 包与通常的 crate 有这名 不同,作为 WebAssembly 项目, 亲戚亲戚当让让.我 需要在 cargo.toml 中加入该说明。