---
name: wasm-build
description: FikoYT-zorro.com Rust WASM modülünü derler ve Angular public klasörüne kopyalar. Use when user mentions "WASM", "Rust", "fikoyt-wasm", "build wasm", "wasm-bindgen", or after editing files in fikoyt-zorro.com/fikoyt-wasm/src/.
disable-model-invocation: true
---

# WASM Build Pipeline

FikoYT 3D engine için Rust→WASM derleyicisi. CAD geometri işlemleri (STEP parse, edge detection, batch raycast) için kullanılır.

## Pipeline

`cargo build` → `wasm-bindgen` → `wasm-opt` → `public/assets/fikoyt-wasm/` kopyala

## Geliştirme Build

```bash
cd fikoyt-zorro.com/fikoyt-wasm
bash build.sh
```

## Production Build (agresif optimizasyon)

```bash
cd fikoyt-zorro.com/fikoyt-wasm
bash build-production-wasm.sh
```

## Manuel Adımlar

```bash
cd fikoyt-zorro.com/fikoyt-wasm

# 1. Cargo derle
cargo build --target wasm32-unknown-unknown --release

# 2. wasm-bindgen ile JS glue üret
wasm-bindgen target/wasm32-unknown-unknown/release/fikoyt_wasm.wasm \
  --out-dir pkg --target web --typescript

# 3. wasm-opt ile küçült (SIMD + bulk-memory)
wasm-opt pkg/fikoyt_wasm_bg.wasm -o pkg/fikoyt_wasm_bg.wasm \
  -Os --enable-simd --enable-bulk-memory

# 4. Angular public/'a kopyala
cp pkg/fikoyt_wasm* ../public/assets/fikoyt-wasm/
```

## Doğrulama

```bash
ls -lh ../public/assets/fikoyt-wasm/
# fikoyt_wasm_bg.wasm     ~120-150 KB (8 byte ise placeholder, build başarısız)
# fikoyt_wasm_bg.js       glue code
# fikoyt_wasm.js          modül exports
# fikoyt_wasm.d.ts        TypeScript tanımları
```

## Önkoşullar

```bash
# Rust kurulumu (Yönetici terminal)
.\rustup-init.exe -y
rustup target add wasm32-unknown-unknown

# wasm-bindgen-cli
cargo install wasm-bindgen-cli

# wasm-opt (opsiyonel, küçültme için)
cargo install wasm-opt
# veya https://github.com/WebAssembly/binaryen/releases
```

## Hata Durumları

- **"linking with cc failed"**: Visual Studio C++ build tools eksik
- **"wasm-bindgen versiyon uyumsuzluğu"**: `Cargo.toml`'daki `wasm-bindgen` ile CLI versiyonu eşleşmeli
- **"8 byte WASM"**: Build script `cp` adımında başarısız - `pkg/` klasörünü kontrol et
