Untrack is a Rust library and CLI for removing tracking parameters from URLs using the same $removeparam rules used by uBlock Origin and AdGuard filter lists.
Most URL cleaners rely on a hardcoded list of parameter names such as utm_source or fbclid. Untrack instead implements the filtering semantics used by maintained privacy lists, including domain restrictions, exceptions, regular expressions, important, badfilter, and conditional list directives. This allows it to stay useful as tracking patterns change without requiring those rules to be embedded directly into the application.
The engine is deliberately conservative when modifying URLs. Parameters that are kept remain byte-for-byte identical to the input, preserving their original encoding, order, casing, and fragment rather than parsing and reconstructing the entire query string. Each removal also records the rule responsible for it, making the result inspectable rather than treating URL cleaning as a black box.
The project is split into separate crates for the core engine, filter-list retrieval and caching, and the CLI. The engine itself performs no I/O, allowing it to be embedded into other Rust applications, while untrack-lists handles remote filter lists, includes, caching, and updates independently.