A Mozilla divulgou recentemente que desde a versão Firefox 151 lançada em maio deste ano, o navegador tem utilizado amplamente a biblioteca zlib-rs no processamento de compactação e descompactação Gzip. Este é um conjunto de implementações Zlib escritas em Rust, com o objetivo de melhorar a segurança da memória e o desempenho geral, mantendo a compatibilidade.
De acordo com uma nota técnica divulgada hoje pela Trifecta Tech Foundation, eles têm se comunicado com a equipe da Mozilla sobre a introdução do zlib-rs há quase dois anos antes de finalmente colocar a biblioteca na versão oficial do Firefox.

zlib-rs é promovido como uma solução "plug-and-play" que pode substituir diretamente o Zlib implementado em linguagem C. No entanto, durante o processo de implementação real, a Mozilla encontrou algumas complicações inesperadas. Como o zlib-rs usa diferentes implementações de algoritmos em diferentes níveis de compactação, seu comportamento não é totalmente consistente com o Zlib tradicional, o que traz certos desafios à verificação de compatibilidade e à implantação real. Além disso, o zlib-rs também foi afetado por problemas de estabilidade nos processadores Core de 13ª e 14ª geração da Intel. Para corrigir essas falhas relacionadas à CPU, o Firefox teve que introduzir uma pequena quantidade de código “inseguro” em alguns caminhos de código para contornar defeitos específicos de hardware.
Embora o processo não tenha sido totalmente tranquilo, a Mozilla e a Trifecta Tech Foundation enfatizam que os benefícios de mudar para o zlib-rs são significativos. Por um lado, em comparação com a versão C tradicional do Zlib, a migração para Rust proporciona melhor segurança de memória para a lógica de compressão e descompressão, reduzindo o risco potencial de acesso fora dos limites ou corrupção de memória. Por outro lado, o zlib-rs também traz melhorias significativas no desempenho, especialmente na plataforma x86_64, com melhorias consideráveis no rendimento de compressão e descompressão.
Na plataforma AArch64, os ganhos de desempenho trazidos atualmente pelo zlib-rs são relativamente pequenos, mas a Trifecta Tech Foundation aponta que ainda há espaço para otimização no futuro. Comparado com a implementação Zlib fornecida pela Apple no macOS, o zlib-rs tem a oportunidade de melhorar ainda mais a eficiência por meio de ajuste de código mais refinado em alguns cenários, alcançando assim um desempenho multiplataforma mais consistente na plataforma Arm.
A Trifecta Tech Foundation detalhou todo o processo de introdução do zlib-rs no Firefox em uma postagem no blog, incluindo anos de comunicação com a Mozilla, compensações na seleção de algoritmos e testes de compatibilidade e compensações de engenharia feitas para resolver problemas de CPU Intel. A Mozilla espera que, ao adotar gradualmente a implementação do Rust nos principais componentes básicos, o Firefox possa consolidar ainda mais sua reputação de segurança enquanto continua buscando desempenho.
Mais detalhes técnicos e resultados de benchmark podem ser encontrados no blog da Trifecta Tech Foundation:
https://trifectatech.org/blog/zlib-rs-in-firefox/
Atualmente, os usuários do Firefox já estão se beneficiando de forma transparente dessa substituição de biblioteca subjacente em seu uso diário.