{"adoption": {"forks": 350, "observed_at": "2026-08-28T04:06:33.331975+00:00", "stars": 2274}, "canonical_url": "https://ross.abutalabs.com/products/wlroots", "card": {"archived": true, "artifact_type": "library", "description": "A modular Wayland compositor library", "domain": ["operating-systems", "graphics", "developer-tools", "desktop-applications"], "enriched": true, "function": ["graphics", "gui", "middleware"], "health_score": 10, "homepage": "https://gitlab.freedesktop.org/wlroots/wlroots/", "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["swaywm/wlroots"], "name": "swaywm/wlroots", "platform": ["cpp", "c"], "pushed_at": "2022-02-16T22:22:50+00:00", "repo": "swaywm/wlroots", "stars": 2274, "tags": ["wayland", "compositor", "display-server", "kms-drm", "libinput", "xwayland", "meson", "linux"], "topics": ["wayland-compositor", "wayland"], "urls": [], "use_cases": ["build a custom Wayland compositor", "abstract KMS/DRM and input hardware for a display server", "add Xwayland support to a compositor without writing an X11 window manager", "implement Wayland protocol extensions portably", "write a headless or nested Wayland compositor for testing"], "what_it_is": "wlroots is a modular C library providing pluggable, composable modules for building Wayland compositors, including hardware backends, protocol implementations, rendering abstractions, and Xwayland support. It is developed under the direction of the Sway project and has migrated to gitlab.freedesktop.org.", "when_to_avoid": ["you need a ready-to-use desktop environment rather than a library", "you are targeting X11 only or non-Linux platforms", "you prefer a higher-level toolkit or a language other than C (though wrapper libraries exist)"], "when_to_choose": ["you are writing a Wayland compositor in C and want reusable, unopinionated building blocks", "you need broad hardware compatibility and multiple backends (DRM, X11, Wayland, headless)", "you want to avoid reimplementing common Wayland interfaces and rendering code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wlroots", "repo": "swaywm/wlroots", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "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:33.331975+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.331975+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:41:32.853128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbce09887b1285c7e30c9af04bd11998dc3f9cc5af1a1cee8878e052610f4a1e", "fetched_at": "2026-08-28T04:06:33.331975+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swaywm/wlroots"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3417, "days_push": 1659, "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}}