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