{"adoption": {"forks": 352, "observed_at": "2026-08-28T04:08:17.916917+00:00", "stars": 3761}, "canonical_url": "https://ross.abutalabs.com/products/coraza", "card": {"archived": false, "artifact_type": "library", "description": "OWASP Coraza WAF is a golang modsecurity compatible web application firewall library", "domain": ["security", "web-development", "backend", "apis"], "enriched": true, "function": ["security", "http-server", "middleware", "plugin-system"], "health_score": 98, "homepage": "https://www.coraza.io", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["corazawaf/coraza"], "name": "corazawaf/coraza", "platform": ["go", "self-hosted", "wasm", "cross-platform"], "pushed_at": "2026-08-26T01:17:36+00:00", "repo": "corazawaf/coraza", "stars": 3761, "tags": ["waf", "web-application-firewall", "modsecurity", "seclang", "owasp-crs", "sql-injection-protection", "xss-protection", "envoy", "caddy", "reverse-proxy", "linux", "docker"], "topics": ["coraza", "waf", "coraza-waf", "owasp-crs", "modsecurity", "coreruleset", "owasp", "golang", "go", "http", "web-application-firewall", "hacktoberfest"], "urls": [], "use_cases": ["protect my web application from SQL injection and XSS attacks", "drop-in replacement for ModSecurity in Go", "run OWASP Core Rule Set with a Go WAF engine", "add a web application firewall to an Envoy or Caddy proxy", "embed WAF protection in a Go HTTP server as a library", "block malicious HTTP requests before they reach my API"], "what_it_is": "OWASP Coraza is an open-source, enterprise-grade Web Application Firewall (WAF) library written in Go, compatible with ModSecurity SecLang rulesets and 100% compatible with the OWASP Core Rule Set v4. It can be embedded in Go applications or deployed via connectors for Envoy, Istio, Caddy, NGINX, and HAProxy to protect web apps and APIs from attacks like SQL injection and XSS.", "when_to_avoid": ["you need a standalone WAF appliance with a management UI out of the box", "you rely on full ModSecurity compatibility including legacy CRS versions or niche features", "your stack is not Go, C++, or WebAssembly and no connector fits your proxy"], "when_to_choose": ["you need a high-performance, embeddable WAF in Go with ModSecurity SecLang compatibility", "you want to run OWASP CRS v4 rules without the ModSecurity C engine", "you deploy via Envoy, Istio, Caddy, NGINX, or HAProxy and need WAF integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/coraza", "repo": "corazawaf/coraza", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "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:08:17.916917+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.916917+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:28:53.468483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c45adbe540c3e816ae42b721511b0053b02f878900bebf38a3d687edcb04518", "fetched_at": "2026-08-28T04:08:17.916917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/corazawaf/coraza"}, {"content_hash": "a22779d41c291958342ecd444540f0fa601feaefe5672de682bd5feb166b0fc3", "fetched_at": "2026-08-29T09:22:53.997633+00:00", "kind": "homepage", "missing": false, "url": "https://www.coraza.io"}, {"content_hash": "9ebe9f596647873bef10724f502b678abff68e2fda45818566adfab80b7771bd", "fetched_at": "2026-08-29T09:22:54.006926+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/introduction"}, {"content_hash": "123bbdc83f926ca79f74232debb2fafeb2ecc9534ea679340c03880e9080e306", "fetched_at": "2026-08-29T09:22:54.008976+00:00", "kind": "site_page", "missing": false, "url": "https://www.coraza.io/docs/tutorials/quick-start"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 78}, "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": 2289, "days_push": 8, "days_rel": 149, "gap_med": 5, "n_releases_24m": 8}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}