{"adoption": {"forks": 483, "observed_at": "2026-08-28T04:06:57.561771+00:00", "stars": 2514}, "canonical_url": "https://ross.abutalabs.com/products/rspamd", "card": {"archived": false, "artifact_type": "service", "description": "Rapid spam filtering system.", "domain": ["email", "security", "self-hosted"], "enriched": true, "function": ["security", "email", "middleware", "plugin-system"], "health_score": 100, "homepage": null, "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["rspamd/rspamd"], "name": "rspamd/rspamd", "platform": ["bsd", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T16:27:40+00:00", "repo": "rspamd/rspamd", "stars": 2514, "tags": ["spam-filter", "milter", "email-processing", "lua-plugins", "dkim", "mta-integration", "messaging", "linux"], "topics": ["c", "rspamd", "lua", "spam-filter", "email"], "urls": [], "use_cases": ["filter spam from incoming email on my mail server", "integrate spam checking with postfix via milter", "score emails with bayesian statistics and url blacklists", "add dkim signing and verification to email processing", "write custom email filtering rules in lua", "process hundreds of emails per second with low latency"], "what_it_is": "Rspamd is an advanced spam filtering system and email processing framework written in C with an extensive Lua plugin API. It evaluates messages using rules, statistical analysis, and external services, and can act as a Milter to integrate directly with MTAs like Postfix and Sendmail.", "when_to_avoid": ["you need a simple hosted spam solution without self-hosting infrastructure", "you only need basic client-side spam handling in a mail client"], "when_to_choose": ["you run your own mail server and need high-performance, extensible spam filtering", "you want milter-based integration with Postfix, Sendmail, or other MTAs", "you need customizable filtering rules via a Lua plugin API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rspamd", "repo": "rspamd/rspamd", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "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:57.561771+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.561771+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:26:14.083616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "711e380b6bbb9906b9c7cc552751fd02e4363e4d08c4e0f95904ab8d61542e80", "fetched_at": "2026-08-28T04:06:57.561771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rspamd/rspamd"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4884, "days_push": 7, "days_rel": 18, "gap_med": 17, "n_releases_24m": 20}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}