Guide for WebAssembly development with Wasmtime runtime. Use when compiling Rust or Zig to wasm, embedding Wasmtime in Rust or Elixir hosts, working with WASI, or using the Component Model.
Guides WebAssembly development using Wasmtime for compiling, embedding, and working with WASI or the Component Model.
npx claudepluginhub vinnie357/claude-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/guest-rust.mdreferences/guest-zig.mdreferences/host-elixir.mdreferences/host-rust.mdreferences/overview.mdWasmtime is a standalone, fast, secure WebAssembly runtime from the Bytecode Alliance. It implements the WebAssembly standard and extensions including WASI (WebAssembly System Interface) and the Component Model.
Activate when:
| Concept | Purpose |
|---|---|
| Engine | Shared compilation environment and configuration |
| Store | Per-instance state container (fuel, epoch, host data) |
| Module | Compiled .wasm binary (core module) |
| Component | Compiled component with typed interfaces (WIT-based) |
| Instance | Runtime instantiation of a module or component |
| Linker | Resolves imports by name, defines host functions |
| WIT | WebAssembly Interface Type language for component contracts |
| Language | Target | Tooling | Reference |
|---|---|---|---|
| Rust | wasm32-wasip1, wasm32-wasip2, wasm32-unknown-unknown | cargo-component, wit-bindgen | guest-rust.md |
| Zig | wasm32-wasi, wasm32-freestanding | zig build, build.zig | guest-zig.md |
| Language | Crate/Package | Async Support | Reference |
|---|---|---|---|
| Rust | wasmtime crate | Yes (tokio) | host-rust.md |
| Elixir | wasmex hex package | Via GenServer | host-elixir.md |
| Version | Status | Key Differences |
|---|---|---|
| WASIp1 (Preview 1) | Stable, widely supported | POSIX-like, fd_* functions, linear memory I/O |
| WASIp2 (Preview 2) | Current standard | Component Model-based, typed streams, async-ready |
Use WASIp2 for new projects. WASIp1 remains supported for existing code. See overview.md for migration details.
| Reference | Contents |
|---|---|
| overview.md | Installation, core concepts detail, Component Model, WIT syntax, WASI deep dive, resource limits, AOT compilation, debugging |
| guest-rust.md | Rust wasm targets, cargo-component, wit-bindgen, binary size optimization, testing strategies |
| guest-zig.md | Zig wasm targets, build.zig configuration, allocator patterns, WASI imports, exports |
| host-rust.md | Wasmtime Rust API, WASI context setup, Component Model bindgen!, async support, plugin system patterns |
| host-elixir.md | Wasmex API, GenServer integration, memory access, host callbacks, supervision patterns |
wasm32-wasip2 for Component Model, wasm32-wasip1 for legacy WASI, wasm32-unknown-unknown for bare modulesStore owns instance state — do not share stores across threads without synchronizationOutOfFuel trapsExpert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.