Categorías: Labs

Lanzamiento de Rust en Firefox

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks.

TL;DR: Empezando con Firefox 48, Mozilla lanzará su primer código Rust en producción, ¡con más en el futuro!

Mozilla ❤ Rust

Es difícil de creer que hayan pasado casi siete años desde que Mozilla Research comenzó por primera vez a patrocinar el desarrollo de Rust, en aquel momento poco más que un experimento ambicioso de investigación con una pequeña pero entregada comunidad. Notablemente, a pesar de una larga historia de invenciones y descubrimientos, los principios claves de Rust han permanecido constantes. La visión original del equipo central de Rust— una alternativa segura a C++ para hacer a los programadores de sistemas más productivos, el software crítico menos propenso a la explotación de memoria, y algoritmos paralelos más manejables— ha sido el centro de interés de Mozilla en el respaldo del proyecto Rust y, últimamente, el uso de Rust en producción.

Un desarrollo igualmente prometedor ha sido el hecho de que la seguridad de Rust y las características modernas están atrayendo a gente nueva a programar sistemas. Para Mozilla, donde el desarrollo basado en la comunidad es literalmente nuestra misión, ampliar nuestro círculo es vital.

Así que estoy satisfecho de señalar un hito importante: con Firefox 48, Mozilla enviará nuestro primer componente Rust a todas las plataformas de escritorio, y con soporte para Android próximamente.

Construyendo Rust dentro de la pila de medios de Mozilla

Uno de los primeros grupos en Mozilla en hacer uso de Rust fue el equipo de Media Playback. Ahora, es ciertamente fácil ver que los multimedios están en el corazón de la experiencia web moderna. Lo que puede ser menos obvio para los no paranoicos es que cada vez que un navegador reproduce un video inocuo aparentemente (digamos, un camaleón explotando burbujas), está leyendo datos entregados en un formato complejo y creado por alguien que no conoces y no confías. Y como resultado, se sabe que los formatos de comunicación han sido usados para engañar a los decodificadores en exponer desagradables vulnerabilidades de seguridad que se aprovechan de fallos en gestión de memoria en el código de los navegadores web.

Esto hace que un lenguaje de programación de memoria segura como Rust sea una adición de peso para las herramientas de Mozilla para la protección frente a contenido potencialmente malicioso en la Web. Por esta razón, Ralph Giles y Matthew Gregan construyeron el primer parseador Rust de media en Mozilla. Y estoy feliz de comunicar que su código sera el primer componente Rust montado en Firefox. Para el resto de la comunidad Rust también, esto ha sido un logro real: código Rust llegando a cientos de millones de usuarios Firefox. Nuestras medidas preliminares muestran el componente Rust ejecutándose perfectamente y desarrollando resultados idénticos que el componente C++ original que reemplaza— pero ahora implementado en un lenguaje de memoria segura.

Gráfico de cero problemas de Rust

Datos de telemetría de Firefox mostrando cero problemas en más de mil millones de usos del nuevo código Rust.

¡Más por venir!

Mucha gente merece un gran agradecimiento por hacernos llegar a este punto. Ralph Giles y Matthew Gregan implementaron el componente, y Nathan Froyd, Nick Nethercote, Ted Mielczarek, Gregory Szorc, y Alex Crichton han sido instrumentales en la integración de Rust en la construcción de Firefox y el sistema de herramientas y asegurando que puede montarse en todas nuestras plataformas.

Rust en sí mismo es producto de una tremenda y vibrante comunidad. Nada de este trabajo habría sido posible sin las increíbles contribuciones de problemas reportados, diseño, código, y mucho más de Rustáceos alrededor del mundo. Como rustáceo, me gustaría animarte a venir a probar Rust. Es un momento genial para iniciarse, y gradualmente, estar involucrado con un proyecto Mozilla usando Rust.

Ver código Rust ser incluido en código de Mozilla se siente como la culminación de un largo trayecto. Pero este es solo el primer paso para Mozilla. ¡Mantente atento!

The following two tabs change content below.