{"adoption": {"forks": 189, "observed_at": "2026-08-28T04:06:35.199519+00:00", "stars": 2297}, "canonical_url": "https://ross.abutalabs.com/products/criterion", "card": {"archived": false, "artifact_type": "library", "description": "A cross-platform C and C++ unit testing framework for the 21st century", "domain": ["testing", "developer-tools", "cross-platform"], "enriched": true, "function": ["testing", "e2e-testing"], "health_score": 91, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Snaipe/Criterion"], "name": "Snaipe/Criterion", "platform": ["windows", "bsd", "cross-platform", "cpp", "c"], "pushed_at": "2026-07-17T20:50:46+00:00", "repo": "Snaipe/Criterion", "stars": 2297, "tags": ["unit-testing", "xunit", "c99", "cpp11", "tap-output", "parameterized-tests", "test-isolation", "linux", "macos"], "topics": ["c", "c-plus-plus", "unit-testing", "framework", "kiss", "cross-platform"], "urls": [], "use_cases": ["unit test c code without boilerplate", "test c++ code with a unified framework", "assert that code crashes or raises signals", "write parameterized tests and theories in c", "output test results in TAP format for CI", "run tests on linux, macos, and windows"], "what_it_is": "Criterion is a cross-platform unit testing framework for C and C++ that automatically registers tests and provides a xUnit-style structure with minimal boilerplate. Tests run in isolated processes so crashes and signals can be reported and asserted, with support for parameterized tests, theories, and TAP output.", "when_to_avoid": ["you need a header-only or single-file test framework", "your toolchain doesn't support the platforms Criterion targets", "you prefer a minimal assert-only library like MinUnit or Catch2-style single headers"], "when_to_choose": ["you write C99 or C++11 code and want automatic test registration with no main function", "you need process-isolated tests that survive and report crashes", "you want one framework working identically for both C and C++ across platforms"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/criterion", "repo": "Snaipe/Criterion", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "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:35.199519+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.199519+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:40:17.906860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a341cd7fdcb2b730e0ae802901ed15d45c7e9669c355547de12352ac983fda2", "fetched_at": "2026-08-28T04:06:35.199519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Snaipe/Criterion"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "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": 4232, "days_push": 47, "days_rel": 323, "gap_med": null, "n_releases_24m": 1}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}