WebAssembly (WASM) е преносим формат на двоичен код на ниско ниво, който работи на съвременни браузъри, точно както прави JavaScript. Всъщност WebAssembly също е съвместим с JavaScript. Можете да транспилирате повечето изходен код на програмата до WebAssembly и да го стартирате в браузъра със или без JavaScript.
Rust е бърз, което прави езика жизнеспособна опция за изграждане на програми за WebAssembly. Има много библиотеки и рамки на Rust в помощ, с поддръжка за инструментите, които използвате за изграждане на уеб приложения.
1. Библиотеката Сикамор
Явор е бърза, ергономична и интуитивна реактивна рамка, подобна на SolidJS. Можете да го използвате за създаване на уеб приложения в Rust, които използват силата на WebAssembly. Sycamore предоставя по-голямата част от функционалността, от която ще се нуждаете, за да създадете интерфейс на уеб приложение в Rust, така че няма да е необходимо да пишете JavaScript.
Sycamore също така осигурява оперативна съвместимост на рутер и JavaScript през Wasm-Bindgen, използвайки JS-sys или Web-Sys. Проектът възнамерява скоро да пусне функционалност за тестване и CSS.
За да използвате Sycamore, ще ви трябва скорошна версия на Rust—the wasm32-неизвестен-неизвестен цел. Ще ви е необходим и Trunk, за да създадете и групирате вашето приложение. Тъй като Sycamore е нов, ще бъде рисковано да използвате основната клонова библиотека в производството, освен ако не прибягвате до по-ранна версия.
2. Рамката на Тис
тис е Rust рамка за изграждане на многонишкови интерфейсни уеб приложения с помощта на WebAssembly. Той ви позволява да пишете Rust код и да транспилирате вашия Rust код в WASM, който може да работи на всяко устройство с поддръжка на WASM. Yew е съвместим с JavaScript (можете да използвате вашия npm пакети), а рамката предоставя макрос за взаимодействие с HTML елементи с Rust, като JSX в React.
Можете да започнете с Yew, като използвате пакета за приложения Trunk или WASMPack. Вижте документацията за това как да започнете, да взаимодействате с HTML и DOM API и транспилирайте вашия Rust код в WebAssembly.
Проектът Yew е много популярен, с над двадесет хиляди звезди в Github и пет хиляди потребители. Yew е стабилен, но проектът не е готов за производство и кодовата база се променя, така че може да срещнете грешки и прекъсвания.
3. Библиотеката Пърси
Пърси е колекция от библиотеки на Rust за изграждане на предни уеб приложения, захранвани от WebAssembly. Percy поддържа незабавно изобразяване от страна на сървъра. Проектът се отличава с изграждането на удобни за търсачката едностранични приложения (SPA).
Пърси предоставя html! макрос за генериране на виртуални DOM. Можете да ги преобразувате в DOM елементи във фронтенда или да ги използвате за операции в задния край на вашето приложение.
Пърси е все още много нов и въпреки че библиотеката не е готова за производство, проектът е много популярен, с над две хиляди звезди в Github.
4. Семейната рамка
семена е включена с батерии, задвижвана от WebAssembly рамка за изграждане на бързи уеб приложения в Rust. Рамката Seed предоставя система за шаблони, която използва синтаксис на макроси вместо подобен на JSX синтаксис на Yew. Освен това има вградена система за управление на състоянието за подобряване на производителността.
Семената са нови, а предварително изградените компоненти като устройства за събиране на дати са рядкост. Въпреки че Seed в момента не поддържа изобразяване от страна на сървъра, проектът има за цел скоро да го включи. В противен случай Seed е пълен с функции и можете да създавате готови за производство уеб приложения с него. Seed също използва архитектурата Elm с минимална конфигурация. Можете да създавате и групирате приложенията си с помощта на Trunk, Web Bundler или Seeder.
Можете също да използвате Seed за бекенд на вашето уеб приложение. Seed предоставя функционалност за изграждане на REST или GraphQL API с поддръжка за маршрутизиране и удостоверяване и интеграция на AuthO.
MoonZoon е лесна за използване рамка с пълен стек, поддържана от WebAssembly за фронтенд и бекенд приложения. Можете да пишете Rust, без да се налага да пишете HTML, CSS и JavaScript на фронтенда или REST, GraphQL или SQL на бекенда. MoonZoon е бърз, прост, мащабируем и удобен за SEO. Той предоставя CLI приложение за изграждане на уеб приложения, които са лесни за внедряване.
Философията на проекта MoonZoon е да се създаде много прост инструмент без специална терминология, изкуствени бариери или догми. Използвайки го, можете да се съсредоточите върху изграждането на уеб приложения, както желаете. Ще трябва да имате инсталиран WASM-Pack, за да изградите предния край. Бекендът на приложението MoonZoon работи на Actix-web и Warp, и двете популярни бекенд рамки на Rust. MoonZoon също така предоставя функция за удостоверяване.
Документацията на MoonZoon не се хоства в момента. За да използвате инструмента, можете да проверите файловете за маркиране в документи папка чрез проекта GitHub хранилище.
Може да сте взаимодействали с WebAssembly
WebAssembly беше пуснат за първи път през 2017 г., а World Wide Web Consortium (W3C) направи WebAssembly уеб стандарт през 2019 г. От 2019 г. компании като Cloudflare, Google и Dropbox използват технологията в производството.
Google Earth използва WebAssembly, Cloudflare го използва за Cloudflare Workers, а Dropbox използва WebAssembly за кодек на своя уебсайт.