finds.dev← search

// the find

breakwa11/GFWList2PAC

★ 237 · Python · MIT · updated Jun 2016

GFWList2PAC

A small Python CLI that turns a gfwlist (the Great Firewall block list format popularized by clowwindy's original gfwlist2pac) into a PAC file for browser/proxy auto-config, with support for custom allow/ban overrides. Useful for people building or maintaining their own PAC-based proxy setup rather than relying on a third-party generator.

Generates an O(1) lookup structure (domain tree, not a flat rule list) so the resulting PAC file scales fine even with thousands of gfwlist entries. Lets you layer a custom.txt (force-proxy) and ban.txt (force-direct) on top of the base list without editing gfwlist itself, which is the actual reason to pick this over a one-off script. Does one narrow job and the CLI surface (-i/-f/-p/--user-rule) maps directly to that job with no extra config ceremony.

Last commit is from mid-2016 — a decade stale, with no indication it's tracked changes in the PAC spec, browser proxy resolution behavior, or gfwlist's own format since. No packaging (no setup.py/pyproject.toml), so it's a clone-and-run script, not something you pip install or pin a version of. No tests in the tree, so any change to the domain-tree/PAC-generation logic is unverifiable without manual testing. README is bare-bones with a stray unformatted contact line — no explanation of how the O(1) structure actually works internally, which matters if you need to debug a bad PAC output.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →