WebRacket, popüler programlama dili Racket'ın WebAssembly (wasm) formatına derlenen bir alt kümesidir. Projenin uzun vadeli hedefi tam Racket desteği sunmak olsa da, mevcut haliyle bile geliştiricilerin web için pratik uygulamalar oluşturmasına olanak tanıyacak kadar geniş bir desteğe sahiptir. Üretilen WebAssembly kodu hem tarayıcıda (ana odak noktası) hem de Node.js aracılığıyla terminalde çalıştırılabilir. WebRacket compiler, WebAssembly'nin yaygın olarak desteklenen özelliklerini kullanarak Chrome, Firefox ve Safari gibi modern tarayıcılarda uyumluluk sağlamayı hedefler.
WebRacket'ın en önemli özelliklerinden biri, standart JavaScript fonksiyonlarını ve tarayıcıya özgü API'leri kullanmayı mümkün kılan JavaScript FFI (Foreign Function Interface) desteğidir. Bu sayede DOM, Canvas, MathJax, XTermJS ve JSXGraph gibi kütüphaneler için hazır bağlayıcılar sunulmaktadır. Racket geliştiricileri, bu proje sayesinde JavaScript'ten kaçınarak doğrudan Racket ile tarayıcıda çalışan uygulamalar geliştirebilir ve hatta WebRacket fonksiyonlarını JavaScript tarafında olay geri çağırımları olarak kullanabilirler.
Desteklenen Racket özellikleri arasında flonum ve fixnum sayı türleri, dört farklı türde değiştirilebilir hash tabloları, süper yapılar ve uygulanabilir yapılar gibi yapısal özellikler bulunmaktadır. Ayrıca, standart Racket genişleticisi kullanıldığı için for ve match gibi birçok sentaktik form desteklenmektedir. Kuyruk çağrıları, çoklu değerler ve yukarı doğru akan istisnalar da mevcuttur. Ancak, module formları, değişmez hash tabloları, düzenli ifadeler, dosya portları ve call/cc gibi devamlılık mekanizmaları gibi bazı özellikler henüz desteklenmemektedir veya geliştirme aşamasındadır. Proje, Racket topluluğunun WebAssembly ile deneyler yapmasını teşvik etmeyi ve nihayetinde Racket compiler'ına bir WebAssembly arka ucu eklenmesine zemin hazırlamayı ummaktadır.
Racket geliştiricilerine, JavaScript'e ihtiyaç duymadan doğrudan tarayıcıda çalışan WebAssembly tabanlı uygulamalar oluşturma imkanı sunarak web geliştirme ekosistemini genişletiyor.