{"adoption": {"forks": 86, "observed_at": "2026-08-28T04:04:53.120277+00:00", "stars": 1494}, "canonical_url": "https://ross.abutalabs.com/products/go-safeweb", "card": {"archived": true, "artifact_type": "library", "description": "Secure-by-default HTTP servers in Go.", "domain": ["security", "web-development", "backend"], "enriched": true, "function": ["http-server", "security", "middleware"], "health_score": 10, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google/go-safeweb"], "name": "google/go-safeweb", "platform": ["go", "windows"], "pushed_at": "2025-05-30T15:31:02+00:00", "repo": "google/go-safeweb", "stars": 1494, "tags": ["secure-by-default", "xss-protection", "csrf-protection", "http-security", "safe-coding", "linux", "macos"], "topics": ["security-hardening", "security", "golang", "http-server", "http"], "urls": [], "use_cases": ["build a Go HTTP server protected against XSS by default", "prevent CSRF attacks in Go web applications", "harden an existing net/http server with security middleware", "enforce secure HTTP headers like CSP automatically", "reduce security bugs in Go web services through safe APIs", "make unsafe HTTP usage explicit and reviewable in Go code"], "what_it_is": "go-safeweb is a collection of Go libraries for building secure-by-default HTTP servers. It applies security mechanisms like XSS and CSRF protections automatically, with explicit opt-outs that are easy to review and restrict.", "when_to_avoid": ["you need full compatibility with every net/http feature or third-party framework scenario", "you need features beyond security-critical functionality", "you want a mature, feature-complete framework rather than an early-stage project", "you need a general-purpose web framework with routing, templating, and ORM features"], "when_to_choose": ["you are writing a new HTTP server in Go and want security defaults applied automatically", "you want explicit, trackable opt-outs from security mechanisms", "you value high compatibility with Go's standard library net/http APIs", "you need protection against whole classes of web vulnerabilities like XSS and XSRF"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-safeweb", "repo": "google/go-safeweb", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "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:53.120277+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.120277+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:22.163415+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e61d40e7c27c8d6a995affa4147ce8fa6b291ca3a7ef7d08d99990e7749fed7c", "fetched_at": "2026-08-28T04:04:53.120277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/go-safeweb"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 24, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2297, "days_push": 460, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}