Rust — это язык системного программирования. Он работает молниеносно быстро. Он гарантирует потокобезопасность и не обещает висячего указателя.
Зачем мне учить еще один язык, что такого интересного в Rust?
- У него лучшая эргономика.
- Более простой и явный синтаксис с некоторыми приятными неявными синтаксисами.
- Он включает в себя лучшее из обоих миров (языки высокого и низкого уровня).
- Легче учиться и гораздо проще отлаживать. (посмотрите на сообщение об ошибке ниже от Rust).
- Он быстро развивается, чтобы предоставить разработчикам лучший опыт.
Возвращаясь к нашему следующему герою в этой истории, WebAssembly.
WebAssembly простым языком, это запуск вашего нативного кода (C/C++/Rust и др.) в браузере. Это быстро, безопасно и ремонтопригодно.
Они представляют собой набор двоичных инструкций, которые работают на любой машине, основанной на стеке.
Поставщики браузеров предприняли несколько попыток запустить собственный код в браузере. Одна вещь, которая была широко популярна, была asm.js
. Но и у него было много ограничений.
WebAssembly — это инструкции в двоичном коде, которые эффективны по размеру и времени загрузки. Они безопасны и работают в изолированной среде.
Подождите, разве Javascript не быстрый. Да, вы можете достичь нативной скорости в Javascript. Но работа вокруг и количество усилий, которые вы должны потратить, высоки. Но с WebAssembly вы можете получить это прямо из коробки.
Поддерживаемая производительность является ключом.
Давайте начнем с Rust и WebAssembly.
Для начала вам нужно будет установить Rust-lang (и использовать ночную версию rustup default nightly
).
Затем добавьте wasm32-unknown-unknown
в цепочку инструментов. Это заставит компилятор Rust скомпилировать код Rust в WebAssembly ( rustup target add wasm32-unknown-unknown --toolchain nightly
).
Проверьте здесь для более подробных шагов.
Пример настройки hello-world подробно описан здесь.
Есть определенные инструменты, которые помогут вам достичь еще большего с Rust и WebAssembly.
- wasm-bindgen — источник
- wasm-snip — источник
- wasm-pack — источник
Посмотрите нашу рассылку здесь.