Shucker
=======
Shucker is a tracking-param filtering library, designed to strip URLs down to their canonical forms. It contains internally a set of rules derived from the [AdguardFilters](https://github.com/AdguardTeam/AdguardFilters) TrackParamFilter set, and then stripped down be able to be runnable outside of a browser. Note that although the original filters were designed for Javascript-based browser extensions, Shucker's core is a pure-Rust implementation for raw speed (some testing done against Hyperfine, but certainly seems fast enough so far i.e. < 1ms).
There is an [example command line tool provided](src/bin/shuck.rs) (`cargo run --bin shuck <list of urls>`) but the main usage will either be via the `shucker::shuck` fn, or the Python `shucker` library with `shucker.shuck` (which is mostly a thin wrapper over the Rust code), both of which take a URL and return a version of it without the ad-tracking.
Rebuilding the rules set
------------------------
`make rebuild_rules` will pull the latest upstream rules and rebuild.
Licensing
---------
The actual core Shucker code (i.e. everything _except_ the `external/adguardfilters` folder) is licensed under the [LGPL v3](https://www.gnu.org/licenses/lgpl-3.0.en.html). However, the `external/adguardfilters` code is [GPL v3](external/adguardfilters/LICENSE) and as that is used as part of the build-time generation of Shucker currently, the overall library is therefore GPLv3. This might change in the future if we remove said build-time requirement though.
Raw data
{
"_id": null,
"home_page": null,
"name": "shucker",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "adblock, url, tracking",
"author": "Tom Parker-Shemilt <palfrey@tevp.net>",
"author_email": "Tom Parker-Shemilt <palfrey@tevp.net>",
"download_url": "https://files.pythonhosted.org/packages/df/4d/e6c771f3f649efeda72152a6bcf0c41a26fa58344915ff6885c19c4dfe6f/shucker-0.1.1.tar.gz",
"platform": null,
"description": "Shucker\n=======\n\nShucker is a tracking-param filtering library, designed to strip URLs down to their canonical forms. It contains internally a set of rules derived from the [AdguardFilters](https://github.com/AdguardTeam/AdguardFilters) TrackParamFilter set, and then stripped down be able to be runnable outside of a browser. Note that although the original filters were designed for Javascript-based browser extensions, Shucker's core is a pure-Rust implementation for raw speed (some testing done against Hyperfine, but certainly seems fast enough so far i.e. < 1ms).\n\nThere is an [example command line tool provided](src/bin/shuck.rs) (`cargo run --bin shuck <list of urls>`) but the main usage will either be via the `shucker::shuck` fn, or the Python `shucker` library with `shucker.shuck` (which is mostly a thin wrapper over the Rust code), both of which take a URL and return a version of it without the ad-tracking.\n\nRebuilding the rules set\n------------------------\n`make rebuild_rules` will pull the latest upstream rules and rebuild.\n\nLicensing\n---------\nThe actual core Shucker code (i.e. everything _except_ the `external/adguardfilters` folder) is licensed under the [LGPL v3](https://www.gnu.org/licenses/lgpl-3.0.en.html). However, the `external/adguardfilters` code is [GPL v3](external/adguardfilters/LICENSE) and as that is used as part of the build-time generation of Shucker currently, the overall library is therefore GPLv3. This might change in the future if we remove said build-time requirement though.\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "Tracking-param filtering library, designed to strip URLs down to their canonical forms",
"version": "0.1.1",
"project_urls": {
"Source Code": "https://github.com/palfrey/shucker"
},
"split_keywords": [
"adblock",
" url",
" tracking"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "58fbd54748b834bf49327b6c46145a7eb4e3d829f5af7d695e1a41c57a04a6d2",
"md5": "778a73dc516170c5c4abe46d99d3cb60",
"sha256": "8ba116449f29cbe6413fa574b4b563d32ef062b6c52df291e3ff93bf726ba1bd"
},
"downloads": -1,
"filename": "shucker-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "778a73dc516170c5c4abe46d99d3cb60",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1226384,
"upload_time": "2024-12-31T15:07:44",
"upload_time_iso_8601": "2024-12-31T15:07:44.811210Z",
"url": "https://files.pythonhosted.org/packages/58/fb/d54748b834bf49327b6c46145a7eb4e3d829f5af7d695e1a41c57a04a6d2/shucker-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0dcca7037af359415386ca88f22fed8e5e95ab02733d46717ea5fafa5956b55f",
"md5": "6562ff45009f7896e8ce98c037cb8d04",
"sha256": "ad6e14d04cf4d614d529468fedf1dac559a64c56635350ffd3f7660b3199b765"
},
"downloads": -1,
"filename": "shucker-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6562ff45009f7896e8ce98c037cb8d04",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 1226139,
"upload_time": "2024-12-31T15:07:47",
"upload_time_iso_8601": "2024-12-31T15:07:47.906584Z",
"url": "https://files.pythonhosted.org/packages/0d/cc/a7037af359415386ca88f22fed8e5e95ab02733d46717ea5fafa5956b55f/shucker-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1b14d71d37ad399785fef2df7f54b097772b6558341089902918a90083df8c2f",
"md5": "a032eede82c47f2292ae0ec0a5dd951a",
"sha256": "0b71ae90b19f8861b1976503a8bbe6580268e492104db7a25792cdb5439f6d53"
},
"downloads": -1,
"filename": "shucker-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a032eede82c47f2292ae0ec0a5dd951a",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 1225162,
"upload_time": "2024-12-31T15:07:51",
"upload_time_iso_8601": "2024-12-31T15:07:51.167882Z",
"url": "https://files.pythonhosted.org/packages/1b/14/d71d37ad399785fef2df7f54b097772b6558341089902918a90083df8c2f/shucker-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f373eabe558a41a6d3448c1cd987f684bbd4cc487dc53747be2c55f12b5a7909",
"md5": "a411fccd654efd0e05fcd1ba1ba2c6cc",
"sha256": "cbe331d65cdd9c7182bea36723e1570feaef435a88829021130509d7e7382824"
},
"downloads": -1,
"filename": "shucker-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a411fccd654efd0e05fcd1ba1ba2c6cc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1226906,
"upload_time": "2024-12-31T15:07:54",
"upload_time_iso_8601": "2024-12-31T15:07:54.165747Z",
"url": "https://files.pythonhosted.org/packages/f3/73/eabe558a41a6d3448c1cd987f684bbd4cc487dc53747be2c55f12b5a7909/shucker-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "df4de6c771f3f649efeda72152a6bcf0c41a26fa58344915ff6885c19c4dfe6f",
"md5": "b7e55b1cb25009b24a3cfce26273ef2f",
"sha256": "870ef451b1b1300ef935a98b78c268083b03fc4d9c87e54e080e767f4a60e32d"
},
"downloads": -1,
"filename": "shucker-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "b7e55b1cb25009b24a3cfce26273ef2f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 78324,
"upload_time": "2024-12-31T15:07:56",
"upload_time_iso_8601": "2024-12-31T15:07:56.696969Z",
"url": "https://files.pythonhosted.org/packages/df/4d/e6c771f3f649efeda72152a6bcf0c41a26fa58344915ff6885c19c4dfe6f/shucker-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-31 15:07:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "palfrey",
"github_project": "shucker",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "certifi",
"specs": [
[
"==",
"2024.12.14"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.1"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"44.0.0"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.21.2"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "jaraco-classes",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "jaraco-context",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "jaraco-functools",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "jeepney",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"25.6.0"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "maturin",
"specs": [
[
"==",
"1.8.0"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.5.0"
]
]
},
{
"name": "nh3",
"specs": [
[
"==",
"0.2.20"
]
]
},
{
"name": "nodeenv",
"specs": [
[
"==",
"1.9.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.2"
]
]
},
{
"name": "pkginfo",
"specs": [
[
"==",
"1.12.0"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.18.0"
]
]
},
{
"name": "pyright",
"specs": [
[
"==",
"1.1.391"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.3.4"
]
]
},
{
"name": "pytest-watcher",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"44.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.9.4"
]
]
},
{
"name": "secretstorage",
"specs": [
[
"==",
"3.3.3"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.3.0"
]
]
},
{
"name": "watchdog",
"specs": [
[
"==",
"6.0.0"
]
]
}
],
"lcname": "shucker"
}