WebAssembly
Почему Rust?
Предсказуемая производительность
Никаких непредсказуемых остановок для сбора мусора. Никаких снижений производительности JIT-компилятора. Только низкоуровневый контроль в паре с высокоуровневой эргономикой.
Маленький размер кода
Малый размер кода означает быструю загрузку страницы. Сгенерированный Rust .wasm
не содержит ненужных вещей, например, сборщика мусора. Дополнительные оптимизации и техника включения гарантированно исполняемого кода (tree shaking) удаляют мёртвый код.
Современные удобства
Живая экосистема библиотек, которая поможет вам взяться за дело. Выразительные абстракции с нулевой стоимостью. И приветливое сообщество, которое поможет вам учиться.
Начнём!
Узнайте больше о быстрой, безопасной и открытой виртуальной машине, зовущейся WebAssembly, и ознакомьтесь с её стандартом.
Узнать большеУзнайте как собрать, отладить, профилировать и развёртывать WebAssembly приложения с помощью Rust!
Читать книгуУзнать больше о WebAssembly на Mozilla Developer Network.
Узнать большеХорошо работает с JavaScript
Дополнение, а не замена
Мечта WebAssembly — не убить JavaScript, а работать вместе с ним, помогая в обработке тяжёлых или низкоуровневых задач — задач, которые выигрывают от подхода Rust к производительности.
Работает с привычным набором инструментов
Публикуйте пакеты WebAssembly, созданные с Rust, в реестр пакетов, такой как npm. Упаковывайте и отправляйте их с webpack, Parcel и подобными. Поддерживайте их с помощью таких инструментов, как npm audit
и Greenkeeper.
Бесшовная совместимость
Автоматически создавайте кодовые привязки между Rust, WebAssembly и JavaScript API. Получите преимущества таких библиотек, как web-sys
, предоставляющих предварительно упакованные привязки для всех web-платформ.
Промышленное использование
Мы можем скомпилировать Rust в WASM и вызывать его из Serverless функций, вплетённых в ткань Интернета. Это потрясающе и я с нетерпением жду этого.
– Steven Pack, Serverless Rust with Cloudflare Workers
Реализация библиотеки для source-map
на JavaScript превратилась в сложный и медленный код и мы переписали его на Rust. Rust не требует от нас сделать выбор в пользу ясности выражения или производительности во время исполнения.
– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly
Свойства [Rust] позволяют легко встроить кодек DivANS в web-страницу с помощью WASM, как показано выше.
– Daniel Reiter Horn и Jongmin Baek, Building Better Compression Together with DivANS