Mozilla heeft onlangs onthuld dat de browser sinds de Firefox 151-versie in mei van dit jaar op grote schaal gebruik heeft gemaakt van de zlib-rs-bibliotheek bij Gzip-compressie- en decompressieverwerking. Dit is een reeks Zlib-implementaties geschreven in Rust, met als doel de geheugenveiligheid en algehele prestaties te verbeteren met behoud van de compatibiliteit.

Volgens een technische nota die vandaag door de Trifecta Tech Foundation is vrijgegeven, communiceren ze al bijna twee jaar met het Mozilla-team over de introductie van zlib-rs voordat ze de bibliotheek uiteindelijk naar de officiële versie van Firefox pushen.

afbeelding.webp

zlib-rs wordt gepromoot als een "plug-and-play"-oplossing die Zlib, geïmplementeerd in C-taal, direct kan vervangen. Tijdens het daadwerkelijke implementatieproces kwam Mozilla echter enkele onverwachte complicaties tegen. Omdat zlib-rs verschillende algoritme-implementaties op verschillende compressieniveaus gebruikt, is het gedrag ervan niet volledig consistent met traditioneel Zlib, wat bepaalde uitdagingen met zich meebrengt voor de compatibiliteitsverificatie en daadwerkelijke implementatie. Bovendien heeft zlib-rs ook last van stabiliteitsproblemen op Intel's 13e en 14e generatie Core-processors. Om deze CPU-gerelateerde fouten op te lossen, moest Firefox een kleine hoeveelheid "onveilige" code in sommige codepaden introduceren om specifieke hardwaredefecten te omzeilen.

Hoewel het proces niet geheel soepel verliep, benadrukken Mozilla en de Trifecta Tech Foundation dat de voordelen van de overstap naar zlib-rs aanzienlijk zijn. Aan de ene kant biedt de migratie naar Rust, vergeleken met de traditionele C-versie van Zlib, een betere geheugenbeveiliging voor de compressie- en decompressielogica, waardoor het potentiële risico op toegang buiten het bereik of geheugenbeschadiging wordt verminderd. Aan de andere kant brengt zlib-rs ook aanzienlijke verbeteringen in de prestaties met zich mee, vooral op het x86_64-platform, met aanzienlijke verbeteringen in de compressie- en decompressiedoorvoer.

Op het AArch64-platform zijn de prestatiewinsten die zlib-rs momenteel opleveren relatief klein, maar de Trifecta Tech Foundation wijst erop dat er in de toekomst nog ruimte is voor optimalisatie. Vergeleken met de Zlib-implementatie van Apple in macOS heeft zlib-rs de mogelijkheid om de efficiëntie verder te verbeteren door een verfijndere code-afstemming in sommige scenario's, waardoor consistentere platformonafhankelijke prestaties op het Arm-platform worden bereikt.

De Trifecta Tech Foundation heeft het hele proces van de introductie van zlib-rs in Firefox gedetailleerd beschreven in een blogpost, inclusief jarenlange communicatie met Mozilla, afwegingen bij algoritmeselectie en compatibiliteitstests, en technische afwegingen om Intel CPU-problemen aan te pakken. Mozilla hoopt dat Firefox, door geleidelijk de Rust-implementatie in belangrijke basiscomponenten over te nemen, zijn reputatie op het gebied van beveiliging verder kan consolideren en tegelijkertijd prestaties kan blijven nastreven.

Meer technische details en benchmarkresultaten zijn te vinden op de Trifecta Tech Foundation blog:

https://trifectatech.org/blog/zlib-rs-in-firefox/

Momenteel profiteren Firefox-gebruikers bij hun dagelijks gebruik al op transparante wijze van deze onderliggende bibliotheekvervanging.