Сегодня мы открываем исходный код и анонсируем wrangler, инструмент командной строки для создания, предварительного просмотра и публикации Rust и WebAssembly Cloudflare Workers.

Если для вас это звучит как словесный салат, это разумная реакция. Все три задействованные технологии являются относительно новыми и ожидаемыми: WebAssembly, Rust и Cloudflare Workers.

Почему именно WebAssembly?

Миссия Cloudflare - помочь улучшить Интернет. Мы рассматриваем Workers как расширение и без того невероятно мощной веб-платформы, где JavaScript позволил пользователям перейти от создания небольших элементов интерактивности к созданию полных приложений. Node.js сначала распространил это с клиента на сервер, объединив разработку веб-приложений на едином языке - JavaScript. Выбрав изоляты V8 (технология, на которой работает как Node.js, так и самый популярный браузер Chrome), мы стремились сделать продукт Workers полностью совместимой новой платформой для Интернета, исключив различие между сервером и клиентом. Используя свою большую глобальную сеть серверов, Workers позволяет пользователям запускать код как можно ближе к конечным пользователям, устраняя логику, связанную с задержкой, на стороне сервера или большие клиентские пакеты.

Но не все хотят писать JavaScript, а JavaScript не подходит для выражения каждого приложения. WebAssembly появился в 2017 году как способ дальнейшего расширения веб-платформы для приложений, таких как игры и другие ресурсоемкие программы, которые ранее были исключены из-за ограничений JavaScript.

Изоляты V8 дают нам как JavaScript, так и WebAssembly. Это означает, что вы можете использовать возможности прототипирования и обширную экосистему JavaScript наряду с мощью WebAssembly, которая, помимо быстрой, предсказуемой производительности, также открывает множество библиотек, написанных на языках, предназначенных для WebAssembly, таких как C, C ++. , и Rust.

WebAssembly on Workers устраняет компромиссы, которые изначально считались неразрешимыми: низкая задержка, высокая производительность и совместимость с веб-платформой - выберите три.

Почему ржавчина?

Rust - относительно новый язык программирования, цель которого - «дать каждому возможность создавать надежное и эффективное программное обеспечение». Это язык системного уровня, который предлагает пользователям широкие возможности управления, но при этом стремится предложить эргономичный, удобный и современный опыт разработки.

Рабочая группа Rust-WebAssembly в прошлом году приложила невероятные усилия для создания набора инструментов разработчика для WebAssembly. В Cloudflare мы рады поддержать эти усилия оплачиваемыми часами разработчиков и использовать эти усилия, чтобы дать нашим пользователям возможность начать использовать возможности WebAssembly on Workers прямо сейчас.

Есть несколько других наборов инструментов, включая Emscripten (C, C ++) и AssemblyScript (TypeScript), которые мы будем поддерживать в будущем. Rust - это только начало (но мы думаем, что это отличное место для начала!).

Почему сейчас?

При разработке новых высокотехнологичных продуктов легко увлечься обещаниями и видением - часто в ущерб передаче технологии в руки людей, которые будут использовать ее каждый день в будущем.

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

Первым шагом к достижению этого является создание инструментов, которые могут позволить людям взаимодействовать с новой платформой. wrangler - это инструмент, позволяющий сделать это. Этого достаточно, чтобы разблокировать пользователей, которые ранее не могли взаимодействовать с платформой из-за отсутствия проложенного пути.

Мы не планируем останавливаться на достигнутом. Люди справедливо заметят, что есть некоторые важные этапы рабочего процесса разработчика, которые отсутствуют в wrangler: линтинг, тестирование, сравнительный анализ и профилирование размеров - вот некоторые из них, которые приходят на ум. У нас есть большие планы, и мы очень рады построить больше, но мы очень хотим выпустить это сейчас, чтобы дать возможность большему количеству людей участвовать в процессе. Лучший способ узнать, что нужно разработчикам, - это спросить и выслушать. Создавая и открывая исходный код wrangler на таком раннем этапе, мы надеемся сократить цикл обратной связи между продуктом и пользователем и создать правильное вещь, быстрее.

Вы можете установить wrangler, используя cargo:

cargo install wrangler

Для начала перейдите в Документацию Cloudflare и следуйте руководству. Вы создадите и выполните предварительный просмотр Cloudflare Worker, который использует Rust, скомпилированный в WebAssembly, для синтаксического анализа Markdown.

Но не останавливайтесь на достигнутом. Просмотрите репо, сообщите о некоторых проблемах, создайте шаблоны проектов и напишите о своем опыте - мы хотим услышать от вас.

Мы очень рады видеть, что вы создаете!

Первоначально опубликовано на blog.cloudflare.com 28 марта 2019 г.