2 points par GN⁺ 2026-01-06 | 1 commentaires | Partager sur WhatsApp
  • 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
Publicité

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

 
GN⁺ 2026-01-06
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

    • Donc Brave aurait en quelque sorte deux moteurs CSS — un pour le rendu et un pour le blocage ? Je me le demande
    • Je me demande s’il n’y a pas un risque d’attaque de la chaîne d’approvisionnement comme avec Node/npm
      J’aimerais savoir si Cargo a des mécanismes pour gérer cela différemment
    • L’écosystème Rust semble avoir pratiquement supprimé le partage des bibliothèques runtime
      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

    • Cela dit, Firefox est aussi en train d’entamer sa propre crédibilité, donc il semble qu’il n’y ait plus de solution parfaite pour naviguer sur le Web aujourd’hui
    • Je serais curieux d’avoir des explications un peu plus précises sur ce dont il s’agit
  • 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

    • Faire tourner un navigateur a un coût important
      Brave préparerait un projet appelé Brave-origin pour répondre à ce problème, mentionné dans un tweet de Brendan Eich
    • Helium semble déjà remplir ce rôle
      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
    • Si j’utilise Brave, c’est moi aussi pour son blocage des publicités rapide
      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
    • Juste après l’installation, on peut masquer la fonction BAT token en un seul clic
  • 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

    • Le point fort de Firefox, c’est son écosystème d’extensions
      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
    • Vivaldi prend aussi en charge les onglets verticaux, n’a aucune fonction liée aux cryptomonnaies et inspire davantage confiance côté direction
    • Firefox prend déjà lui aussi en charge les onglets verticaux
    • En revanche, les onglets en arborescence ne sont pas encore pris en charge nativement, il n’y a qu’un simple toggle dans les paramètres
  • 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

    • Dans ce cas précis, Rust ne semble pas être le facteur clé
      La version précédente était déjà écrite en Rust
    • Avec l’arrivée de l’IA, il devient plus difficile pour les utilisateurs de compenser les performances par une mise à niveau matérielle
      Cet environnement pourrait forcer des gains d’efficacité
    • Rust en soi ne semble pas être une condition suffisante pour garantir l’efficacité mémoire
    • Le bloqueur de pub était déjà écrit en Rust
  • 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

    • Moi aussi, je suis récemment passé de Firefox à Brave sur Android
      C’est bien plus rapide, et même sans extensions, le forçage du mode sombre et le blocage des pubs suffisent à mon usage
    • J’ai récemment découvert Cromite, qui me paraît plus rapide que Firefox ou Brave
      C’est un excellent remplaçant pour Kiwi Browser
    • Sur iOS, seul Brave peut bloquer les publicités, Firefox ne le peut pas
      L’environnement change selon l’OS, donc il est vraiment difficile de garder des réglages unifiés
    • La prise en charge des extensions mobiles dans Brave arriverait bientôt
      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

    • Cela pourrait être une copie forkée du processus principal de blocage des pubs
      Dans ce cas, on peut bénéficier des avantages de déduplication mémoire via le CoW
    • Avec l’isolation des sites, il arrive maintenant qu’il y ait plusieurs processus par onglet
  • Je me demande si Brave reste toujours une vitrine pour des pump and dump crypto

    • Ça n’a jamais été le cas