Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        

Adblocker



Efficient
· Minimal
· JavaScript
· TypeScript
· uBlock Origin- and Easylist-compatible




Node.js
· Puppeteer
· Electron
· WebExtension



Github Actions Build Status


Github Actions Assets Status


Blazing Fast


npm version


weekly downloads from npm




code style: prettier


Follow Ghostery on Twitter


Dependabot


License Badge

---

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)
```

Or HTML:
```html

powered by Ghostery

```

## License

[Mozilla Public License 2.0](./LICENSE)