Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ghostery/adblocker
Efficient embeddable adblocker library
https://github.com/ghostery/adblocker
adblock adblocker content-blocking easylist javascript privacy puppeteer
Last synced: 5 days ago
JSON representation
Efficient embeddable adblocker library
- Host: GitHub
- URL: https://github.com/ghostery/adblocker
- Owner: ghostery
- License: mpl-2.0
- Created: 2017-12-13T09:39:29.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:45:39.000Z (about 2 months ago)
- Last Synced: 2024-10-29T14:47:17.364Z (about 2 months ago)
- Topics: adblock, adblocker, content-blocking, easylist, javascript, privacy, puppeteer
- Language: TypeScript
- Homepage: https://www.ghostery.com
- Size: 98.3 MB
- Stars: 803
- Watchers: 17
- Forks: 100
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
Adblocker
Efficient
· Minimal
· JavaScript
· TypeScript
· uBlock Origin- and Easylist-compatible
Node.js
· Puppeteer
· Electron
· WebExtension
---
The Ghostery adblocker is a JavaScript library for *blocking ads, trackers, and annoyances* with a strong focus on [efficiency](https://whotracks.me/blog/adblockers_performance_study.html). It was designed with compatibility in mind and integrates seamlessly with the following environments:
* [Block ads in **Puppeteer**](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-puppeteer/README.md),
* [Block ads in **Electron**](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-electron/README.md),
* [Block ads in **Chrome** and **Firefox**](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-webextension/README.md),
* Or as a [standalone JavaScript library](https://github.com/ghostery/adblocker/tree/master/packages/adblocker/README.md).## Getting Started
The Ghostery adblocker is the easiest and most efficient way to block ads and trackers in your project. Only a few lines of code are required to integrate smoothly with [Puppeteer](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-puppeteer-example), [Electron](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-electron-example), a Chrome- and Firefox-compatible [browser extension](https://github.com/ghostery/adblocker/tree/master/packages/adblocker-webextension-example), or any environment supporting [JavaScript](https://github.com/ghostery/adblocker/tree/master/packages/adblocker) (e.g. Node.js or React Native).
Here is how to do it in two steps for a Chrome- and Firefox-compatible WebExtension:
1. Install: `npm install --save @ghostery/adblocker-webextension`
2. Add the following in your background script:
```js
import { WebExtensionBlocker } from '@ghostery/adblocker-webextension';WebExtensionBlocker.fromPrebuiltAdsAndTracking().then((blocker) => {
blocker.enableBlockingInBrowser(browser);
});
```Congratulations, you are now blocking all ads and trackers! :tada:
## Compatibility
The library supports 99% of all filters from the Easylist and uBlock Origin projects. Check [the compatibility matrix](https://github.com/ghostery/adblocker/wiki/Compatibility-Matrix) on the wiki for more details.
## Contributing
This project makes use of [lerna](https://github.com/lerna/lerna) and [yarn workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) under the hood. Quickly get started with:
1. Fork and clone the repository,
2. Enable corepack: `corepack enable`,
3. Install dependencies: `yarn install --immutable`,
4. Build: `yarn build`,
5. Test: `yarn test`,For any question, feel free to [open an issue](https://github.com/ghostery/adblocker/issues/new) or a pull request to get some help!
## Who is using it?
This library is the building block technology used to power the adblockers from [Ghostery](https://www.ghostery.com/) and [Cliqz](https://cliqz.com/) on both *desktop* and *mobile* platforms. It is already running in production for millions of users and has been battle-tested to satisfy the following use-cases:
* Mobile-friendly adblocker in react-native, WebExtension, or custom JavaScript context: [Ghostery for iOS](https://github.com/ghostery/user-agent-ios).
* Ads and trackers blocker in [Electron](https://github.com/wexond/desktop) applications, [Puppeteer](https://github.com/Kikobeats/browserless) headless browsers, Cliqz browser, [ghostery](https://github.com/ghostery/ghostery-extension/) and [standalone](https://github.com/remusao/blockrz)).
* Batch requests processing in Node.js, HTML fuzzy keywork matcher, and more.The innovative algorithms and architecture designed and implemented in this project have been shown to be among the [most efficient](https://whotracks.me/blog/adblockers_performance_study.html) ways to implement ad-blockers and have been used in other projects to implement highly performant adblockers such as [Brave](https://github.com/brave/adblock-rust).
## Swag
Show the world you're using `ghostery/adblocker` → [![powered by Ghostery](https://img.shields.io/badge/ghostery-powered-blue?logo=ghostery&style=flat-square)](https://github.com/ghostery/adblocker)
```md
[![powered by Ghostery](https://img.shields.io/badge/ghostery-powered-blue?logo=ghostery)](https://github.com/ghostery/adblocker)
```## License
[Mozilla Public License 2.0](./LICENSE)