- Le moteur de blocage des publicités basé sur Rust a été profondément remanié, avec une baisse de 75 % de l’usage mémoire
- La nouvelle architecture adopte le format FlatBuffers pour stocker environ 100 000 filtres par défaut dans un format binaire zero-copy
- Résultat : une économie d’environ 45 Mo de mémoire par défaut sur toutes les plateformes (desktop, iOS, Android)
- En plus, de nombreuses optimisations de performances ont été appliquées, notamment sur la gestion mémoire, la vitesse de correspondance, le partage des ressources et l’efficacité du stockage
- Grâce à une architecture de moteur natif non soumise aux contraintes de Manifest V3, Brave renforce à la fois les performances du navigateur et la protection de la vie privée
Vue d’ensemble de la refonte du moteur de blocage des publicités de Brave
- Brave a entièrement remanié son moteur adblock basé sur Rust (adblock-rust), réduisant l’usage mémoire de 75 %
- Cette amélioration permet d’économiser par défaut environ 45 Mo de mémoire sur toutes les plateformes (Android, iOS, desktop)
- La réduction est encore plus importante lorsqu’on utilise des listes de filtres supplémentaires
- Le moteur amélioré a été déployé dans Brave v1.85, avec d’autres optimisations prévues dans v1.86
- D’après les captures d’écran comparatives, l’usage mémoire est passé de 162 Mo à 104 Mo entre les versions v1.79.118 → v1.85.118
Transition vers une architecture basée sur FlatBuffers
- Comme annoncé en juin et en octobre 2025, Brave a refactoré le moteur autour de FlatBuffers
- FlatBuffers est un format de stockage compact et efficace, qui remplace les structures Rust sur le tas comme Vec, HashMap et struct
- Environ 100 000 filtres de blocage publicitaire sont convertis dans un format binaire zero-copy, afin de maximiser l’efficacité mémoire
Détail des optimisations de performances
- Amélioration de la gestion mémoire : utilisation de vecteurs alloués sur la pile pour réduire les allocations mémoire de 19 % et raccourcir le temps de build de 15 %
- Accélération de la correspondance : tokenisation des motifs d’expressions régulières courants pour améliorer de 13 % les performances de correspondance des filtres
- Partage des ressources : partage des ressources entre plusieurs instances du moteur adblock, avec environ 2 Mo économisés sur desktop
- Efficacité du stockage : optimisation de 30 % de la mémoire utilisée pour le stockage des ressources internes
Performances du navigateur et avantages structurels
- Une réduction de mémoire de plus de 45 Mo représente un avantage important pour les utilisateurs sur mobile et sur du matériel ancien
- Brave améliore déjà les performances web grâce au blocage des publicités et des traqueurs, et cette refonte permet aussi d’alléger ses propres mécanismes de protection
- Le moteur de blocage des publicités de Brave repose sur une architecture native intégrée au navigateur,
- qui, contrairement aux bloqueurs basés sur des extensions, n’est pas affectée par les limites des API du navigateur ni par le sandboxing
- et n’est donc pas concernée par les changements liés à Manifest V3
Portée technique et organisationnelle
- Ce gain de performances est le résultat de plusieurs mois de travail d’ingénierie, mené en collaboration entre l’équipe performance et l’équipe vie privée
- Grâce à cela, Brave améliore fortement l’efficacité de son navigateur et continue de fournir un niveau de protection de la vie privée de premier plan à plus de 100 millions d’utilisateurs
1 commentaires
Réactions sur Hacker News
Le moteur de blocage des publicités de Brave est un bon exemple d’open source écrit en Rust
Il utilise le parseur CSS de Servo ainsi qu’une crate d’évaluation des sélecteurs, et il est lui-même publié sur crates.io, donc facilement réutilisable dans d’autres projets
J’aimerais savoir si Cargo a des mécanismes pour gérer cela différemment
La plupart des programmes sont liés statiquement, et même plusieurs processus d’une même application ne peuvent pas partager le code commun en mémoire
J’ai résumé mon point de vue là-dessus dans ce billet de blog
Même si Brave économisait 110 % de mémoire, je ne lui ferais toujours pas confiance
Il a déjà touché aux données utilisateur à plusieurs reprises
Je suis surpris qu’il n’existe toujours pas de fork communautaire de Brave supprimant les éléments commerciaux (rewards, IA, mises à jour maison, etc.)
Une telle version pourrait pourtant être intégrée à des distributions Linux libres
Brave préparerait un projet appelé Brave-origin pour répondre à ce problème, mentionné dans un tweet de Brendan Eich
Je l’utilise comme navigateur principal depuis six mois et c’est plutôt stable
Cela dit, j’aimerais que l’intégration de 1Password soit un peu meilleure
Devoir désactiver à l’installation les options liées au wallet ou à l’IA reste acceptable
Mais si un fork comme Braveium sort, je changerai immédiatement
Dire que passer de 162 à 104 correspond à une baisse de 75 %, le calcul me paraît étrange
Depuis que j’ai installé Brave, je ne vois plus aucune publicité ni sur iOS ni sur Mac
Dans mon expérience, ça fonctionne parfaitement
Je découvre seulement maintenant que Brave prend en charge les onglets verticaux (Vertical Tabs)
En voyant le blog officiel, je me demande si je ne vais pas quitter Firefox
Sidebery(lien) et Tree Style Tabs(lien) proposent depuis longtemps d’excellents onglets verticaux
Et depuis Firefox v136, une fonction native d’onglets verticaux est intégrée
J’espère que ce changement poussera les développeurs à se soucier de nouveau de l’efficacité des ressources
Je pense qu’à mesure qu’il y aura plus de code Rust, l’IA sera meilleure pour en écrire
La version précédente était déjà écrite en Rust
Cet environnement pourrait forcer des gains d’efficacité
J’aime Brave, mais sur mobile j’utilise Firefox parce qu’il n’y a pas d’extensions
Sur Android, Firefox est mon navigateur principal
C’est bien plus rapide, et même sans extensions, le forçage du mode sombre et le blocage des pubs suffisent à mon usage
C’est un excellent remplaçant pour Kiwi Browser
L’environnement change selon l’OS, donc il est vraiment difficile de garder des réglages unifiés
Voir le tweet officiel
45 MiB par onglet, c’est quand même un chiffre élevé
Aujourd’hui, comme on utilise un processus séparé par onglet, ce n’est pas négligeable
Dans ce cas, on peut bénéficier des avantages de déduplication mémoire via le CoW
Je me demande si Brave reste toujours une vitrine pour des pump and dump crypto