Web­Assembly

Почему Rust?

Шестерни

Предсказуемая производительность

Никаких непредсказуемых остановок для сбора мусора. Никаких снижений производительности JIT-компилятора. Только низкоуровневый контроль в паре с высокоуровневой эргономикой.

Микроскоп

Маленький размер кода

Малый размер кода означает быструю загрузку страницы. Сгенерированный Rust .wasm не содержит ненужных вещей, например, сборщика мусора. Дополнительные оптимизации и техника включения гарантированно исполняемого кода (tree shaking) удаляют мёртвый код.

Тележка с багажом

Современные удобства

Живая экосистема библиотек, которая поможет вам взяться за дело. Выразительные абстракции с нулевой стоимостью. И приветливое сообщество, которое поможет вам учиться.

Начнём!

Логотип WebAssembly

Узнайте больше о быстрой, безопасной и открытой виртуальной машине, зовущейся WebAssembly, и ознакомьтесь с её стандартом.

Узнать больше
wasm ferris

Узнайте как собрать, отладить, профилировать и развёртывать WebAssembly приложения с помощью Rust!

Читать книгу
Логотип MDN

Узнать больше о WebAssembly на Mozilla Developer Network.

Узнать больше

Хорошо работает с JavaScript

Дополнение, а не замена

Мечта WebAssembly — не убить JavaScript, а работать вместе с ним, помогая в обработке тяжёлых или низкоуровневых задач — задач, которые выигрывают от подхода Rust к производительности.

Работает с привычным набором инструментов

Публикуйте пакеты WebAssembly, созданные с Rust, в реестр пакетов, такой как npm. Упаковывайте и отправляйте их с webpack, Parcel и подобными. Поддерживайте их с помощью таких инструментов, как npm audit и Greenkeeper.

Бесшовная совместимость

Автоматически создавайте кодовые привязки между Rust, WebAssembly и JavaScript API. Получите преимущества таких библиотек, как web-sys, предоставляющих предварительно упакованные привязки для всех web-платформ.

Промышленное использование

Логотип cloudflare
Мы можем скомпилировать Rust в WASM и вызывать его из Serverless функций, вплетённых в ткань Интернета. Это потрясающе и я с нетерпением жду этого.

– Steven Pack, Serverless Rust with Cloudflare Workers

Реализация библиотеки для source-map на JavaScript превратилась в сложный и медленный код и мы переписали его на Rust. Rust не требует от нас сделать выбор в пользу ясности выражения или производительности во время исполнения.

– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly

dropbox
Свойства [Rust] позволяют легко встроить кодек DivANS в web-страницу с помощью WASM, как показано выше.

– Daniel Reiter Horn и Jongmin Baek, Building Better Compression Together with DivANS