В Firefox 48 начнётся интеграция компонентов на языке Rust

12 июля 2016 года

Разработчики Mozilla приступили к воплощению на практике озвученного в прошлом году плана по задействованию в Firefox кода на языке Rust. В ближайшем выпуске Firefox 48, который ожидается 2 августа, кроме включения многопроцессного режима для ограниченного круга пользователей, в состав настольной редакции браузера впервые будет добавлен компонент на языке Rust. В версии для Android включение компонентов на языке Rust ожидается позднее.

Первый код на Rust задействован в подсистемах, связанных с обработкой мультимедийной информации. В частности, в состав включен написанный на языке Rust парсер для распаковки медиаконтейнеров в формате mp4. Поддержка компиляции компонентов на языке Rust встроена в систему сборки и сборочный инструментарий Firefox, и доступна для всех поддерживаемых платформ.

Язык Rust был основан в 2006 году Грейдоном Хоаром ( Graydon Hoare) как альтернатива языку C++, предоставляющая средства для безопасной работы с памятью, избавляющие разработчика от необходимости манипулирования указателями и защищающие от таких уязвимостей, как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. При этом, несмотря на автоматическое управление памятью, в Rust не применяется сборщик мусора и runtime, что позволяет использовать язык для системного программирования. Другим важным достоинством Rust является изначальная ориентация на организацию высокого параллелизма выполнения заданий.

Изначально Rust развивался как персональный проект Грейдона, но в 2009 году разработкой заинтересовалась компания Mozilla, благодаря ресурсам которой спустя семь лет язык был доведён до состояния пригодного для применения в реальных проектах. Интерес Mozilla к Rust вызван в первую очередь желанием повысить безопасность Firefox и уйти от бесконечной череды исправления всё новых и новых уязвимостей. Кроме того, при помощи Rust можно решить задачу распараллеливания операций с DOM (Document Object Model) и JavaScript - если для ускорения одновременной обработки разных страниц на многоядерных системах можно использовать многопроцессную модель, то обработка одной страницы остаётся однопоточной. Rust позволяет разбить код DOM, JavaScript и разбора HTML на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «В Firefox 48 начнётся интеграция компонентов на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.