在 Red Hat 下的快速入门
在本指南中,我们将指导你如何在 Fedora / CentOS / Red Hat Linux / OpenShift 系统中快速运行 WasmEdge 应用程序。整个开发和运行环境由 OpenSift / Podman 管理,因此不需要额外的依赖。
如果你不使用 OpenShift / Podman,请从这里开始。
我们将涵盖以下示例。
- 运行独立的 WASM 应用
- [运行 HTTP 服务器](#运行一个 HTTP 服务器)
- [运行基于 JavaScript 的服务器 (node.js)](#运行一个基于 JavaScript 的服务器)
安装
你可以使用一行 dnf
命令在 Fedora / CentOS / Red Hat Linux 系统上安装 WasmEdge,crun 和 Podman。WasmEdge 运行时是 Fedora 37 和 Red Hat REPL 8、9 的官方维护上游包。
dnf install wasmedge crun-wasm podman
运行独立的 WASM 应用程序
Hello world 示例是一个独立的 Rust 应用程序。其源代码和构建说明可在此处找到。
使用 Podman 运行容器化的 WASM 应用。WASM 容器镜像存储在 Docker Hub 中,其镜像大小仅为 500KB。该镜像可在 Red Hat 支持的任何 OS 和 CPU 平台上运行。
$ podman --runtime /usr/bin/crun-wasm run --platform=wasi/wasm -t --rm docker.io/secondstate/rust-example-hello:latest
Hello WasmEdge!
了解如何在 Rust 中创建 WASM 应用的更多信息
- WasmEdge 的基本 Rust 示例
- Rust 开发人员指南
- 使用 PyTorch、OpenVINO 或 Tensorflow Lite 后端的 WASI-NN
- HTTP 和 HTTPS 客户端
- MySQL 数据库客户端
- Redis 客户端
- Kafka 客户端
运行 HTTP 服务器
该示例是一个独立的用 Rust 编写的 HTTP 服务器。它演示了 Rust + WasmEdge 作为微服务的轻量级技术栈。其源代码和构建说明可在此处找到。
使用 Podman 从 Docker Hub 拉取容器镜像(大约 800KB),然后在 WasmEdge 容器中运行它。容器作为服务器启动。请注意,我们将容器的端口 8080 映射到本地主机的端口 8080,以使服务器从 WASM 容器外部访问。
$ podman --runtime /usr/bin/crun-wasm run -dp 8080:8080 --platform=wasi/wasm -t --rm docker.io/secondstate/rust-example-server:latest
Listening on http://0.0.0.0:8080
从另一个终端窗口执行以下命令。
$ curl http://localhost:8080/
Try POSTing data to /echo such as: `curl localhost:8080/echo -XPOST -d 'hello world'`
$ curl http://localhost:8080/echo -X POST -d "Hello WasmEdge"
Hello WasmEdge
了解如何在 Rust 中创建 WASM 服务的更多信息
- Rust 开发者指南
- HTTP 应用示例
- 数据库应用示例
- Rust 和 WasmEdge 中的轻量级微服务
运行基于 JavaScript 的服务器
此示例是使用 Node.js API 编写的独立 HTTP 服务器,演示了 WasmEdge 作为零依赖和可移动的 Node.js 应用的轻量级运行时。其源代码可在此处找到。
$ podman --runtime /usr/bin/crun-wasm run -dp 8080:8080 --platform=wasi/wasm -t --rm docker.io/secondstate/node-example-server:latest
... ...
从另一个终端窗口执行以下命令。
$ curl http://localhost:8080/echo -X POST -d "Hello WasmEdge"
Hello WasmEdge
了解如何在 WasmEdge 中运行 JavaScript 应用的更多信息。
下一步
- WasmEdge 的基本 Rust 示例
- 用你喜欢的语言编写 WASM 应用,如 Rust、C/C++、JavaScript、Go 以及其他许多语言。