{"adoption": {"forks": 219, "observed_at": "2026-08-28T04:06:42.092180+00:00", "stars": 2376}, "canonical_url": "https://ross.abutalabs.com/products/phantun", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Transforms UDP stream into (fake) TCP streams that can go through Layer 3 & Layer 4 (NAPT) firewalls/NATs.", "domain": ["networking", "privacy", "censorship-circumvention", "security"], "enriched": true, "function": ["networking", "proxy", "security", "cli"], "health_score": 93, "homepage": null, "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["dndx/phantun"], "name": "dndx/phantun", "platform": ["rust", "cli", "self-hosted"], "pushed_at": "2026-08-22T03:22:33+00:00", "repo": "dndx/phantun", "stars": 2376, "tags": ["udp-over-tcp", "traffic-obfuscation", "nat-traversal", "firewall-bypass", "wireguard", "tun", "fake-tcp", "linux"], "topics": [], "urls": [], "use_cases": ["make udp traffic pass through firewalls that block udp", "run wireguard over tcp to bypass nat restrictions", "obfuscate udp packets as tcp streams", "tunnel udp through stateful firewalls", "avoid udp throttling by isps", "traverse napt devices with fake tcp connections"], "what_it_is": "Phantun is a lightweight, high-performance UDP-to-TCP obfuscator written in safe Rust that disguises UDP packets as TCP streams to pass through Layer 3/Layer 4 firewalls and NATs. It preserves UDP semantics like out-of-order delivery while avoiding TCP retransmission and flow-control overhead, and is commonly used where UDP is blocked or throttled but TCP is allowed.", "when_to_avoid": ["traffic must pass through L7 proxies or deep packet inspection that validates real TCP behavior", "you need full TCP reliability features like retransmission and congestion control", "you need a cross-platform GUI tool - Phantun is Linux-focused and requires kernel IP forwarding and nftables/iptables rules", "you need MIPS support as a first-class target"], "when_to_choose": ["UDP is blocked or throttled but TCP passes through L3/L4 firewalls or NATs", "you need high throughput without TCP retransmission/flow-control overhead", "you want a fast, low-overhead alternative to udp2raw", "you need to tunnel WireGuard or other UDP protocols through restrictive networks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/phantun", "repo": "dndx/phantun", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.092180+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:59.088572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70eac6ed12edb2c806d7fae0b734e3a3d46c1dc7cc5535cc5059ca0419a9183f", "fetched_at": "2026-08-28T04:06:42.092180+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dndx/phantun"}, {"content_hash": "ee68708720b3d99e1123e604c8cb128634359f830d578ce4c34b6f8b81089bad", "fetched_at": "2026-08-29T10:15:50.943363+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/phantun"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 20}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1812, "days_push": 11, "days_rel": 375, "gap_med": 136.5, "n_releases_24m": 3}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}