{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:04:10.927183+00:00", "stars": 1265}, "canonical_url": "https://ross.abutalabs.com/products/sniffglue", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Secure multithreaded packet sniffer", "domain": ["security", "networking", "developer-tools"], "enriched": true, "function": ["networking", "security", "parser", "cli"], "health_score": 85, "homepage": "https://crates.io/crates/sniffglue", "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["kpcyrd/sniffglue"], "name": "kpcyrd/sniffglue", "platform": ["cli", "rust"], "pushed_at": "2026-04-19T23:37:17+00:00", "repo": "kpcyrd/sniffglue", "stars": 1265, "tags": ["packet-sniffer", "pcap", "seccomp-sandbox", "multithreaded", "protocol-analysis", "network-monitoring", "tcpdump-alternative", "command-line", "linux", "macos", "docker"], "topics": ["rust", "sniffer", "pcap", "network", "sandboxed"], "urls": [], "use_cases": ["sniff packets on an untrusted wifi network without risking a compromised host", "capture and decode dhcp, dns, tls, and http traffic on an interface", "inspect network traffic from a docker container to debug container networking", "monitor what protocols are flowing through a network interface with readable output", "replace tcpdump with a memory-safe sniffer that won't crash on malformed packets", "increase verbosity to surface arp, ssdp, cjdns, and dropbox beacons on the local network"], "what_it_is": "A secure multithreaded network packet sniffer written in Rust that parses packets concurrently across all CPU cores. It is hardened with seccomp sandboxing so it can run safely on untrusted networks without crashing on malformed packets.", "when_to_avoid": ["you need full pcap capture-to-file workflows or deep packet inspection", "you need 802.11 wifi frame analysis, which is not yet supported", "you need a GUI like Wireshark for interactive protocol dissection", "you need to write custom dissectors for exotic protocols"], "when_to_choose": ["you need a hardened, sandboxed sniffer safe to run on hostile networks", "you want readable, filtered packet output by default instead of raw hex dumps", "you prefer a memory-safe Rust alternative to tcpdump", "you need to debug traffic inside containers with a tiny docker image"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sniffglue", "repo": "kpcyrd/sniffglue", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "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:04:10.927183+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.927183+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:03:52.086132+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a533c504154f6f7f09577e077343582b37d2c4c48adc799d02bb4035515dfb30", "fetched_at": "2026-08-28T04:04:10.927183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kpcyrd/sniffglue"}, {"content_hash": "db8d48fb7018f54002f7c6fe81df93b12cd066acea7ccf2764fd2f08e55cd6dc", "fetched_at": "2026-08-29T12:15:50.691656+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/sniffglue"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 100, "rhythm": 48}, "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": 3277, "days_push": 136, "days_rel": 136, "gap_med": 588, "n_releases_24m": 2}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}