- PVSM.RU - https://www.pvsm.ru -

Код Rust включен в Firefox 48

Код Rust включен в Firefox 48 - 1Компонент, написанный на Rust, впервые заменил компонент на C++ в браузере Firefox, и это только начало!

Mozilla любит Rust

Трудно поверить, что прошло почти семь лет с тех пор как Mozilla Research впервые начала спонсировать разработку Rust [1] — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В то время это был не более чем амбициозный исследовательский эксперимент, вокруг которого образовалось небольшое, но преданное сообщество. Удивительно, что несмотря на долгую историю изобретений и открытий, Rust сохранил свой ключевые принципы. Изначально разработчики хотели создать безопасную альтернативу C++, повысить эффективность системного программирования, защитить критическое программное обеспечение от эксплоитов памяти, упростить работу с параллельными алгоритмами — вот почему Mozilla поддержала проект Rust и, в конечном счёте, начала использовать Rust в стабильной версии браузера.

Столько же многообещающим событием стало то, что безопасность и современные функции Rust привлекают новых людей в системное программирование. Для Mozilla, где совместная работа сообщества буквально прописана в нашей миссии [2], расширение круга разработчиков жизненно важно.

Так что я рад отметить важную веху: в Firefox 48 Mozilla включит первый компонент на Rust для всех десктопных платформ, а скоро появится и поддержка Android.

Внедрение Rust в медиастек Mozilla

Одной из первых использовать Rust в Mozilla начала команда Media Playback. Сейчас вполне очевидно, что медиа является ключевым элементом работы в современном вебе. Что может быть не так очевидно для не-параноиков, так это что каждый раз, когда запускается безобидное, на первый взгляд, видео (скажем, как хамелеончик лопает пузыри [3]), браузер считывает данные в сложном формате и созданные кем-то, кого вы не знаете и кому не доверяете. Как выясняется, с помощью медиаформатов можно манипулировать декодерами и вытаскивать неприятные уязвимости в безопасности [4]. Они эксплуатируют баги в механизме управления памятью, которые реализован в коде веб-браузеров.

По этой причине безопасный для памяти язык программирования [5] вроде Rust становится неотделимым дополнением в наборе инструментов Mozilla для защиты от потенциально вредоносного медийного контента в вебе. По этой причине, Ральф Жиль (Ralph Giles) и Мэтью Греган (Matthew Gregan) разработали в Mozilla первый медиапарсер на Rust [6]. И я рад сообщить, что их код станет первым компонентом на Rust, который войдёт в состав Firefox. Это реальное достижение также для сообщества Rust: код Rust будет работать на сотнях миллионов компьютеров у пользователей Firefox. Наши предварительные исследования показывают, что компонент на Rust отлично проявляет себя и не уступает оригинальному компоненту на C++, место которого он займёт — но теперь реализован на безопасном для памяти языке программирования.

Код Rust включен в Firefox 48 - 2 [7]
Телеметрия Firefox не показывает ни одной проблемы за более чем миллиард запусков нового кода на Rust

Ещё больше впереди!

Многие люди заслужили огромную благодарность за помощь. Ральф Жиль и Мэтью Греган реализовали компонент, а Натан Фройд (Nathan Froyd), Ник Нетеркот (Nick Nethercote), Тед Мильчарек (Ted Mielczarek), Грегори Шорц (Gregory Szorc) и Алекс Кричтон (Alex Crichton) способствовали интеграции Rust в билд Firefox и в его инструментальную систему, а также обеспечили его поддержку на всех платформах.

Rust сам по себе — продукт потрясающего, живого сообщества. Ничего из этой работы не стало бы возможным без невероятной помощи в разрешении проблем [8], разработке архитектуры [9], кода [10] и много другого [11], что сделали подвижники Rust со всего мира. Являясь и сам таким [12], хочу позвать вас самих попробовать Rust. Сейчас самое время, чтобы начать [13] и принять участие в проекте Mozilla с использованием Rust [14].

Видеть код Rust в стабильной версии браузера Firefox — словно завершение длинного путешествия. Но это только первый шаг для Mozilla. Следите за новостями!

Об авторе: Дейв Херман (Dave Herman) — главный научный сотрудник и директор по стратегии Mozilla Research

Автор: alizar

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/155359

Ссылки в тексте:

[1] Rust: https://www.rust-lang.org/en-US/

[2] нашей миссии: https://www.mozilla.org/en-US/mission/

[3] хамелеончик лопает пузыри: https://www.youtube.com/watch?v=xn54TvpGu7E

[4] неприятные уязвимости в безопасности: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3870

[5] безопасный для памяти язык программирования: https://air.mozilla.org/guaranteeing-memory-safety-in-rust/

[6] первый медиапарсер на Rust: https://github.com/mozilla/mp4parse-rust

[7] Image: https://telemetry.mozilla.org/new-pipeline/dist.html#!cumulative=0&end_date=2016-04-07&keys=__none__!__none__!__none__&max_channel_version=release%252F45&measure=MEDIA_RUST_MP4PARSE_SUCCESS&min_channel_version=null&product=Firefox&sanitize=1&sort_keys=submissions&start_date=2016-03-03&table=0&trim=1&use_submission_date=0

[8] проблем: https://github.com/rust-lang/rust/issues

[9] архитектуры: https://github.com/rust-lang/rfcs

[10] кода: https://github.com/rust-lang/rust

[11] много другого: https://www.rust-lang.org/en-US/contribute.html

[12] сам таким: http://calculist.org/blog/2015/12/23/neon-node-rust/

[13] чтобы начать: https://doc.rust-lang.org/book/getting-started.html

[14] принять участие в проекте Mozilla с использованием Rust: https://wiki.mozilla.org/Oxidation

[15] Источник: https://habrahabr.ru/post/305536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best