We spent a good chunk of 2025 working on memory savings for adblock-rust. This was was important and long-overdue work, since while Brave shines in other departments (speed, CPU usage, battery consumption), we’re worse than Chrome for memory because we ship 100,000 adblock filters by default (several times an hour!) that need to get parsed, loaded into memory and used for every single network request (to decide whether or not to block) and for every single piece of content on every single website (cosmetic filtering). This happens even on lower-end devices running Brave like mobile phones, especially older ones. It’s also way harder for Brave’s adblocking, since we’re the only adblocker that draws the distinction between third-party (blocked by default) and first-party ads (not blocked by default), which means making decisions in real-time (was this ad div created by a first-party request or a third-party request?)

All those 100,000+ adblock rules have traditionally been stored in the usual heap-allocated data structures in Rust, consuming tens of megabytes across every platform. Over the course of last year, we incrementally moved our adblock engine to use FlatBuffers and made a lot of other performance optimizations, resulting in reducing memory consumption by 75% and saving approximately 45 MB on Android, iOS, and desktop. For users who enable additional blocking lists, the savings are even greater. These are massive savings when it comes to browsers!

You can read more in the blog post I wrote on Brave’s official blog.