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

Компонент, написаний на Rust, вперше замінив компонент на C++ в браузері Firefox, і це тільки початок!

Mozilla любить Rust
Важко повірити, що минуло майже сім років з тих пір як Mozilla Research вперше почала спонсорувати розробку Rust — системного мови програмування, націленого на безпечну роботу з пам'яттю, швидкість і паралельне виконання коду. У той час це був не більше ніж амбітний дослідний експеримент, навколо якого утворилося невелике, але віддане співтовариство. Дивно, що незважаючи на довгу історію винаходів і відкриттів, Rust зберіг свій ключові принципи. Спочатку розробники хотіли створити безпечну альтернативу C++, підвищити ефективність системного програмування, захистити критичне програмне забезпечення від експлойтів пам'яті, спростити роботу з паралельними алгоритмами — ось чому Mozilla підтримала проект Rust і, в кінцевому рахунку, почала використовувати Rust у стабільної версії браузера.

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

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

Впровадження Rust в медиастек Mozilla
Однією з перших використовувати Rust в Mozilla почала команда Media Playback. Зараз цілком очевидно, що медіа є ключовим елементом роботи в сучасному інтернеті. Що може бути не так очевидно для не-параноїків, так це що кожен раз, коли запускається невинне, на перший погляд, відео (скажімо, як хамелеончик лопає бульбашки, браузер прочитує дані в складному форматі і створені кимось, кого ви не знаєте і кому не довіряєте. Як з'ясовується, з допомогою медіаформатів можна маніпулювати декодерами і витягувати неприємні вразливості. Вони експлуатують баги в механізмі управління пам'яттю, які реалізовано в коді веб-браузерів.

З цієї причини безпечний для пам'яті мову програмування кшталт Rust стає невід'ємним доповненням в наборі інструментів Mozilla для захисту від потенційно шкідливого медійного контенту в інтернеті. З цієї причини, Ральф Жиль (Ralph Giles) і Метью Греган (Matthew Gregan) розробили в Mozilla перший медиапарсер на Rust. І я радий повідомити, що їх код стане першим компонентом на Rust, який увійде до складу Firefox. Це реальне досягнення також для спільноти Rust: код Rust буде працювати на сотнях мільйонів комп'ютерів у користувачів Firefox. Наші попередні дослідження показують, що компонент на Rust відмінно проявляє себе і не поступається оригінальному компоненту на C++, місце якого займе — але тепер реалізований на безпечному для пам'яті мовою програмування.


Телеметрія Firefox не показує жодної проблеми за більш ніж мільярд запусків нового коду на Rust

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

Rust сам по собі — продукт приголомшливого, живої спільноти. Нічого з цього не стало б можливим без неймовірною допомоги у вирішенні проблем, розробці архітектури, код і багато іншого, що зробили подвижники Rust зі всього світу. Будучи сам таким, хочу запросити вас самих спробувати Rust. Зараз саме час, щоб почати і взяти участь у проекті Mozilla з використанням Rust.

Бачити код Rust у стабільної версії браузера Firefox — немов завершення довгого подорожі. Але це тільки перший крок для Mozilla. Стежте за новинами!

Про автора: Дейв Херман (Dave Herman) — головний науковий співробітник і директор по стратегії Mozilla Research
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.