Logo
☆☆☆☆☆
0.0
Intermediate
9h

实用WebAssembly

WebAssembly,简称 WASM,是一种二进制指令格式,为多种编程语言(如 C/C++、Ruby、Java 等)提供了编译目标,以实现网页上的高效运行。本课程将教你如何将不同语言的原生代码转换为 WebAssembly,并进行优化以提升性能。 本中级课程介绍编译技术与虚拟机基础设施的基础知识。课程将讲解如何将 C/C++ 代码转换为 WebAssembly,以及如何通过 Emscripten 和 emsdk 等工具在 Node.js 或浏览器环境中加载二进制文件。你将学习 WebAssembly 文本格式(WAST)与二进制格式(WASM)之间的区别。课程还将提供从 WASM、WAST、C 到 JSON 等格式之间相互转换的详细步骤指南。此外,你还将学习使用 Binaryen 提供的工具。 完成本课程后,你将掌握如何将 Rust 集成到 WebAssembly 中,发布模块,并优化内存模型。

13 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
实用WebAssembly
WebAssembly,简称 WASM,是一种二进制指令格式,为多种编程语言(如 C/C++、Ruby、Java 等)提供了编译目标,以实现网页上的高效运行。本课程将教你如何将不同语言的原生代码转换为 WebAssembly,并进行优化以提升性能。 本中级课程介绍编译技术与虚拟机基础设施的基础知识...

WHAT YOU'LL LEARN

熟悉使用 Emscripten 创建 WebAssembly 二进制文件

Content

13 Lessons • 0 Quizzes • 0 Challenges

课程简介
  1. 1

    概览

理解 LLVM
  1. 1

    入门

  2. 2

    理解编译器

  3. 3

    探索 LLVM

  4. 4

    LLVM 实战

  5. 5

    测验自己:LLVM 基础知识

优化 Rust 和 WebAssembly
  1. 1

    最小化与分析:一个重要的方面

  2. 2

    减小 WebAssembly 模块的大小

  3. 3

    分析 WebAssembly 模块中的内存模型

  4. 4

    在 JavaScript 中创建一个内存对象以供 Rust 应用使用

  5. 5

    使用 Twiggy 分析 WebAssembly 模块

  6. 6

    自我测验:优化 Rust 和 WebAssembly 的基础知识

理解 Emscripten
  1. 1

    Emscripten 简介

  2. 2

    使用 Emscripten 生成 asm.js

  3. 3

    使用 Emscripten 在 Node.js 中运行 Hello World

  4. 4

    在浏览器中使用 Emscripten 运行 Hello World

  5. 5

    探索 emsdk 中的其他选项

  6. 6

    理解不同层次的优化

  7. 7

    测验自己:Emscripten 基础知识

结论
  1. 1

    总结

探索 WebAssembly 模块
  1. 1

    WebAssembly 模块简介

  2. 2

    了解 WebAssembly 的工作原理

  3. 3

    探索 WebAssembly 文本格式

  4. 4

    测验自己:WebAssembly 模块基础

附录
  1. 1

    使用 emsdk 安装 Emscripten

  2. 2

    安装 WABT

  3. 3

    安装 Binaryen

  4. 4

    安装 Rust

  5. 5

    安装 wasm-bindgen

  6. 6

    安装 wasm-pack 和 Twiggy

理解 WebAssembly 二进制工具包
  1. 1

    WebAssembly 二进制工具包简介

  2. 2

    将 WAST 转换为 WASM

  3. 3

    将 WASM 转换为 WAST

  4. 4

    将 WASM 转换为 C

  5. 5

    将 WAST 转换为 JSON

  6. 6

    了解 WABT 提供的其他一些工具

  7. 7

    自我测验:WebAssembly 二进制工具包基础

理解 WebAssembly 模块中的段(Sections)
  1. 1

    WebAssembly 模块中的段简介(orientation)

  2. 2

    导出和导入

  3. 3

    全局变量和常量

  4. 4

    开始函数

  5. 5

    共享内存

  6. 6

    测验自己:WebAssembly 模块中的段基础(checkpoint)

探索 Binaryen 及其工具
  1. 1

    二进制工具链简介

  2. 2

    wasm-as 工具

  3. 3

    wasm-dis 工具

  4. 4

    wasm-opt 工具

  5. 5

    wasm2js 工具

  6. 6

    测验自己:Binaryen 基础知识

将 Rust 与 WebAssembly 集成
  1. 1

    Rust 与 WebAssembly 入门

  2. 2

    通过 rustc 将 Rust 转换为 WebAssembly

  3. 3

    通过 Cargo 将 Rust 转换为 WebAssembly

  4. 4

    通过 wasm-bindgen 将 Rust 转换为 WebAssembly

  5. 5

    自我测验:Rust 与 WebAssembly 集成基础

使用 wasm-pack 打包 WebAssembly
  1. 1

    JavaScript 与 WebAssembly 的协同工作

  2. 2

    使用 webpack 打包 WebAssembly 模块

  3. 3

    使用 Parcel 打包 WebAssembly 模块

  4. 4

    介绍 wasm-pack

  5. 5

    使用 wasm-pack 打包与发布

  6. 6

    测验自己:wasm-pack 基础知识

跨越 Rust 与 WebAssembly 之间的边界
  1. 1

    Rust 与 WebAssembly 的交互

  2. 2

    从 Rust 与 JavaScript 共享类

  3. 3

    从 JavaScript 共享类到 Rust

  4. 4

    通过 WebAssembly 调用 JavaScript API

  5. 5

    通过 WebAssembly 调用闭包

  6. 6

    将 JavaScript 函数导入到 Rust 中

  7. 7

    通过 WebAssembly 调用 Web API

  8. 8

    自我测验:Rust 与 WebAssembly 边界限制基础

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)