116 个版本
0.8.12 | 2024 年 8 月 7 日 |
---|---|
0.8.11 | 2024 年 6 月 5 日 |
0.8.10 | 2024 年 5 月 23 日 |
0.8.8 | 2024 年 2 月 21 日 |
0.1.28 | 2019 年 7 月 22 日 |
#238 in 解析器实现
每月 1,925 次下载
用于 3 crates
690KB
13K SLoC
adblock-rust
让您重新掌控您的浏览体验。
adblock-rust
是 Brave 内置广告拦截器的引擎,作为库提供给任何人使用。它具有以下功能:
- 网络拦截
- 外观过滤
- 资源替换
- 主机语法
- uBlock Origin 语法扩展
- iOS 内容拦截语法转换
- 编译为本地代码或 WASM
- Rust 绑定 (crates)
- JS 绑定 (npm)
- 社区维护的 Python 绑定 (pypi)
- 高性能!
入门
adblock-rust
被用于多个项目,包括浏览器、研究工具和代理。它可能也适合您的项目!
请参阅 docs.rs 获取详细的 API 文档。
可选功能
以下 cargo
功能 可用于调整 adblock-rust
以最适合您的用例。
CSS 验证(在规则解析期间)(css-validation
)
在解析外观过滤规则时,可以通过启用 css-validation
功能来包含 CSS 验证的内置实现(通过 selectors 和 cssparser 包)。这将导致 adblock-rust
拒绝具有无效 CSS 语法的外观过滤规则。
内容拦截格式转换(content-blocking
)
启用 content-blocking
功能可以为 adblock-rust
提供支持,将标准的 ABP 风格规则转换为苹果的 内容阻止格式,该格式可以导出用于 iOS 和 macOS 平台。
外部域名解析(embedded-domain-resolver
)
默认情况下,adblock-rust
配备了一个内置的域名解析实现(通过 addr crate),通常足以满足独立使用场景。对于更高级的使用场景,禁用 embedded-domain-resolver
功能将允许 adblock-rust
使用外部域名解析实现。这在将 adblock-rust
嵌入浏览器时非常有用,可以减少二进制膨胀并提高一致性。
解析来自 uBlock Origin 格式的资源(resource-assembler
)
adblock-rust
使用与 uBlock Origin 兼容的资源进行脚本注入和重定向规则。resource-assembler
功能允许 adblock-rust
直接从 uBlock Origin 仓库使用的文件格式解析这些资源。
线程安全性(object-pooling
,unsync-regex-caching
)
object-pooling
和 unsync-regex-caching
功能为规则匹配速度和引擎使用的内存量提供了优化。虽然可以通过禁用这些功能来使引擎 Send + Sync
,但建议仅在单个线程上访问引擎以保持最佳性能,尽管如此。
依赖项
~4.5–8MB
~176K SLoC