brave/adblock-rust
brave/adblock-rust has 2,919 GitHub stars and 263 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-07 19:14 UTC. Last push 2026-10-28.
Brave's Rust-based adblock engine
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originaladblock-rust
Putting you back in control of your browsing experience.
adblock-rust is the engine powering Brave's native adblocker, available as a library for anyone to use. It features:
- Network blocking
- Cosmetic filtering
- Resource replacements
- Hosts syntax
- uBlock Origin syntax extensions
- iOS content-blocking syntax conversion
- Compiling to native code or WASM
- Rust bindings (crates)
- JS bindings (npm)
- Community-maintained Python bindings (pypi)
- High performance!
Getting started
adblock-rust is used in several projects, including browsers, research tools, and proxies.
It may be a good fit for yours, too!
See docs.rs for detailed API documentation.
Also check the Rust example or the NodeJS example.
Optional features
The following cargo features can be used to tweak adblock-rust to best fit your use-case.
CSS validation during rule parsing (css-validation)
When parsing cosmetic filter rules, it's possible to include a built-in implementation of CSS validation (through the selectors and cssparser crates) by enabling the css-validation feature. This will cause adblock-rust to reject cosmetic filter rules with invalid CSS syntax.
Content blocking format translation (content-blocking)
Enabling the content-blocking feature gives adblock-rust support for conversion of standard ABP-style rules into Apple's content-blocking format, which can be exported for use on iOS and macOS platforms.
External domain resolution (embedded-domain-resolver)
By default, adblock-rust ships with a built-in domain resolution implementation (through the addr crate) that will generally suffice for standalone use-cases. For more advanced use-cases, disabling the embedded-domain-resolver feature will allow adblock-rust to use an external domain resolution implementation instead. This is extremely useful to reduce binary bloat and improve consistency when embedding adblock-rust within a browser.
Parsing resources from uBlock Origin's formats (resource-assembler)
adblock-rust uses uBlock Origin-compatible resources for scriptlet injection and redirect rules.
The resource-assembler feature allows adblock-rust to parse these resources directly from the file formats used by the uBlock Origin repository.
Thread safety (single-thread)
The single-thread feature enables optimizations for rule matching speed and the amount of memory used by the engine.
This feature can be disabled to make the engine Send + Sync, although it is recommended to only access the engine on a single thread to maintain optimal performance.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,849 starspublic-apis/public-apis
A collective list of free APIs
497,094 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
441,634 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,160 stars