{"slug": "xray", "name": "Xray", "category": "networking", "category_name": "Networking and VPN", "description": "", "recommenders": 6, "commenters": 8, "warners": 1, "score": 4.461, "rising": -0.64, "first": "2025-12-23", "latest": "2026-09-14", "why": "Free Law Project also has this open source tool to detect bad redactions: https://github.com/freelawproject/x-ray", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 6, "neutral": 1, "compare": 0, "warn": 1}, "spark": [0, 3, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Free Law Project also has this open source tool to detect bad redactions: https://github.com/freelawproject/x-ray", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/freelawproject/x-ray", "official_url": "https://github.com/freelawproject/x-ray", "pricing": "", "aliases": ["Xray", "X-ray", "x-ray", "XRay"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 795222705, "item_id": 49701419, "url": "https://news.ycombinator.com/item?id=49701419", "by": "jeffbee", "date": "2026-09-14", "version": null, "stance": "recommend", "quote": "state-of-the-art (from 20 years ago) tracing schemes like XRay", "excerpt": "I'm just reporting from the trenches here. I think you are suggesting that everyone is aware of and capable of using state-of-the-art (from 20 years ago) tracing schemes like XRay[1], when in reality they are not. Most projects would be well-served by any basic profiler but even profiling is apparently for wizards, because I've seen a lot of projects that will resort to manually annotating functions with OTel trace s", "context": "", "use_case": "", "switched_from": "", "story": "Principles for Fast Tokio Applications"}, {"id": 758916416, "item_id": 47432276, "url": "https://news.ycombinator.com/item?id=47432276", "by": "sva_", "date": "2026-03-18", "version": null, "stance": "recommend", "quote": "Or set up Xray[0] with the captive portal as domain if you have a VPS", "excerpt": "Just swap mac address if you have to use such a wifi. Or set up Xray[0] with the captive portal as domain if you have a VPS and are so inclined. Can also use this on locked down airplane wifi. 0. https://github.com/XTLS/Xray-core", "context": "", "use_case": "Tunneling around captive portals", "switched_from": "", "story": "Show HN: Will my flight have Starlink?"}, {"id": 745838497, "item_id": 46614906, "url": "https://news.ycombinator.com/item?id=46614906", "by": "uyzstvqs", "date": "2026-01-14", "version": null, "stance": "recommend", "quote": "you should set up XRay first and peer over that", "excerpt": "That's correct. But it is designed so that it can run over PTP IP links, which is the only option in a full internet blackout. Yggdrasil is censorship-resistant in that it can form one big mesh network, without the internet or ISPs. Peering over the internet is just convenience. If you want to peer over a censored internet connection, you should set up XRay first and peer over that. Yggdrasil is not a darknet or anti", "context": "", "use_case": "bypass internet censorship", "switched_from": "", "story": "Ask HN: Iran's 120h internet shutdown,Phones back. How to stay resilient?"}, {"id": 742067152, "item_id": 46379197, "url": "https://news.ycombinator.com/item?id=46379197", "by": "Fnoord", "date": "2025-12-24", "version": null, "stance": "recommend", "quote": "Yep, bingo:", "excerpt": "Yep, bingo: $ uvx --from x-ray xray \"https://www.justice.gov/multimedia/Court%20Records/Matter%20of%20the%20Estate%20of%20Jeffrey%20E.%20Epstein,%20Deceased,%20No.%20ST-21-RV-00005%20(V.I.%20Super.%20Ct.%202021)/2022.03.17-1%20Exhibit%201.pdf\"", "context": "", "use_case": "Finding bad PDF redactions", "switched_from": "", "story": "X-ray: a Python library for finding bad redactions in PDF documents"}, {"id": 741950368, "item_id": 46371898, "url": "https://news.ycombinator.com/item?id=46371898", "by": "iAMkenough", "date": "2025-12-23", "version": null, "stance": "recommend", "quote": "even some designed to detect bad redactions in PDFs via drag and drop", "excerpt": "The average office worker has it on their computer, illustrating how commonplace unredacting could be. Any text tool will work, even some designed to detect bad redactions in PDFs via drag and drop (now specifically trained on these known bad redactions). https://github.com/freelawproject/x-ray", "context": "", "use_case": "Detecting bad PDF redactions", "switched_from": "", "story": "Some Epstein file redactions are being undone with hacks"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 777235968, "item_id": 48577248, "url": "https://news.ycombinator.com/item?id=48577248", "by": "tryauuum", "date": "2026-06-17", "version": null, "stance": "warn", "quote": "seems like there are no problems to block it based on ip reputation + tls fingerprint + amount of connections", "excerpt": "Are you taking from the experience that this is not blockeable in Russia? EDIT: I might be confusing vless/xray/reality but seems like there are no problems to block it based on ip reputation + tls fingerprint + amount of connections https://habr.com/ru/articles/1044396/ Of course this would block some valid websites but when has government cared about that", "context": "", "use_case": "Censorship circumvention proxy", "switched_from": "", "story": "Volkswagen started blocking GrapheneOS users"}]}], "who": [], "tags": [], "use_cases": ["censorship circumvention proxy", "tunneling around captive portals", "bypass internet censorship", "finding bad pdf redactions", "detecting bad pdf redactions", "detect bad redactions"], "compared": [], "makers": [{"id": 748863680, "item_id": 46803980, "url": "https://news.ycombinator.com/item?id=46803980", "by": "wlswo", "date": "2026-01-28", "version": null, "stance": "neutral", "quote": "We currently use a hybrid polling approach rather than a pure event-driven one.", "excerpt": "Implementation Details: We currently use a hybrid polling approach rather than a pure event-driven one. Mechanism: The Rust backend runs a high-priority background loop using AXUIElementCopyElementAtPosition to track the element under the cursor. Optimization: To minimize overhead, the polling frequency is throttled and only ramps up when the overlay is active. We use CoreGraphics to first detect mouse movement delta", "context": "", "use_case": "Screenshot tool", "switched_from": "", "story": "Xray \u2013 A minimal screenshot tool for developers (Rust/Tauri)"}, {"id": 741928400, "item_id": 46370525, "url": "https://news.ycombinator.com/item?id=46370525", "by": "mlissner", "date": "2025-12-23", "version": null, "stance": "recommend", "quote": "I made X-ray to analyze the millions of documents we have in CourtListener", "excerpt": "Cool to see this here. It\u2019s funny because we do so many huge, complex, multiyear projects at Free Law Project, but this is the most viral any of our work has ever gone! Anyway, I made X-ray to analyze the millions of documents we have in CourtListener so that we can try to educate people about the issue. The analysis was fun. We used S3 batch jobs to analyze millions of documents in a matter of minutes, but we haven\u2019", "context": "works at Free Law Project", "use_case": "finding bad PDF redactions", "switched_from": "", "story": "X-ray: a Python library for finding bad redactions in PDF documents"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46369923", "title": "X-ray: a Python library for finding bad redactions in PDF documents", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49698607", "title": "Principles for Fast Tokio Applications", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48571526", "title": "Volkswagen started blocking GrapheneOS users", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47428650", "title": "Show HN: Will my flight have Starlink?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46803801", "title": "Xray \u2013 A minimal screenshot tool for developers (Rust/Tauri)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46604828", "title": "Ask HN: Iran's 120h internet shutdown,Phones back. How to stay resilient?", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 3, "neutral": 1}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {"warn": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {"recommend": 1}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 795222705, "item_id": 49701419, "url": "https://news.ycombinator.com/item?id=49701419", "by": "jeffbee", "date": "2026-09-14", "version": null, "stance": "recommend", "quote": "state-of-the-art (from 20 years ago) tracing schemes like XRay", "excerpt": "I'm just reporting from the trenches here. I think you are suggesting that everyone is aware of and capable of using state-of-the-art (from 20 years ago) tracing schemes like XRay[1], when in reality they are not. Most projects would be well-served by any basic profiler but even profiling is apparently for wizards, because I've seen a lot of projects that will resort to manually annotating functions with OTel trace s", "context": "", "use_case": "", "switched_from": "", "story": "Principles for Fast Tokio Applications"}, {"id": 777235968, "item_id": 48577248, "url": "https://news.ycombinator.com/item?id=48577248", "by": "tryauuum", "date": "2026-06-17", "version": null, "stance": "warn", "quote": "seems like there are no problems to block it based on ip reputation + tls fingerprint + amount of connections", "excerpt": "Are you taking from the experience that this is not blockeable in Russia? EDIT: I might be confusing vless/xray/reality but seems like there are no problems to block it based on ip reputation + tls fingerprint + amount of connections https://habr.com/ru/articles/1044396/ Of course this would block some valid websites but when has government cared about that", "context": "", "use_case": "Censorship circumvention proxy", "switched_from": "", "story": "Volkswagen started blocking GrapheneOS users"}, {"id": 758916416, "item_id": 47432276, "url": "https://news.ycombinator.com/item?id=47432276", "by": "sva_", "date": "2026-03-18", "version": null, "stance": "recommend", "quote": "Or set up Xray[0] with the captive portal as domain if you have a VPS", "excerpt": "Just swap mac address if you have to use such a wifi. Or set up Xray[0] with the captive portal as domain if you have a VPS and are so inclined. Can also use this on locked down airplane wifi. 0. https://github.com/XTLS/Xray-core", "context": "", "use_case": "Tunneling around captive portals", "switched_from": "", "story": "Show HN: Will my flight have Starlink?"}, {"id": 745838497, "item_id": 46614906, "url": "https://news.ycombinator.com/item?id=46614906", "by": "uyzstvqs", "date": "2026-01-14", "version": null, "stance": "recommend", "quote": "you should set up XRay first and peer over that", "excerpt": "That's correct. But it is designed so that it can run over PTP IP links, which is the only option in a full internet blackout. Yggdrasil is censorship-resistant in that it can form one big mesh network, without the internet or ISPs. Peering over the internet is just convenience. If you want to peer over a censored internet connection, you should set up XRay first and peer over that. Yggdrasil is not a darknet or anti", "context": "", "use_case": "bypass internet censorship", "switched_from": "", "story": "Ask HN: Iran's 120h internet shutdown,Phones back. How to stay resilient?"}, {"id": 742067152, "item_id": 46379197, "url": "https://news.ycombinator.com/item?id=46379197", "by": "Fnoord", "date": "2025-12-24", "version": null, "stance": "recommend", "quote": "Yep, bingo:", "excerpt": "Yep, bingo: $ uvx --from x-ray xray \"https://www.justice.gov/multimedia/Court%20Records/Matter%20of%20the%20Estate%20of%20Jeffrey%20E.%20Epstein,%20Deceased,%20No.%20ST-21-RV-00005%20(V.I.%20Super.%20Ct.%202021)/2022.03.17-1%20Exhibit%201.pdf\"", "context": "", "use_case": "Finding bad PDF redactions", "switched_from": "", "story": "X-ray: a Python library for finding bad redactions in PDF documents"}, {"id": 741950368, "item_id": 46371898, "url": "https://news.ycombinator.com/item?id=46371898", "by": "iAMkenough", "date": "2025-12-23", "version": null, "stance": "recommend", "quote": "even some designed to detect bad redactions in PDFs via drag and drop", "excerpt": "The average office worker has it on their computer, illustrating how commonplace unredacting could be. Any text tool will work, even some designed to detect bad redactions in PDFs via drag and drop (now specifically trained on these known bad redactions). https://github.com/freelawproject/x-ray", "context": "", "use_case": "Detecting bad PDF redactions", "switched_from": "", "story": "Some Epstein file redactions are being undone with hacks"}, {"id": 741937440, "item_id": 46371090, "url": "https://news.ycombinator.com/item?id=46371090", "by": "embedding-shape", "date": "2025-12-23", "version": null, "stance": "neutral", "quote": "", "excerpt": "Not to mention some PDF editors preserve previous edits in the PDF file itself, which people also seems unaware of. A bit more user friendly description of the feature without having to read the specification itself: https://developers.foxit.com/developer-hub/document/incremental-updates/", "context": "", "use_case": "", "switched_from": "", "story": "X-ray: a Python library for finding bad redactions in PDF documents"}, {"id": 741919904, "item_id": 46369994, "url": "https://news.ycombinator.com/item?id=46369994", "by": "jaredwiener", "date": "2025-12-23", "version": null, "stance": "recommend", "quote": "Free Law Project also has this open source tool to detect bad redactions: https://github.com/freelawproject/x-ray", "excerpt": "Free Law Project also has this open source tool to detect bad redactions: https://github.com/freelawproject/x-ray", "context": "", "use_case": "detect bad redactions", "switched_from": "", "story": "Un-Redactor"}]}