# rust_wasm-vite **Repository Path**: coderzjd/rust_wasm-vite ## Basic Information - **Project Name**: rust_wasm-vite - **Description**: rust_wasm-vite - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-05 - **Last Updated**: 2025-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [资料](https://rustwasm.github.io/docs/book/introduction.html) # rust编译到wasm、使用vite集成到web端 # Rust 与 JavaScript 数据类型映射表 | Rust 类型 | JS 类型 | 说明 | | ---------------- | ---------- | ---------------------- | | `i32`, `u32` | number | 直接映射 | | `f32`, `f64` | number | 直接映射 | | `bool` | boolean | 直接映射 | | `&str`, `String` | string | 自动做 UTF-8 编码/解码 | | `JsValue` | any | 任意 JS 值 | | `Vec` | Uint8Array | 二进制数组 | | `Option` | T 或 null | 可空类型 | > 说明: > - 通过 wasm-bindgen,Rust 和 JS 之间的数据类型会自动做转换。 > - 复杂类型(如结构体、枚举)需要额外标注和处理。 > - `JsValue` 适合传递任意 JS 数据,但需手动类型转换。 **wasm-bindgen** 是 Rust 与 JavaScript 之间进行高效交互的桥梁工具。它的主要作用是: - **类型转换**:自动实现 Rust 和 JS 之间的常用数据类型(如字符串、数字、数组、对象等)的安全转换。 - **导出/导入函数**:可以让 Rust 导出的函数被 JS 调用,也可以让 Rust 调用 JS 的全局函数(如 alert)。 - **生成 glue code**:自动生成 JS glue code,处理内存管理、类型转换等底层细节,让开发者专注于业务逻辑。 - **支持复杂类型**:不仅支持基础类型,还能通过宏和属性支持结构体、枚举、Option、Result 等复杂类型的交互。 **wasm-pack** 是一个用于构建、打包和发布 Rust WebAssembly 项目的工具链。它的主要作用是: - **一键构建**:自动调用 cargo 构建 Rust 代码为 wasm,并用 wasm-bindgen 生成 JS glue code。 - **npm 集成**:自动生成 npm 包结构(包括 package.json、类型声明等),方便直接在前端项目中通过 npm/yarn/pnpm 安装和使用。 - **开发体验提升**:支持 watch、测试、发布等常用开发流程,极大提升 Rust wasm 项目的开发效率。 - **兼容主流前端工具链**:生成的包可直接用于 webpack、vite、parcel 等现代前端构建工具。