# WebAssembly

Adres: https://softwaredictionary.org/tr/terimler/webassembly
Kategori: Web Geliştirme
Son güncelleme: 2026-09-30
Okunuşu: vebısembli

Kısaca: WebAssembly, web tarayıcılarında yerele yakın hızda çalışan ve C++, Rust, Go gibi dillerle hızlı web kodu yazılmasını sağlayan kompakt bir ikili kod biçimidir.

## WebAssembly nedir?

Genellikle Wasm diye kısaltılan WebAssembly, tarayıcıların JavaScript ile birlikte çalıştırabildiği düşük seviyeli bir komut biçimidir. Geliştiriciler onu nadiren elle yazar; bunun yerine C, C++, Rust, Go veya C# gibi dillerde yazılmış kodu bir `.wasm` dosyasına derler; tarayıcı da bu dosyayı indirir, doğrular ve hızlı makine koduna dönüştürür.

Wasm, görsel ve video düzenleme, 3D oyunlar, tasarım ve CAD araçları, ses işleme, bilimsel hesaplama ve tarayıcıda yapay zekâ modelleri çalıştırma gibi tek başına JavaScript için fazla ağır işler için tasarlanmıştır. Ayrıca ekiplerin başka dillerde yazılmış mevcut kütüphaneleri JavaScript'e yeniden yazmak yerine web'de yeniden kullanmasını sağlar.

Bir Wasm modülü, sayfaya, ağa ya da dosyalara doğrudan erişimi olmayan bir sandbox içinde çalışır; yalnızca JavaScript'in ona açıkça verdiklerini kullanabilir. JavaScript modülü yükler, dışa aktarılmış fonksiyonlarını çağırır ve DOM'u yönetir; ikisi böylece ortak çalışır. JavaScript'i müşterilerle konuşan yönetici, WebAssembly'yi ise arka odada ağır hesapları yapan uzman olarak düşünebilirsiniz.

Yaygın bir yanılgı, WebAssembly'nin JavaScript'in yerini almak için tasarlandığıdır. O bir tamamlayıcıdır: web arayüzü kodunun çoğu hâlâ JavaScript ya da TypeScript ile yazılır, Wasm ise performansın kritik olduğu kısımları üstlenir. WebAssembly tarayıcıların dışında da, sunucularda, uç (edge) platformlarında ve eklenti sistemlerinde çalışır; orada WebAssembly System Interface (WASI) ona dosyalara ve diğer sistem kaynaklarına kontrollü erişim verir.

## Önemli noktalar

- WebAssembly (Wasm), yerele yakın hızda çalışan ikili bir biçimdir.
- C++, Rust ve Go gibi dillerdeki kod Wasm'a derlenebilir.
- Güvenli bir sandbox içinde çalışır ve JavaScript ile birlikte kullanılır.
- Oyunlar, medya düzenleme ve tarayıcı içi yapay zekâ gibi ağır işlere uygundur.
- WASI, Wasm'ın tarayıcı dışında, sunucularda ve uçta çalışmasını sağlar.

## Örnek: JavaScript'ten bir WebAssembly modülü yüklemek

```javascript
// Load a compiled module (for example, one written in Rust or C++)
const { instance } = await WebAssembly.instantiateStreaming(
  fetch("/math.wasm")
);

// Call a function exported by the module like a normal JS function
const result = instance.exports.add(2, 3);
console.log(result); // 5
```

## Sık sorulan sorular

**WebAssembly, JavaScript'in yerini alacak mı?**

Hayır. WebAssembly, JavaScript'in yerini almak için değil, onunla birlikte çalışmak için tasarlanmıştır. Arayüz işlerinin ve DOM erişiminin çoğunu hâlâ JavaScript üstlenir; Wasm ise hesaplama yoğun kısımları hızlandırır.

**WebAssembly, JavaScript'ten hızlı mıdır?**

Sayı işleme, görüntü işleme veya fizik gibi işlemci yoğun işlerde WebAssembly genellikle daha hızlı ve daha öngörülebilirdir. Tipik arayüz kodunda ise modern JavaScript motorları zaten hızlıdır ve ikisi arasında veri taşımanın da kendi maliyeti vardır.

**WebAssembly DOM'a erişebilir mi?**

Doğrudan erişemez. Bir Wasm modülü yalnızca JavaScript'in kendisine sağladığı fonksiyonları çağırabilir; bu yüzden DOM güncellemeleri, çoğu zaman derleyici araç zinciri tarafından üretilen yapıştırma koduyla JavaScript üzerinden yapılır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
