Rust в javascript


Зачем нам нужен rust в javascript?

Мы уже давно используем транспиляторы и бандлеры на базе javascript и достигли многого.
используя этот однопоточный язык. Но поскольку мы продолжаем создавать все более и более сложные вещи, полагаться на этот язык будет не идеально.
этот язык не будет идеальным по разным причинам.

Одной из таких причин является медлительность javascript. Сам по себе javascript не является медленным, но когда дело доходит до задач, требующих интенсивного использования процессора.
он сильно замедляется. Другая причина – сборка мусора
в javascript, где управление памятью осуществляется самим языком, в отличие от C++ & Rust. Поэтому для ускорения процесса сборки
нам нужно решение на другом языке, и здесь на помощь приходит Rust. Что мне нравится в Rust, так это его компилятор, который
выдает самоочевидные сообщения об ошибках, чего не могут сделать такие языки, как javascript.

Rust

Rust – это низкоуровневый язык программирования, экономящий память. Он в основном используется в системах,
где важна производительность, например, в игровых движках, операционных системах, базах данных и т.д. Поэтому он является отличным выбором для
создания транспондеров и бандлеров для javascript. Rust используется такими крупными компаниями, как Discord, Nextjs, AWS, Cloudfare,
и т.д. Это не означает, что веб-разработчики должны сразу же начать изучать rust, но вы можете начать использовать инструменты, построенные на rust, и постепенно внедрять rust в свою работу.
rust и постепенно начать внедрять rust в свой поток. Ниже перечислены несколько интересных инструментов, созданных на основе rust для
javascript,

SWC (Speedy Web Compiler)

SWC используется для пакетирования и транспонирования javascript / typescript и создания вывода, который принимается большинством браузеров.
Считается, что SWC в 20 раз быстрее, чем Babel, где первый построен на rust, а второй – на javascript. SWC
поддерживается компанией Vercel, а Nextjs активно использует его в своей экосистеме. Ниже перечислены функции, которые они поддерживают
на данный момент,

  • Компиляция
  • Пакетирование (swcpack)
  • Минификация
  • Преобразование с помощью WebAssembly
  • Использование внутри webpack (swc-loader)
  • Улучшение производительности Jest (@swc/jest)
  • Пользовательские плагины

Чтобы начать использовать swc, вы можете установить @swc/cli и @swc/core, допустим, у вас есть файл javascript под названием index.js, тогда вы можете
выполнить следующую команду для создания транспонированного js файла в output.js,

npx swc ./index.js -o output.js
Вход в полноэкранный режим Выйти из полноэкранного режима
// index.js
const test = () => {
  console.log("hello world");
};
Войти в полноэкранный режим Выйти из полноэкранного режима
// output.js
var test = function () {
  console.log("hello world");
};

//# sourceMappingURL=output.js.map
Войти в полноэкранный режим Выход из полноэкранного режима

Ознакомьтесь с этой игровой площадкой swc, чтобы узнать больше о функциональных возможностях, которые поддерживает swc.

Deno

Deno – это среда выполнения для javascript, как и Node.js, но в отличие от
node она также может использоваться как среда выполнения для typescript и webAssembly. Deno построен на основе rust и также
использует SWC для линтинга и форматирования кода. Считается, что это улучшенная версия node с точки зрения скорости и безопасности.
Он был создан в основном для того, чтобы избежать использования централизованной системы репозиториев (npm) и “тяжелых инструментов”.

Rust & WebAssembly

Webassembly – это машинный язык, который принимается браузерами, и они работают почти с “родной” скоростью.
скорость. Впервые он был представлен в 2017 году, и сейчас многие приложения используют его. Существуют различные инструменты для компиляции
чтобы разработчики других языков программирования могли внести свой вклад в веб. Для того чтобы
сгенерировать код wasm, вам нужен компилятор для его преобразования.

Существуют различные библиотеки/компиляторы для преобразования различных языков в web-ассемблер, например, для преобразования
C++ в wasm есть Emscripten, также есть Asterius, компилятор Haskell в wasm, и
еще одна библиотека для преобразования typescript в wasm – Assembly script. Rust фактически компилирует
в wasm, чтобы мы могли запускать его в браузерах. Команда Rust стремится к созданию
высококачественной и передовой реализации WASM.

Заключение

Как и Rust, у нас есть еще один язык программирования под названием Go Lang, который постепенно завоевывает свое место в экосистеме инструментов javascript.
экосистеме. У нас есть esbuild, который, как говорят, является самым быстрым упаковщиком js-модулей, и vite использует esbuild для упаковки js-кода, который мы пишем.
код, который мы пишем. ESBuild построен с использованием Go. Rust имеет более сложную кривую обучения
по сравнению с Go, но Go не был создан для создания систем или инструментария, Go lang чаще используется для создания web apis’.
и может рассматриваться как хорошая альтернатива Nodejs.

Мне многое нравится в rust, начиная с управления памятью, прямого & самоочевидных сообщений erorr и т.д., и я планирую изучить его.
я планирую изучить его, создав небольшой js модуль bundler, о котором я, возможно, напишу блог в будущем.
будущем 😉.

Оцените статью
Procodings.ru
Добавить комментарий