{"adoption": {"forks": 169, "observed_at": "2026-08-28T04:05:10.528134+00:00", "stars": 1606}, "canonical_url": "https://ross.abutalabs.com/products/clash-compiler", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Haskell to VHDL/Verilog/SystemVerilog compiler", "domain": ["hardware", "embedded-systems", "programming-languages", "compilers"], "enriched": true, "function": ["compiler", "programming-language", "simulation", "testing"], "health_score": 98, "homepage": "https://clash-lang.org/", "language": "Haskell", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["clash-lang/clash-compiler"], "name": "clash-lang/clash-compiler", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-26T19:12:16+00:00", "repo": "clash-lang/clash-compiler", "stars": 1606, "tags": ["haskell", "hardware-description-language", "fpga", "vhdl", "verilog", "systemverilog", "asic", "synthesizable-hardware", "functional-programming", "compiler", "linux", "macos"], "topics": ["haskell", "hardware-description-language", "fpga", "vhdl", "verilog", "systemverilog", "asic"], "urls": [], "use_cases": ["write FPGA designs in Haskell instead of VHDL or Verilog", "compile Haskell-like hardware descriptions to synthesizable VHDL, Verilog, or SystemVerilog", "prototype digital circuits interactively in a REPL without writing test benches", "design synchronous sequential circuits with type-safe clock domain crossing", "build parametric, reusable hardware components using higher-order functions", "implement CPUs and retro-computing devices on FPGAs", "verify hardware designs with strong static typing"], "what_it_is": "Clash is a functional hardware description language based on Haskell, with a compiler that transforms high-level descriptions into synthesizable VHDL, Verilog, or SystemVerilog. It offers strong typing, type inference, an interactive REPL, and type-safe multi-clock-domain design for FPGA and ASIC development.", "when_to_avoid": ["your team only knows traditional HDLs like VHDL or Verilog and has no Haskell experience", "you need fine-grained low-level control over every hardware primitive", "your toolchain or vendor flow does not accept generated VHDL/Verilog/SystemVerilog", "you need a large ecosystem of off-the-shelf IP cores written in Clash"], "when_to_choose": ["you know Haskell and want to do FPGA or ASIC hardware design", "you want strongly typed, high-level hardware descriptions that compile to standard HDLs", "you need rapid prototyping of digital circuits with an interactive REPL", "you want reusable, parametric hardware designs via functional abstractions", "you need type-safe clock domain crossing in multi-clock designs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clash-compiler", "repo": "clash-lang/clash-compiler", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "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:05:10.528134+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.528134+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:32:42.574165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f911d87d7839c89cc330c23a46cf0df6acc762eca424f9b1313d680ead5b8d7d", "fetched_at": "2026-08-28T04:05:10.528134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clash-lang/clash-compiler"}, {"content_hash": "d80dde0a8877e3833637f1e7841cae94b815b9882683d20bd49308268e8f2119", "fetched_at": "2026-08-29T11:23:48.256861+00:00", "kind": "homepage", "missing": false, "url": "https://clash-lang.org/"}, {"content_hash": "df6a56213152c63319ffe96861b98320a609a158b0305f53a37f21e1c579de86", "fetched_at": "2026-08-29T11:23:48.263766+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/documentation"}, {"content_hash": "4e1d8c6091b740ba64a88e1c458e72ed0c0d904d423cbac798fc054d056c3d7c", "fetched_at": "2026-08-29T11:23:48.265906+00:00", "kind": "site_page", "missing": false, "url": "https://clash-lang.org/install"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4808, "days_push": 7, "days_rel": 132, "gap_med": 84.5, "n_releases_24m": 5}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}