Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

webassembly-component-development

/webassembly-component-development

Buduje, składa i debuguje komponenty WebAssembly pod WASI 0.3 z natywną asynchronicznością, w tym zależności WIT i niezgodności wersji.

Repozytorium
skills ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
12.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
8
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
1
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Buduje, składa i debuguje komponenty WebAssembly pod WASI 0.3 z natywną asynchronicznością, w tym zależności WIT i niezgodności wersji.

Wyzwalacze z opisu

unknown import
Oryginalny opis (EN)

Build, compose, run, test and debug WebAssembly components targeting WASI 0.3 (wasip3) with native async. Use this skill whenever the user is building or troubleshooting a component or `.wasm` file, targeting `wasm32-wasip3` (or falling back to wasip2/wasip1), choosing an async approach, composing components with wac or wasm-tools, resolving WIT dependencies (wkg, wit-bindgen, `wash wit update`), hitting "unknown import" or version-mismatch errors, picking a runtime (wasmtime, jco, wasmCloud), or working across languages (Rust, JS/TS, Go, Python, C/C++). Also use it when the user mentions WASI

Jak działa

  1. Key Defaults
  2. Reference Files
  3. Related skills
Sekcje z nagłówków SKILL.md, w oryginale · 36 linii, 361 słów
Podgląd SKILL.md
---
name: webassembly-component-development
description: Build, compose, run, test and debug WebAssembly components targeting WASI 0.3 (wasip3) with native async. Use this skill whenever the user is building or troubleshooting a component or `.wasm` file, targeting `wasm32-wasip3` (or falling back to wasip2/wasip1), choosing an async approach, composing components with wac or wasm-tools, resolving WIT dependencies (wkg, wit-bindgen, `wash wit update`), hitting "unknown import" or version-mismatch errors, picking a runtime (wasmtime, jco, wasmCloud), or working across languages (Rust, JS/TS, Go, Python, C/C++). Also use it when the user mentions WASI, the component model, wasip3, or component composition. For designing or reviewing the WIT interfaces themselves (naming, capability scoping, errors, versioning), use wit-interface-design.
license: Apache-2.0
---

# WebAssembly Component Development

Build components against **WASI 0.3 (wasip3)**. It adds native async, `stream<T>` and `future<T>` to the component model, so most of the old workarounds (poll loops, `tokio_unstable`, third-party async runtimes) are no longer needed for new code. Fall back to wasip2 only when a runtime or dependency requires it.

## Key Defaults

- **Target:** `wasm32-wasip3` (Tier 2 in Rust, stable since 1.100.0). Use the `wasip3` crate for WASI bindings (`wasip2` crate for the fallback). Gate code with `#[cfg(all(target_os = "wasi", target_env = "p3"))]`.
- **Build:** use `wash build` when the project has `.wash/config.yaml`. For plugins use `wash build --skip-fetch` (the `wasmcloud:wash` interface isn't published). Otherwise `cargo build --target wasm32-wasip3 --release`.
- **Async:** use the component model's native async: `async fn` in exported handlers, `wit_stream` / `wit_future` for streams and futures, `wit_bindgen::spawn_local` for background tasks. Don't pull in `tokio` or `wstd` for new p3 code (see [async.md](async.md)).
- **Threading:** not available yet. `std::thread::spawn` returns an error on wasip3, and cooperative threading is still in development. Design single-threaded and avoid `rayon`.
- **Strings:** UTF-8. Avoid `as_encoded_bytes()`.
- **Version matching:** the runtime must implement the exact WASI 0.3.x versions your component imports. Check with `wasm-tools component wit component.wasm`.
- **wasmCloud docs:** use https://wasmcloud.com/docs/, never `/docs/v1/`.

## Reference Files

Load the relevant file when working on the matching topic:

| Topic | File |
|-------|------|
| Component Model, wasip3 vs wasip2, targets and worlds | [core-concepts.md](core-concepts.md) |
| Composition patterns, building with `wash` / `cargo`, `wac`, `.wash/config.yaml` | [composition-and-building.md](composition-and-building.md) |
| Languages and toolchains (Rust, JS/TS, Go, Python, C/C++) | [language-interop.md](language-interop.md) |
| Native async on wasip3: handlers, streams, futures, spawning; the wasip2 fallback (`tokio`, `wstd`) | [async.md](async.md) |
| Gotchas (threading, strings, networking), unknown-import errors, runtimes (wasmtime, jco, wasmCloud), version alignment | [gotchas-and-runtime.md](gotchas-and-runtime.md) |
| Testing with mock components, debugging workflow, error patterns, performance | [testing-debugging-performance.md](testing-debugging-performance.md) |
| Development practices, CI/CD, architecture patterns | [patterns-and-best-practices.md](patterns-and-best-practices.md) |
| Designing or reviewing WIT interfaces (naming, capability grants, errors, versioning) | the `wit-interface-design` skill |

## Related skills

- `wit-interface-design`: how to design the WIT contract.
- `wash`: the `wash build` / `wash dev` toolchain.
- `cosmonic-go`: Go components with `componentize-go` on async wasip3.
Pliki w paczce (8)
  • SKILL.md 4 KB
  • async.md 3 KB
  • composition-and-building.md 3 KB
  • core-concepts.md 2 KB
  • gotchas-and-runtime.md 4 KB
  • language-interop.md 2 KB
  • patterns-and-best-practices.md 3 KB
  • testing-debugging-performance.md 4 KB

Wersje

W bazie nie ma innych skilli o nazwie webassembly-component-development.

Migawka bazy z 13.11.2026 · wersja paczki d0a207e681a1 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100wash
    Pomaga w CLI wash do budowania i uruchamiania komponentów WebAssembly i aplikacji wasmCloud, w tym definicji WIT.
  • 95wasm
    Pomaga w integracji WebAssembly i WASI, modelu komponentów oraz kompilacji kodu Rust i Go do WASM.
  • 100wasmtime
    Prowadzi rozwój WebAssembly z runtime Wasmtime: kompilacja Rusta lub Zig do wasm, osadzanie Wasmtime w hostach Rust i Elixir, WASI i Component Model.
  • 100wasm-rust-expert
    Pomaga projektować granicę Rust i WebAssembly, integrację wasm-bindgen i web-sys, celowanie w WASI oraz wydajność Wasm.
  • 90agent-wasm-specialist
    Działa jako subagent specjalista od WebAssembly: WASI, wasm-bindgen, Emscripten i kompilacja między językami, w tym optymalizacja wydajności WASM.
  • 100webassembly-expert
    Tworzy produkcyjne moduły WebAssembly dla przeglądarki i serwera z dobrą wydajnością i integracją z JavaScript: WASI, kompilacja Rust, C i C++, Emscripten i wasmtime.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.