Google ha publicado una guía de estilo formal para el lenguaje de programación Rust para garantizar la coherencia en su diverso ecosistema de proyectos, que incluye Android, ChromeOS y Fuchsia. Si bien muchas convenciones de formato de Rust son gestionadas automáticamente por herramientas como `rustfmt`, esta guía va más allá de la estética para abarcar el diseño de API, la organización del código y los patrones de implementación. El objetivo principal es priorizar la mantenibilidad a largo plazo y la legibilidad, asegurando que el código siga siendo accesible para una amplia gama de ingenieros a lo largo de su ciclo de vida.

Una de las características más distintivas de la guía es su enfoque en los 'Cambios a Gran Escala' (LSCs). Debido a que Google gestiona bases de código masivas, la guía fomenta patrones que son 'amigables para la refactorización', lo que significa que pueden ser manipulados fácilmente por herramientas automatizadas. Por ejemplo, la guía sugiere un 'diseño de archivos planos' para ciertos tipos de bibliotecas en Chromium, donde los archivos fuente residen en un solo directorio en lugar de una estructura anidada. Este enfoque está diseñado para mejorar el rendimiento de la compilación paralela y el almacenamiento en caché de compilación, incluso si se desvía de la estructura de directorios convencional de Cargo que se encuentra típicamente en proyectos de código abierto.

La guía también proporciona instrucciones específicas sobre la propiedad y el diseño de API, como preferir los préstamos (borrows) sobre las copias profundas y el uso de tipos `enum` sobre `bool` en las API públicas. Distingue entre 'código de biblioteca', que debe adherirse estrictamente a las reglas de diseño de API para una amplia reutilización, y 'código de aplicación', donde el enfoque cambia hacia la simplicidad y la directez. Además, la guía aborda matices técnicos como el uso de `#[non_exhaustive]` en enums públicos para facilitar futuras actualizaciones sin romper a los consumidores posteriores, y la preferencia por la coincidencia de patrones sobre la lógica de 'verificar y luego desempaquetar' (check-then-unwrap) para mejorar la seguridad y claridad del código.

Aunque gran parte de la guía se alinea con el ecosistema más amplio de Rust, sus requisitos específicos para la organización de módulos y las convenciones de nomenclatura están adaptados a la infraestructura interna de Google. Al codificar estas reglas, Google busca reducir el 'bikeshedding' —pequeños desacuerdos sobre el estilo— y proporcionar un estándar de calidad claro que ayude a los ingenieros a concentrarse en resolver problemas complejos en lugar de debatir opciones de formato durante las revisiones de código. La guía sirve como un documento fundamental para asegurar que Rust, a medida que escala dentro de la infraestructura de Google, siga siendo predecible y mantenible para todos los colaboradores.