WebAssembly (WASM), tıpkı JavaScript gibi modern tarayıcılarda çalışan, taşınabilir, düşük seviyeli bir ikili kod biçimidir. Aslında, WebAssembly ayrıca JavaScript ile birlikte çalışabilir. Çoğu program kaynak kodunu WebAssembly'ye aktarabilir ve JavaScript ile veya JavaScript olmadan tarayıcıda çalıştırabilirsiniz.
Rust hızlıdır ve dili WebAssembly programları oluşturmak için uygun bir seçenek haline getirir. Web uygulamaları oluşturmak için kullandığınız araçları destekleyen birçok Rust kitaplığı ve çerçevesi vardır.
1. Çınar Kütüphanesi
çınar hızlı, ergonomik ve sezgisel bir SolidJS benzeri reaktif çerçevedir. Bunu, Rust'ta WebAssembly'nin gücünden yararlanan web uygulamaları oluşturmak için kullanabilirsiniz. Sycamore, Rust'ta bir web uygulaması ön ucu oluşturmak için ihtiyaç duyacağınız işlevlerin çoğunu sağlar, böylece JavaScript yazmanıza gerek kalmaz.
Sycamore ayrıca JS-sys veya Web-Sys kullanarak Wasm-Bindgen üzerinden bir yönlendirici ve JavaScript birlikte çalışabilirliği sağlar. Proje, yakında test ve CSS işlevselliğini yayınlamayı planlıyor.
Sycamore'u kullanmak için Rust'ın yeni bir sürümüne ihtiyacınız olacak. wasm32-bilinmeyen-bilinmeyen hedef. Uygulamanızı oluşturmak ve paketlemek için Trunk'a da ihtiyacınız olacak. Sycamore yeni olduğu için, daha önceki bir sürüme başvurmanız dışında, üretimde ana dal kitaplığını kullanmak riskli olacaktır.
2. Porsuk Çerçevesi
porsuk ağacı WebAssembly kullanarak çok iş parçacıklı ön uç web uygulamaları oluşturmaya yönelik bir Rust çerçevesidir. WASM destekli herhangi bir cihazda çalışabilen Rust kodunu yazmanıza ve Rust kodunuzu WASM'ye aktarmanıza olanak tanır. Yew, JavaScript ile birlikte çalışabilir ( npm paketleri) ve çerçeve, React'teki JSX gibi, HTML öğeleriyle Rust ile etkileşim kurmak için bir makro sağlar.
Trunk uygulama paketleyicisini veya WASMPack'i kullanarak Yew ile başlayabilirsiniz. Nasıl başlayacağınız, HTML ile nasıl etkileşim kuracağınız ve DOM API'leri ve Rust kodunuzu WebAssembly'ye aktarın.
Yew projesi Github'da yirmi binden fazla yıldız ve beş bin kullanıcı ile çok popüler. Porsuk kararlı, ancak proje üretime hazır değil ve kod tabanı değişiyor, bu nedenle hatalar ve kesintiler yaşayabilirsiniz.
3. Percy Kütüphanesi
Percy WebAssembly tarafından desteklenen ön uç web uygulamaları oluşturmaya yönelik bir Rust kitaplıkları koleksiyonudur. Percy, anında sunucu tarafı oluşturmayı destekler. Proje, arama motoru dostu tek sayfalık uygulamalar (SPA) oluşturmada mükemmeldir.
Percy sağlar html! sanal DOM'ler oluşturmak için makro. Bunları ön uçta DOM öğelerine dönüştürebilir veya uygulamanızın arka ucundaki işlemler için kullanabilirsiniz.
Percy hala çok yeni ve kütüphane üretime hazır olmasa da proje Github'da iki binden fazla yıldızla çok popüler.
4. Tohum Çerçevesi
Tohum Rust'ta hızlı web uygulamaları oluşturmak için pil içeren, tam yığın WebAssembly ile çalışan bir çerçevedir. Seed çerçevesi, Yew'in JSX benzeri sözdizimi yerine bir makro sözdizimi kullanan bir şablonlama sistemi sağlar. Ayrıca üretkenliği artırmak için yerleşik bir durum yönetim sistemine sahiptir.
Tohum yenidir ve tarih seçiciler gibi önceden oluşturulmuş bileşenler nadirdir. Seed şu anda sunucu tarafı oluşturmayı desteklemese de, proje yakında bunu dahil etmeyi hedefliyor. Aksi takdirde, Seed tam özelliklidir ve onunla üretime hazır web uygulamaları oluşturabilirsiniz. Seed ayrıca minimum konfigürasyonla Elm mimarisini kullanır. Trunk, Web Bundler veya Seeder kullanarak uygulamalarınızı oluşturabilir ve paketleyebilirsiniz.
Seed'i web uygulamanızın arka ucu için de kullanabilirsiniz. Seed, yönlendirme ve kimlik doğrulama desteği ve AuthO entegrasyonu ile REST veya GraphQL API'leri oluşturmak için işlevsellik sağlar.
AyZoon ön uç ve arka uç uygulamaları için kullanımı kolay, tam yığın, WebAssembly destekli bir çerçevedir. Ön uçta HTML, CSS ve JavaScript veya arka uçta REST, GraphQL veya SQL yazmak zorunda kalmadan Rust yazabilirsiniz. MoonZoon hızlı, basit, ölçeklenebilir ve SEO dostudur. Dağıtımı kolay web uygulamaları oluşturmak için bir CLI uygulaması sağlar.
MoonZoon proje felsefesi, özel terminoloji, yapay engeller veya dogma olmadan çok basit bir araç yaratmaktır. Bunu kullanarak, istediğiniz gibi web uygulamaları oluşturmaya odaklanabilirsiniz. Ön ucu oluşturmak için WASM-Pack'in kurulu olması gerekir. MoonZoon uygulamasının arka ucu, her ikisi de popüler Rust arka uç çerçeveleri olan Actix-web ve Warp üzerinde çalışır. MoonZoon ayrıca kimlik doğrulama işlevi sağlar.
MoonZoon belgeleri şu anda barındırılmıyor. Aracı kullanmak için, şuradaki markdown dosyalarına göz atabilirsiniz. dokümanlar proje aracılığıyla klasör GitHub deposu.
WebAssembly İle Etkileşim Yapmış Olabilirsiniz
WebAssembly ilk olarak 2017'de piyasaya sürüldü ve World Wide Web Konsorsiyumu (W3C), WebAssembly'ı 2019'da bir web standardı haline getirdi. 2019'dan beri Cloudflare, Google ve Dropbox gibi şirketler teknolojiyi üretimde kullandı.
Google Earth, WebAssembly'ı kullanır, Cloudflare, Cloudflare Workers için kullanır ve Dropbox, web sitesinde bir codec bileşeni için WebAssembly'ı kullanır.