{"id":16298790,"url":"https://github.com/kdeldycke/extra-platforms","last_synced_at":"2026-03-04T12:05:40.200Z","repository":{"id":253509615,"uuid":"843334795","full_name":"kdeldycke/extra-platforms","owner":"kdeldycke","description":"Detect platforms and group them by family","archived":false,"fork":false,"pushed_at":"2025-03-14T11:03:15.000Z","size":2512,"stargazers_count":10,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T01:13:11.518Z","etag":null,"topics":["aix","android","bsd","cygwin","distribution","hurd","linux","macos","multiplatform","os-detection","platform","python","solaris","windows"],"latest_commit_sha":null,"homepage":"https://kdeldycke.github.io/extra-platforms","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdeldycke.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":".github/funding.yml","license":"license","code_of_conduct":".github/code-of-conduct.md","threat_model":null,"audit":null,"citation":"citation.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"kdeldycke"}},"created_at":"2024-08-16T09:36:41.000Z","updated_at":"2025-03-04T12:52:43.000Z","dependencies_parsed_at":"2024-11-10T17:17:13.686Z","dependency_job_id":"f2946fea-cbe9-419d-9a2b-7fa0902d6c03","html_url":"https://github.com/kdeldycke/extra-platforms","commit_stats":null,"previous_names":["kdeldycke/extra-platforms"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdeldycke%2Fextra-platforms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdeldycke%2Fextra-platforms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdeldycke%2Fextra-platforms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdeldycke%2Fextra-platforms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdeldycke","download_url":"https://codeload.github.com/kdeldycke/extra-platforms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244559698,"owners_count":20472206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aix","android","bsd","cygwin","distribution","hurd","linux","macos","multiplatform","os-detection","platform","python","solaris","windows"],"created_at":"2024-10-10T20:45:23.157Z","updated_at":"2026-03-04T12:05:35.170Z","avatar_url":"https://github.com/kdeldycke.png","language":"Python","funding_links":["https://github.com/sponsors/kdeldycke"],"categories":[],"sub_categories":[],"readme":"# Extra Platforms\n\n[![Last release](https://img.shields.io/pypi/v/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)\n[![Python versions](https://img.shields.io/pypi/pyversions/extra-platforms.svg)](https://pypi.python.org/pypi/extra-platforms)\n[![Downloads](https://static.pepy.tech/badge/extra_platforms/month)](https://pepy.tech/project/extra_platforms)\n[![Unittests status](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/tests.yaml?query=branch%3Amain)\n[![Coverage status](https://codecov.io/gh/kdeldycke/extra-platforms/branch/main/graph/badge.svg)](https://app.codecov.io/gh/kdeldycke/extra-platforms)\n[![Documentation status](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/kdeldycke/extra-platforms/actions/workflows/docs.yaml?query=branch%3Amain)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13341712.svg)](https://doi.org/10.5281/zenodo.13341712)\n\n## What is Extra Platforms?\n\n- Provides a list of all known platforms\n- Detect the current platform, at the distribution level\n- Gather current platform metadata (version, codename, etc.)\n- Group platforms into families\n- Manage collection of platforms and groups\n- Associate each platform and group to an emoji symbol\n- New conditional markers for `pytest`:\n  - `@skip_linux`, `@skip_macos` and `@skip_windows`\n  - `@unless_linux`, `@unless_macos` and `@unless_windows`\n- Address [`distro#177` issue (support for Windows and Mac OS)](https://github.com/python-distro/distro/issues/177)\n\n## Examples\n\nGet the current platform, from which you can access lots of metadata:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import current_os\n\n\u003e\u003e\u003e my_os = current_os()\n\u003e\u003e\u003e my_os\nPlatform(id='macos', name='macOS', current=True)\n\n\u003e\u003e\u003e my_os.id\n'macos'\n\u003e\u003e\u003e my_os.name\n'macOS'\n\u003e\u003e\u003e my_os.icon\n'🍎'\n\n\u003e\u003e\u003e my_os.info()\n{\n    \"id\": \"macos\",\n    \"name\": \"macOS\",\n    \"icon\": \"🍎\",\n    \"current\": True,\n    \"distro_id\": \"darwin\",\n    \"version\": \"23.6.0\",\n    \"version_parts\": {\"major\": \"23\", \"minor\": \"6\", \"build_number\": \"0\"},\n    \"like\": None,\n    \"codename\": None,\n}\n```\n\nCheck if a platform is a specific system:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import is_gentoo\n\n\u003e\u003e\u003e is_gentoo()\nFalse\n```\n\nUse groups to check if the current platform is part of a specific family:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import UNIX, current_os\n\n\u003e\u003e\u003e current_os() in UNIX\nFalse\n```\n\nOr directly use the boolean variables available for each family:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import is_unix\n\n\u003e\u003e\u003e is_unix()\nFalse\n```\n\nList all platforms of a family:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import LINUX\n\n\u003e\u003e\u003e LINUX\nGroup(id='linux', name='Any Linux', platform_ids=frozenset({'ibm_powerkvm', 'rocky', 'debian', 'tuxedo', 'ubuntu', 'mageia', 'xenserver', 'opensuse', 'nobara', 'buildroot', 'rhel', 'parallels', 'pidora', 'sles', 'amzn', 'scientific', 'linuxmint', 'centos', 'android', 'gentoo', 'raspbian', 'unknown_linux', 'mandriva', 'exherbo', 'cloudlinux', 'fedora', 'guix', 'arch', 'altlinux', 'slackware', 'oracle', 'kvmibm'}))\n\n\u003e\u003e\u003e print(\"\\n\".join([p.name for p in LINUX]))\nALT Linux\nAmazon Linux\nAndroid\nArch Linux\nBuildroot\nCentOS\nCloudLinux OS\nDebian\nExherbo Linux\nFedora\nGentoo Linux\nGuix System\nIBM PowerKVM\nKVM for IBM z Systems\nLinux Mint\nMageia\nMandriva Linux\nNobara\nopenSUSE\nOracle Linux\nParallels\nPidora\nRaspbian\nRedHat Enterprise Linux\nRocky Linux\nScientific Linux\nSlackware\nSUSE Linux Enterprise Server\nTuxedo OS\nUbuntu\nUnknown Linux\nXenServer\n```\n\nReduce a disparate collection of groups and platforms into a minimal descriptive set, by grouping all platforms into families:\n\n```pycon\n\u003e\u003e\u003e from extra_platforms import AIX, MACOS, SOLARIS, reduce\n\n\u003e\u003e\u003e reduce([AIX, MACOS])\n{\n    Platform(id='aix', name='IBM AIX', current=False),\n    Platform(id='macos', name='macOS', current=True),\n}\n\n\u003e\u003e\u003e reduce([AIX, MACOS, SOLARIS])\n{\n    Group(id='system_v', name='Any Unix derived from AT\u0026T System Five', platform_ids=frozenset({'aix', 'solaris'})),\n    Platform(id='macos', name='macOS', current=True),\n}\n```\n\n## Groups → Platforms mapping\n\nRelationships between groups and platforms:\n\n\u003c!-- platform-sankey-start --\u003e\n\n```mermaid\n---\nconfig: {\"sankey\": {\"showValues\": false, \"width\": 800, \"height\": 400}}\n---\nsankey-beta\n\nALL_PLATFORMS,aix,1\nALL_PLATFORMS,altlinux,1\nALL_PLATFORMS,amzn,1\nALL_PLATFORMS,android,1\nALL_PLATFORMS,arch,1\nALL_PLATFORMS,buildroot,1\nALL_PLATFORMS,centos,1\nALL_PLATFORMS,cloudlinux,1\nALL_PLATFORMS,cygwin,1\nALL_PLATFORMS,debian,1\nALL_PLATFORMS,exherbo,1\nALL_PLATFORMS,fedora,1\nALL_PLATFORMS,freebsd,1\nALL_PLATFORMS,gentoo,1\nALL_PLATFORMS,guix,1\nALL_PLATFORMS,hurd,1\nALL_PLATFORMS,ibm_powerkvm,1\nALL_PLATFORMS,kvmibm,1\nALL_PLATFORMS,linuxmint,1\nALL_PLATFORMS,macos,1\nALL_PLATFORMS,mageia,1\nALL_PLATFORMS,mandriva,1\nALL_PLATFORMS,midnightbsd,1\nALL_PLATFORMS,netbsd,1\nALL_PLATFORMS,nobara,1\nALL_PLATFORMS,openbsd,1\nALL_PLATFORMS,opensuse,1\nALL_PLATFORMS,oracle,1\nALL_PLATFORMS,parallels,1\nALL_PLATFORMS,pidora,1\nALL_PLATFORMS,raspbian,1\nALL_PLATFORMS,rhel,1\nALL_PLATFORMS,rocky,1\nALL_PLATFORMS,scientific,1\nALL_PLATFORMS,slackware,1\nALL_PLATFORMS,sles,1\nALL_PLATFORMS,solaris,1\nALL_PLATFORMS,sunos,1\nALL_PLATFORMS,tumbleweed,1\nALL_PLATFORMS,tuxedo,1\nALL_PLATFORMS,ubuntu,1\nALL_PLATFORMS,unknown_linux,1\nALL_PLATFORMS,windows,1\nALL_PLATFORMS,wsl1,1\nALL_PLATFORMS,wsl2,1\nALL_PLATFORMS,xenserver,1\nUNIX,aix,1\nUNIX,altlinux,1\nUNIX,amzn,1\nUNIX,android,1\nUNIX,arch,1\nUNIX,buildroot,1\nUNIX,centos,1\nUNIX,cloudlinux,1\nUNIX,cygwin,1\nUNIX,debian,1\nUNIX,exherbo,1\nUNIX,fedora,1\nUNIX,freebsd,1\nUNIX,gentoo,1\nUNIX,guix,1\nUNIX,hurd,1\nUNIX,ibm_powerkvm,1\nUNIX,kvmibm,1\nUNIX,linuxmint,1\nUNIX,macos,1\nUNIX,mageia,1\nUNIX,mandriva,1\nUNIX,midnightbsd,1\nUNIX,netbsd,1\nUNIX,nobara,1\nUNIX,openbsd,1\nUNIX,opensuse,1\nUNIX,oracle,1\nUNIX,parallels,1\nUNIX,pidora,1\nUNIX,raspbian,1\nUNIX,rhel,1\nUNIX,rocky,1\nUNIX,scientific,1\nUNIX,slackware,1\nUNIX,sles,1\nUNIX,solaris,1\nUNIX,sunos,1\nUNIX,tumbleweed,1\nUNIX,tuxedo,1\nUNIX,ubuntu,1\nUNIX,unknown_linux,1\nUNIX,wsl1,1\nUNIX,wsl2,1\nUNIX,xenserver,1\nUNIX_WITHOUT_MACOS,aix,1\nUNIX_WITHOUT_MACOS,altlinux,1\nUNIX_WITHOUT_MACOS,amzn,1\nUNIX_WITHOUT_MACOS,android,1\nUNIX_WITHOUT_MACOS,arch,1\nUNIX_WITHOUT_MACOS,buildroot,1\nUNIX_WITHOUT_MACOS,centos,1\nUNIX_WITHOUT_MACOS,cloudlinux,1\nUNIX_WITHOUT_MACOS,cygwin,1\nUNIX_WITHOUT_MACOS,debian,1\nUNIX_WITHOUT_MACOS,exherbo,1\nUNIX_WITHOUT_MACOS,fedora,1\nUNIX_WITHOUT_MACOS,freebsd,1\nUNIX_WITHOUT_MACOS,gentoo,1\nUNIX_WITHOUT_MACOS,guix,1\nUNIX_WITHOUT_MACOS,hurd,1\nUNIX_WITHOUT_MACOS,ibm_powerkvm,1\nUNIX_WITHOUT_MACOS,kvmibm,1\nUNIX_WITHOUT_MACOS,linuxmint,1\nUNIX_WITHOUT_MACOS,mageia,1\nUNIX_WITHOUT_MACOS,mandriva,1\nUNIX_WITHOUT_MACOS,midnightbsd,1\nUNIX_WITHOUT_MACOS,netbsd,1\nUNIX_WITHOUT_MACOS,nobara,1\nUNIX_WITHOUT_MACOS,openbsd,1\nUNIX_WITHOUT_MACOS,opensuse,1\nUNIX_WITHOUT_MACOS,oracle,1\nUNIX_WITHOUT_MACOS,parallels,1\nUNIX_WITHOUT_MACOS,pidora,1\nUNIX_WITHOUT_MACOS,raspbian,1\nUNIX_WITHOUT_MACOS,rhel,1\nUNIX_WITHOUT_MACOS,rocky,1\nUNIX_WITHOUT_MACOS,scientific,1\nUNIX_WITHOUT_MACOS,slackware,1\nUNIX_WITHOUT_MACOS,sles,1\nUNIX_WITHOUT_MACOS,solaris,1\nUNIX_WITHOUT_MACOS,sunos,1\nUNIX_WITHOUT_MACOS,tumbleweed,1\nUNIX_WITHOUT_MACOS,tuxedo,1\nUNIX_WITHOUT_MACOS,ubuntu,1\nUNIX_WITHOUT_MACOS,unknown_linux,1\nUNIX_WITHOUT_MACOS,wsl1,1\nUNIX_WITHOUT_MACOS,wsl2,1\nUNIX_WITHOUT_MACOS,xenserver,1\nLINUX_LIKE,altlinux,1\nLINUX_LIKE,amzn,1\nLINUX_LIKE,android,1\nLINUX_LIKE,arch,1\nLINUX_LIKE,buildroot,1\nLINUX_LIKE,centos,1\nLINUX_LIKE,cloudlinux,1\nLINUX_LIKE,debian,1\nLINUX_LIKE,exherbo,1\nLINUX_LIKE,fedora,1\nLINUX_LIKE,gentoo,1\nLINUX_LIKE,guix,1\nLINUX_LIKE,ibm_powerkvm,1\nLINUX_LIKE,kvmibm,1\nLINUX_LIKE,linuxmint,1\nLINUX_LIKE,mageia,1\nLINUX_LIKE,mandriva,1\nLINUX_LIKE,nobara,1\nLINUX_LIKE,opensuse,1\nLINUX_LIKE,oracle,1\nLINUX_LIKE,parallels,1\nLINUX_LIKE,pidora,1\nLINUX_LIKE,raspbian,1\nLINUX_LIKE,rhel,1\nLINUX_LIKE,rocky,1\nLINUX_LIKE,scientific,1\nLINUX_LIKE,slackware,1\nLINUX_LIKE,sles,1\nLINUX_LIKE,tumbleweed,1\nLINUX_LIKE,tuxedo,1\nLINUX_LIKE,ubuntu,1\nLINUX_LIKE,unknown_linux,1\nLINUX_LIKE,wsl1,1\nLINUX_LIKE,wsl2,1\nLINUX_LIKE,xenserver,1\nLINUX,altlinux,1\nLINUX,amzn,1\nLINUX,android,1\nLINUX,arch,1\nLINUX,buildroot,1\nLINUX,centos,1\nLINUX,cloudlinux,1\nLINUX,debian,1\nLINUX,exherbo,1\nLINUX,fedora,1\nLINUX,gentoo,1\nLINUX,guix,1\nLINUX,ibm_powerkvm,1\nLINUX,kvmibm,1\nLINUX,linuxmint,1\nLINUX,mageia,1\nLINUX,mandriva,1\nLINUX,nobara,1\nLINUX,opensuse,1\nLINUX,oracle,1\nLINUX,parallels,1\nLINUX,pidora,1\nLINUX,raspbian,1\nLINUX,rhel,1\nLINUX,rocky,1\nLINUX,scientific,1\nLINUX,slackware,1\nLINUX,sles,1\nLINUX,tumbleweed,1\nLINUX,tuxedo,1\nLINUX,ubuntu,1\nLINUX,unknown_linux,1\nLINUX,xenserver,1\nBSD,freebsd,1\nBSD,macos,1\nBSD,midnightbsd,1\nBSD,netbsd,1\nBSD,openbsd,1\nBSD,sunos,1\nBSD_WITHOUT_MACOS,freebsd,1\nBSD_WITHOUT_MACOS,midnightbsd,1\nBSD_WITHOUT_MACOS,netbsd,1\nBSD_WITHOUT_MACOS,openbsd,1\nBSD_WITHOUT_MACOS,sunos,1\nSYSTEM_V,aix,1\nSYSTEM_V,solaris,1\nLINUX_LAYERS,wsl1,1\nLINUX_LAYERS,wsl2,1\nUNIX_LAYERS,cygwin,1\nOTHER_UNIX,hurd,1\nANY_WINDOWS,windows,1\n```\n\n\u003c!-- platform-sankey-end --\u003e\n\n## OS families\n\nEach platform is assigned to a group of non-overlpaping families:\n\n\u003c!-- platform-hierarchy-start --\u003e\n\n```mermaid\n---\nconfig: {\"mindmap\": {\"padding\": 5}}\n---\nmindmap\n    ((Extra Platforms))\n        )≛ UNIX_LAYERS(\n            (Ͼ cygwin)\n        )Ⅴ SYSTEM_V(\n            (➿ aix)\n            (🌞 solaris)\n        )⊎ OTHER_UNIX(\n            (🐃 hurd)\n        )≚ LINUX_LAYERS(\n            (⊞ wsl1)\n            (⊞ wsl2)\n        )🐧 LINUX(\n            (🐧 altlinux)\n            (🙂 amzn)\n            (🤖 android)\n            (🎗️ arch)\n            (⛑️ buildroot)\n            (💠 centos)\n            (꩜ cloudlinux)\n            (🌀 debian)\n            (🐽 exherbo)\n            (🎩 fedora)\n            (🗜️ gentoo)\n            (🐃 guix)\n            (🤹 ibm_powerkvm)\n            (🤹 kvmibm)\n            (🌿 linuxmint)\n            (⍥ mageia)\n            (💫 mandriva)\n            ( nobara)\n            (🦎 opensuse)\n            (🦴 oracle)\n            (∥ parallels)\n            (🍓 pidora)\n            (🍓 raspbian)\n            (🎩 rhel)\n            (⛰️ rocky)\n            (⚛️ scientific)\n            (🚬 slackware)\n            (🦎 sles)\n            (↻ tumbleweed)\n            (🤵 tuxedo)\n            (🎯 ubuntu)\n            (🐧 unknown_linux)\n            (Ⓧ xenserver)\n        )🅱️+ BSD(\n            (😈 freebsd)\n            (🍎 macos)\n            (🌘 midnightbsd)\n            (🚩 netbsd)\n            (🐡 openbsd)\n            (☀️ sunos)\n        )🪟 ANY_WINDOWS(\n            (🪟 windows)\n```\n\n\u003c!-- platform-hierarchy-end --\u003e\n\n\u003c!-- NON_OVERLAPPING_GROUPS-graph-start --\u003e\n\n```mermaid\n---\ntitle: \u003ccode\u003eextra_platforms.NON_OVERLAPPING_GROUPS\u003c/code\u003e - Non-overlapping groups.\n---\nflowchart\n\n    subgraph \"\u003ccode\u003eextra_platforms.ANY_WINDOWS\u003c/code\u003e\u003cbr/\u003e🪟 \u003cem\u003eAny Windows\u003c/em\u003e\"\n        any_windows_windows(\u003ccode\u003ewindows\u003c/code\u003e\u003cbr/\u003e🪟 \u003cem\u003eWindows\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.BSD\u003c/code\u003e\u003cbr/\u003e🅱️+ \u003cem\u003eAny BSD\u003c/em\u003e\"\n        bsd_freebsd(\u003ccode\u003efreebsd\u003c/code\u003e\u003cbr/\u003e😈 \u003cem\u003eFreeBSD\u003c/em\u003e)\n        bsd_macos(\u003ccode\u003emacos\u003c/code\u003e\u003cbr/\u003e🍎 \u003cem\u003emacOS\u003c/em\u003e)\n        bsd_midnightbsd(\u003ccode\u003emidnightbsd\u003c/code\u003e\u003cbr/\u003e🌘 \u003cem\u003eMidnightBSD\u003c/em\u003e)\n        bsd_netbsd(\u003ccode\u003enetbsd\u003c/code\u003e\u003cbr/\u003e🚩 \u003cem\u003eNetBSD\u003c/em\u003e)\n        bsd_openbsd(\u003ccode\u003eopenbsd\u003c/code\u003e\u003cbr/\u003e🐡 \u003cem\u003eOpenBSD\u003c/em\u003e)\n        bsd_sunos(\u003ccode\u003esunos\u003c/code\u003e\u003cbr/\u003e☀️ \u003cem\u003eSunOS\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.LINUX\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eAny Linux distribution\u003c/em\u003e\"\n        linux_altlinux(\u003ccode\u003ealtlinux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eALT Linux\u003c/em\u003e)\n        linux_amzn(\u003ccode\u003eamzn\u003c/code\u003e\u003cbr/\u003e🙂 \u003cem\u003eAmazon Linux\u003c/em\u003e)\n        linux_android(\u003ccode\u003eandroid\u003c/code\u003e\u003cbr/\u003e🤖 \u003cem\u003eAndroid\u003c/em\u003e)\n        linux_arch(\u003ccode\u003earch\u003c/code\u003e\u003cbr/\u003e🎗️ \u003cem\u003eArch Linux\u003c/em\u003e)\n        linux_buildroot(\u003ccode\u003ebuildroot\u003c/code\u003e\u003cbr/\u003e⛑️ \u003cem\u003eBuildroot\u003c/em\u003e)\n        linux_centos(\u003ccode\u003ecentos\u003c/code\u003e\u003cbr/\u003e💠 \u003cem\u003eCentOS\u003c/em\u003e)\n        linux_cloudlinux(\u003ccode\u003ecloudlinux\u003c/code\u003e\u003cbr/\u003e꩜ \u003cem\u003eCloudLinux OS\u003c/em\u003e)\n        linux_debian(\u003ccode\u003edebian\u003c/code\u003e\u003cbr/\u003e🌀 \u003cem\u003eDebian\u003c/em\u003e)\n        linux_exherbo(\u003ccode\u003eexherbo\u003c/code\u003e\u003cbr/\u003e🐽 \u003cem\u003eExherbo Linux\u003c/em\u003e)\n        linux_fedora(\u003ccode\u003efedora\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eFedora\u003c/em\u003e)\n        linux_gentoo(\u003ccode\u003egentoo\u003c/code\u003e\u003cbr/\u003e🗜️ \u003cem\u003eGentoo Linux\u003c/em\u003e)\n        linux_guix(\u003ccode\u003eguix\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGuix System\u003c/em\u003e)\n        linux_ibm_powerkvm(\u003ccode\u003eibm_powerkvm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eIBM PowerKVM\u003c/em\u003e)\n        linux_kvmibm(\u003ccode\u003ekvmibm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eKVM for IBM z Systems\u003c/em\u003e)\n        linux_linuxmint(\u003ccode\u003elinuxmint\u003c/code\u003e\u003cbr/\u003e🌿 \u003cem\u003eLinux Mint\u003c/em\u003e)\n        linux_mageia(\u003ccode\u003emageia\u003c/code\u003e\u003cbr/\u003e⍥ \u003cem\u003eMageia\u003c/em\u003e)\n        linux_mandriva(\u003ccode\u003emandriva\u003c/code\u003e\u003cbr/\u003e💫 \u003cem\u003eMandriva Linux\u003c/em\u003e)\n        linux_nobara(\u003ccode\u003enobara\u003c/code\u003e\u003cbr/\u003e \u003cem\u003eNobara\u003c/em\u003e)\n        linux_opensuse(\u003ccode\u003eopensuse\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eopenSUSE\u003c/em\u003e)\n        linux_oracle(\u003ccode\u003eoracle\u003c/code\u003e\u003cbr/\u003e🦴 \u003cem\u003eOracle Linux\u003c/em\u003e)\n        linux_parallels(\u003ccode\u003eparallels\u003c/code\u003e\u003cbr/\u003e∥ \u003cem\u003eParallels\u003c/em\u003e)\n        linux_pidora(\u003ccode\u003epidora\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003ePidora\u003c/em\u003e)\n        linux_raspbian(\u003ccode\u003eraspbian\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003eRaspbian\u003c/em\u003e)\n        linux_rhel(\u003ccode\u003erhel\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eRedHat Enterprise Linux\u003c/em\u003e)\n        linux_rocky(\u003ccode\u003erocky\u003c/code\u003e\u003cbr/\u003e⛰️ \u003cem\u003eRocky Linux\u003c/em\u003e)\n        linux_scientific(\u003ccode\u003escientific\u003c/code\u003e\u003cbr/\u003e⚛️ \u003cem\u003eScientific Linux\u003c/em\u003e)\n        linux_slackware(\u003ccode\u003eslackware\u003c/code\u003e\u003cbr/\u003e🚬 \u003cem\u003eSlackware\u003c/em\u003e)\n        linux_sles(\u003ccode\u003esles\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eSUSE Linux Enterprise Server\u003c/em\u003e)\n        linux_tumbleweed(\u003ccode\u003etumbleweed\u003c/code\u003e\u003cbr/\u003e↻ \u003cem\u003eopenSUSE Tumbleweed\u003c/em\u003e)\n        linux_tuxedo(\u003ccode\u003etuxedo\u003c/code\u003e\u003cbr/\u003e🤵 \u003cem\u003eTuxedo OS\u003c/em\u003e)\n        linux_ubuntu(\u003ccode\u003eubuntu\u003c/code\u003e\u003cbr/\u003e🎯 \u003cem\u003eUbuntu\u003c/em\u003e)\n        linux_unknown_linux(\u003ccode\u003eunknown_linux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eUnknown Linux\u003c/em\u003e)\n        linux_xenserver(\u003ccode\u003exenserver\u003c/code\u003e\u003cbr/\u003eⓍ \u003cem\u003eXenServer\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.LINUX_LAYERS\u003c/code\u003e\u003cbr/\u003e≚ \u003cem\u003eAny Linux compatibility layers\u003c/em\u003e\"\n        linux_layers_wsl1(\u003ccode\u003ewsl1\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v1\u003c/em\u003e)\n        linux_layers_wsl2(\u003ccode\u003ewsl2\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v2\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.OTHER_UNIX\u003c/code\u003e\u003cbr/\u003e⊎ \u003cem\u003eAny other Unix\u003c/em\u003e\"\n        other_unix_hurd(\u003ccode\u003ehurd\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGNU/Hurd\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.SYSTEM_V\u003c/code\u003e\u003cbr/\u003eⅤ \u003cem\u003eAny Unix derived from AT\u0026amp;T System Five\u003c/em\u003e\"\n        system_v_aix(\u003ccode\u003eaix\u003c/code\u003e\u003cbr/\u003e➿ \u003cem\u003eIBM AIX\u003c/em\u003e)\n        system_v_solaris(\u003ccode\u003esolaris\u003c/code\u003e\u003cbr/\u003e🌞 \u003cem\u003eSolaris\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.UNIX_LAYERS\u003c/code\u003e\u003cbr/\u003e≛ \u003cem\u003eAny Unix compatibility layers\u003c/em\u003e\"\n        unix_layers_cygwin(\u003ccode\u003ecygwin\u003c/code\u003e\u003cbr/\u003eϾ \u003cem\u003eCygwin\u003c/em\u003e)\n    end\n```\n\n\u003c!-- NON_OVERLAPPING_GROUPS-graph-end --\u003e\n\n## Other groups\n\nOther groups are available for convenience, but these overlaps:\n\n\u003c!-- EXTRA_GROUPS-graph-start --\u003e\n\n```mermaid\n---\ntitle: \u003ccode\u003eextra_platforms.EXTRA_GROUPS\u003c/code\u003e - Overlapping groups, defined for convenience.\n---\nflowchart\n\n    subgraph \"\u003ccode\u003eextra_platforms.ALL_PLATFORMS\u003c/code\u003e\u003cbr/\u003e🖥️ \u003cem\u003eAll platforms\u003c/em\u003e\"\n        all_platforms_aix(\u003ccode\u003eaix\u003c/code\u003e\u003cbr/\u003e➿ \u003cem\u003eIBM AIX\u003c/em\u003e)\n        all_platforms_altlinux(\u003ccode\u003ealtlinux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eALT Linux\u003c/em\u003e)\n        all_platforms_amzn(\u003ccode\u003eamzn\u003c/code\u003e\u003cbr/\u003e🙂 \u003cem\u003eAmazon Linux\u003c/em\u003e)\n        all_platforms_android(\u003ccode\u003eandroid\u003c/code\u003e\u003cbr/\u003e🤖 \u003cem\u003eAndroid\u003c/em\u003e)\n        all_platforms_arch(\u003ccode\u003earch\u003c/code\u003e\u003cbr/\u003e🎗️ \u003cem\u003eArch Linux\u003c/em\u003e)\n        all_platforms_buildroot(\u003ccode\u003ebuildroot\u003c/code\u003e\u003cbr/\u003e⛑️ \u003cem\u003eBuildroot\u003c/em\u003e)\n        all_platforms_centos(\u003ccode\u003ecentos\u003c/code\u003e\u003cbr/\u003e💠 \u003cem\u003eCentOS\u003c/em\u003e)\n        all_platforms_cloudlinux(\u003ccode\u003ecloudlinux\u003c/code\u003e\u003cbr/\u003e꩜ \u003cem\u003eCloudLinux OS\u003c/em\u003e)\n        all_platforms_cygwin(\u003ccode\u003ecygwin\u003c/code\u003e\u003cbr/\u003eϾ \u003cem\u003eCygwin\u003c/em\u003e)\n        all_platforms_debian(\u003ccode\u003edebian\u003c/code\u003e\u003cbr/\u003e🌀 \u003cem\u003eDebian\u003c/em\u003e)\n        all_platforms_exherbo(\u003ccode\u003eexherbo\u003c/code\u003e\u003cbr/\u003e🐽 \u003cem\u003eExherbo Linux\u003c/em\u003e)\n        all_platforms_fedora(\u003ccode\u003efedora\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eFedora\u003c/em\u003e)\n        all_platforms_freebsd(\u003ccode\u003efreebsd\u003c/code\u003e\u003cbr/\u003e😈 \u003cem\u003eFreeBSD\u003c/em\u003e)\n        all_platforms_gentoo(\u003ccode\u003egentoo\u003c/code\u003e\u003cbr/\u003e🗜️ \u003cem\u003eGentoo Linux\u003c/em\u003e)\n        all_platforms_guix(\u003ccode\u003eguix\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGuix System\u003c/em\u003e)\n        all_platforms_hurd(\u003ccode\u003ehurd\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGNU/Hurd\u003c/em\u003e)\n        all_platforms_ibm_powerkvm(\u003ccode\u003eibm_powerkvm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eIBM PowerKVM\u003c/em\u003e)\n        all_platforms_kvmibm(\u003ccode\u003ekvmibm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eKVM for IBM z Systems\u003c/em\u003e)\n        all_platforms_linuxmint(\u003ccode\u003elinuxmint\u003c/code\u003e\u003cbr/\u003e🌿 \u003cem\u003eLinux Mint\u003c/em\u003e)\n        all_platforms_macos(\u003ccode\u003emacos\u003c/code\u003e\u003cbr/\u003e🍎 \u003cem\u003emacOS\u003c/em\u003e)\n        all_platforms_mageia(\u003ccode\u003emageia\u003c/code\u003e\u003cbr/\u003e⍥ \u003cem\u003eMageia\u003c/em\u003e)\n        all_platforms_mandriva(\u003ccode\u003emandriva\u003c/code\u003e\u003cbr/\u003e💫 \u003cem\u003eMandriva Linux\u003c/em\u003e)\n        all_platforms_midnightbsd(\u003ccode\u003emidnightbsd\u003c/code\u003e\u003cbr/\u003e🌘 \u003cem\u003eMidnightBSD\u003c/em\u003e)\n        all_platforms_netbsd(\u003ccode\u003enetbsd\u003c/code\u003e\u003cbr/\u003e🚩 \u003cem\u003eNetBSD\u003c/em\u003e)\n        all_platforms_nobara(\u003ccode\u003enobara\u003c/code\u003e\u003cbr/\u003e \u003cem\u003eNobara\u003c/em\u003e)\n        all_platforms_openbsd(\u003ccode\u003eopenbsd\u003c/code\u003e\u003cbr/\u003e🐡 \u003cem\u003eOpenBSD\u003c/em\u003e)\n        all_platforms_opensuse(\u003ccode\u003eopensuse\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eopenSUSE\u003c/em\u003e)\n        all_platforms_oracle(\u003ccode\u003eoracle\u003c/code\u003e\u003cbr/\u003e🦴 \u003cem\u003eOracle Linux\u003c/em\u003e)\n        all_platforms_parallels(\u003ccode\u003eparallels\u003c/code\u003e\u003cbr/\u003e∥ \u003cem\u003eParallels\u003c/em\u003e)\n        all_platforms_pidora(\u003ccode\u003epidora\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003ePidora\u003c/em\u003e)\n        all_platforms_raspbian(\u003ccode\u003eraspbian\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003eRaspbian\u003c/em\u003e)\n        all_platforms_rhel(\u003ccode\u003erhel\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eRedHat Enterprise Linux\u003c/em\u003e)\n        all_platforms_rocky(\u003ccode\u003erocky\u003c/code\u003e\u003cbr/\u003e⛰️ \u003cem\u003eRocky Linux\u003c/em\u003e)\n        all_platforms_scientific(\u003ccode\u003escientific\u003c/code\u003e\u003cbr/\u003e⚛️ \u003cem\u003eScientific Linux\u003c/em\u003e)\n        all_platforms_slackware(\u003ccode\u003eslackware\u003c/code\u003e\u003cbr/\u003e🚬 \u003cem\u003eSlackware\u003c/em\u003e)\n        all_platforms_sles(\u003ccode\u003esles\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eSUSE Linux Enterprise Server\u003c/em\u003e)\n        all_platforms_solaris(\u003ccode\u003esolaris\u003c/code\u003e\u003cbr/\u003e🌞 \u003cem\u003eSolaris\u003c/em\u003e)\n        all_platforms_sunos(\u003ccode\u003esunos\u003c/code\u003e\u003cbr/\u003e☀️ \u003cem\u003eSunOS\u003c/em\u003e)\n        all_platforms_tumbleweed(\u003ccode\u003etumbleweed\u003c/code\u003e\u003cbr/\u003e↻ \u003cem\u003eopenSUSE Tumbleweed\u003c/em\u003e)\n        all_platforms_tuxedo(\u003ccode\u003etuxedo\u003c/code\u003e\u003cbr/\u003e🤵 \u003cem\u003eTuxedo OS\u003c/em\u003e)\n        all_platforms_ubuntu(\u003ccode\u003eubuntu\u003c/code\u003e\u003cbr/\u003e🎯 \u003cem\u003eUbuntu\u003c/em\u003e)\n        all_platforms_unknown_linux(\u003ccode\u003eunknown_linux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eUnknown Linux\u003c/em\u003e)\n        all_platforms_windows(\u003ccode\u003ewindows\u003c/code\u003e\u003cbr/\u003e🪟 \u003cem\u003eWindows\u003c/em\u003e)\n        all_platforms_wsl1(\u003ccode\u003ewsl1\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v1\u003c/em\u003e)\n        all_platforms_wsl2(\u003ccode\u003ewsl2\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v2\u003c/em\u003e)\n        all_platforms_xenserver(\u003ccode\u003exenserver\u003c/code\u003e\u003cbr/\u003eⓍ \u003cem\u003eXenServer\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.BSD_WITHOUT_MACOS\u003c/code\u003e\u003cbr/\u003e🅱️ \u003cem\u003eAny BSD excluding macOS\u003c/em\u003e\"\n        bsd_without_macos_freebsd(\u003ccode\u003efreebsd\u003c/code\u003e\u003cbr/\u003e😈 \u003cem\u003eFreeBSD\u003c/em\u003e)\n        bsd_without_macos_midnightbsd(\u003ccode\u003emidnightbsd\u003c/code\u003e\u003cbr/\u003e🌘 \u003cem\u003eMidnightBSD\u003c/em\u003e)\n        bsd_without_macos_netbsd(\u003ccode\u003enetbsd\u003c/code\u003e\u003cbr/\u003e🚩 \u003cem\u003eNetBSD\u003c/em\u003e)\n        bsd_without_macos_openbsd(\u003ccode\u003eopenbsd\u003c/code\u003e\u003cbr/\u003e🐡 \u003cem\u003eOpenBSD\u003c/em\u003e)\n        bsd_without_macos_sunos(\u003ccode\u003esunos\u003c/code\u003e\u003cbr/\u003e☀️ \u003cem\u003eSunOS\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.LINUX_LIKE\u003c/code\u003e\u003cbr/\u003e🐧+ \u003cem\u003eAny Linux and compatibility layers\u003c/em\u003e\"\n        linux_like_altlinux(\u003ccode\u003ealtlinux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eALT Linux\u003c/em\u003e)\n        linux_like_amzn(\u003ccode\u003eamzn\u003c/code\u003e\u003cbr/\u003e🙂 \u003cem\u003eAmazon Linux\u003c/em\u003e)\n        linux_like_android(\u003ccode\u003eandroid\u003c/code\u003e\u003cbr/\u003e🤖 \u003cem\u003eAndroid\u003c/em\u003e)\n        linux_like_arch(\u003ccode\u003earch\u003c/code\u003e\u003cbr/\u003e🎗️ \u003cem\u003eArch Linux\u003c/em\u003e)\n        linux_like_buildroot(\u003ccode\u003ebuildroot\u003c/code\u003e\u003cbr/\u003e⛑️ \u003cem\u003eBuildroot\u003c/em\u003e)\n        linux_like_centos(\u003ccode\u003ecentos\u003c/code\u003e\u003cbr/\u003e💠 \u003cem\u003eCentOS\u003c/em\u003e)\n        linux_like_cloudlinux(\u003ccode\u003ecloudlinux\u003c/code\u003e\u003cbr/\u003e꩜ \u003cem\u003eCloudLinux OS\u003c/em\u003e)\n        linux_like_debian(\u003ccode\u003edebian\u003c/code\u003e\u003cbr/\u003e🌀 \u003cem\u003eDebian\u003c/em\u003e)\n        linux_like_exherbo(\u003ccode\u003eexherbo\u003c/code\u003e\u003cbr/\u003e🐽 \u003cem\u003eExherbo Linux\u003c/em\u003e)\n        linux_like_fedora(\u003ccode\u003efedora\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eFedora\u003c/em\u003e)\n        linux_like_gentoo(\u003ccode\u003egentoo\u003c/code\u003e\u003cbr/\u003e🗜️ \u003cem\u003eGentoo Linux\u003c/em\u003e)\n        linux_like_guix(\u003ccode\u003eguix\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGuix System\u003c/em\u003e)\n        linux_like_ibm_powerkvm(\u003ccode\u003eibm_powerkvm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eIBM PowerKVM\u003c/em\u003e)\n        linux_like_kvmibm(\u003ccode\u003ekvmibm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eKVM for IBM z Systems\u003c/em\u003e)\n        linux_like_linuxmint(\u003ccode\u003elinuxmint\u003c/code\u003e\u003cbr/\u003e🌿 \u003cem\u003eLinux Mint\u003c/em\u003e)\n        linux_like_mageia(\u003ccode\u003emageia\u003c/code\u003e\u003cbr/\u003e⍥ \u003cem\u003eMageia\u003c/em\u003e)\n        linux_like_mandriva(\u003ccode\u003emandriva\u003c/code\u003e\u003cbr/\u003e💫 \u003cem\u003eMandriva Linux\u003c/em\u003e)\n        linux_like_nobara(\u003ccode\u003enobara\u003c/code\u003e\u003cbr/\u003e \u003cem\u003eNobara\u003c/em\u003e)\n        linux_like_opensuse(\u003ccode\u003eopensuse\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eopenSUSE\u003c/em\u003e)\n        linux_like_oracle(\u003ccode\u003eoracle\u003c/code\u003e\u003cbr/\u003e🦴 \u003cem\u003eOracle Linux\u003c/em\u003e)\n        linux_like_parallels(\u003ccode\u003eparallels\u003c/code\u003e\u003cbr/\u003e∥ \u003cem\u003eParallels\u003c/em\u003e)\n        linux_like_pidora(\u003ccode\u003epidora\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003ePidora\u003c/em\u003e)\n        linux_like_raspbian(\u003ccode\u003eraspbian\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003eRaspbian\u003c/em\u003e)\n        linux_like_rhel(\u003ccode\u003erhel\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eRedHat Enterprise Linux\u003c/em\u003e)\n        linux_like_rocky(\u003ccode\u003erocky\u003c/code\u003e\u003cbr/\u003e⛰️ \u003cem\u003eRocky Linux\u003c/em\u003e)\n        linux_like_scientific(\u003ccode\u003escientific\u003c/code\u003e\u003cbr/\u003e⚛️ \u003cem\u003eScientific Linux\u003c/em\u003e)\n        linux_like_slackware(\u003ccode\u003eslackware\u003c/code\u003e\u003cbr/\u003e🚬 \u003cem\u003eSlackware\u003c/em\u003e)\n        linux_like_sles(\u003ccode\u003esles\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eSUSE Linux Enterprise Server\u003c/em\u003e)\n        linux_like_tumbleweed(\u003ccode\u003etumbleweed\u003c/code\u003e\u003cbr/\u003e↻ \u003cem\u003eopenSUSE Tumbleweed\u003c/em\u003e)\n        linux_like_tuxedo(\u003ccode\u003etuxedo\u003c/code\u003e\u003cbr/\u003e🤵 \u003cem\u003eTuxedo OS\u003c/em\u003e)\n        linux_like_ubuntu(\u003ccode\u003eubuntu\u003c/code\u003e\u003cbr/\u003e🎯 \u003cem\u003eUbuntu\u003c/em\u003e)\n        linux_like_unknown_linux(\u003ccode\u003eunknown_linux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eUnknown Linux\u003c/em\u003e)\n        linux_like_wsl1(\u003ccode\u003ewsl1\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v1\u003c/em\u003e)\n        linux_like_wsl2(\u003ccode\u003ewsl2\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v2\u003c/em\u003e)\n        linux_like_xenserver(\u003ccode\u003exenserver\u003c/code\u003e\u003cbr/\u003eⓍ \u003cem\u003eXenServer\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.UNIX\u003c/code\u003e\u003cbr/\u003e⨷ \u003cem\u003eAny Unix\u003c/em\u003e\"\n        unix_aix(\u003ccode\u003eaix\u003c/code\u003e\u003cbr/\u003e➿ \u003cem\u003eIBM AIX\u003c/em\u003e)\n        unix_altlinux(\u003ccode\u003ealtlinux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eALT Linux\u003c/em\u003e)\n        unix_amzn(\u003ccode\u003eamzn\u003c/code\u003e\u003cbr/\u003e🙂 \u003cem\u003eAmazon Linux\u003c/em\u003e)\n        unix_android(\u003ccode\u003eandroid\u003c/code\u003e\u003cbr/\u003e🤖 \u003cem\u003eAndroid\u003c/em\u003e)\n        unix_arch(\u003ccode\u003earch\u003c/code\u003e\u003cbr/\u003e🎗️ \u003cem\u003eArch Linux\u003c/em\u003e)\n        unix_buildroot(\u003ccode\u003ebuildroot\u003c/code\u003e\u003cbr/\u003e⛑️ \u003cem\u003eBuildroot\u003c/em\u003e)\n        unix_centos(\u003ccode\u003ecentos\u003c/code\u003e\u003cbr/\u003e💠 \u003cem\u003eCentOS\u003c/em\u003e)\n        unix_cloudlinux(\u003ccode\u003ecloudlinux\u003c/code\u003e\u003cbr/\u003e꩜ \u003cem\u003eCloudLinux OS\u003c/em\u003e)\n        unix_cygwin(\u003ccode\u003ecygwin\u003c/code\u003e\u003cbr/\u003eϾ \u003cem\u003eCygwin\u003c/em\u003e)\n        unix_debian(\u003ccode\u003edebian\u003c/code\u003e\u003cbr/\u003e🌀 \u003cem\u003eDebian\u003c/em\u003e)\n        unix_exherbo(\u003ccode\u003eexherbo\u003c/code\u003e\u003cbr/\u003e🐽 \u003cem\u003eExherbo Linux\u003c/em\u003e)\n        unix_fedora(\u003ccode\u003efedora\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eFedora\u003c/em\u003e)\n        unix_freebsd(\u003ccode\u003efreebsd\u003c/code\u003e\u003cbr/\u003e😈 \u003cem\u003eFreeBSD\u003c/em\u003e)\n        unix_gentoo(\u003ccode\u003egentoo\u003c/code\u003e\u003cbr/\u003e🗜️ \u003cem\u003eGentoo Linux\u003c/em\u003e)\n        unix_guix(\u003ccode\u003eguix\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGuix System\u003c/em\u003e)\n        unix_hurd(\u003ccode\u003ehurd\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGNU/Hurd\u003c/em\u003e)\n        unix_ibm_powerkvm(\u003ccode\u003eibm_powerkvm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eIBM PowerKVM\u003c/em\u003e)\n        unix_kvmibm(\u003ccode\u003ekvmibm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eKVM for IBM z Systems\u003c/em\u003e)\n        unix_linuxmint(\u003ccode\u003elinuxmint\u003c/code\u003e\u003cbr/\u003e🌿 \u003cem\u003eLinux Mint\u003c/em\u003e)\n        unix_macos(\u003ccode\u003emacos\u003c/code\u003e\u003cbr/\u003e🍎 \u003cem\u003emacOS\u003c/em\u003e)\n        unix_mageia(\u003ccode\u003emageia\u003c/code\u003e\u003cbr/\u003e⍥ \u003cem\u003eMageia\u003c/em\u003e)\n        unix_mandriva(\u003ccode\u003emandriva\u003c/code\u003e\u003cbr/\u003e💫 \u003cem\u003eMandriva Linux\u003c/em\u003e)\n        unix_midnightbsd(\u003ccode\u003emidnightbsd\u003c/code\u003e\u003cbr/\u003e🌘 \u003cem\u003eMidnightBSD\u003c/em\u003e)\n        unix_netbsd(\u003ccode\u003enetbsd\u003c/code\u003e\u003cbr/\u003e🚩 \u003cem\u003eNetBSD\u003c/em\u003e)\n        unix_nobara(\u003ccode\u003enobara\u003c/code\u003e\u003cbr/\u003e \u003cem\u003eNobara\u003c/em\u003e)\n        unix_openbsd(\u003ccode\u003eopenbsd\u003c/code\u003e\u003cbr/\u003e🐡 \u003cem\u003eOpenBSD\u003c/em\u003e)\n        unix_opensuse(\u003ccode\u003eopensuse\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eopenSUSE\u003c/em\u003e)\n        unix_oracle(\u003ccode\u003eoracle\u003c/code\u003e\u003cbr/\u003e🦴 \u003cem\u003eOracle Linux\u003c/em\u003e)\n        unix_parallels(\u003ccode\u003eparallels\u003c/code\u003e\u003cbr/\u003e∥ \u003cem\u003eParallels\u003c/em\u003e)\n        unix_pidora(\u003ccode\u003epidora\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003ePidora\u003c/em\u003e)\n        unix_raspbian(\u003ccode\u003eraspbian\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003eRaspbian\u003c/em\u003e)\n        unix_rhel(\u003ccode\u003erhel\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eRedHat Enterprise Linux\u003c/em\u003e)\n        unix_rocky(\u003ccode\u003erocky\u003c/code\u003e\u003cbr/\u003e⛰️ \u003cem\u003eRocky Linux\u003c/em\u003e)\n        unix_scientific(\u003ccode\u003escientific\u003c/code\u003e\u003cbr/\u003e⚛️ \u003cem\u003eScientific Linux\u003c/em\u003e)\n        unix_slackware(\u003ccode\u003eslackware\u003c/code\u003e\u003cbr/\u003e🚬 \u003cem\u003eSlackware\u003c/em\u003e)\n        unix_sles(\u003ccode\u003esles\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eSUSE Linux Enterprise Server\u003c/em\u003e)\n        unix_solaris(\u003ccode\u003esolaris\u003c/code\u003e\u003cbr/\u003e🌞 \u003cem\u003eSolaris\u003c/em\u003e)\n        unix_sunos(\u003ccode\u003esunos\u003c/code\u003e\u003cbr/\u003e☀️ \u003cem\u003eSunOS\u003c/em\u003e)\n        unix_tumbleweed(\u003ccode\u003etumbleweed\u003c/code\u003e\u003cbr/\u003e↻ \u003cem\u003eopenSUSE Tumbleweed\u003c/em\u003e)\n        unix_tuxedo(\u003ccode\u003etuxedo\u003c/code\u003e\u003cbr/\u003e🤵 \u003cem\u003eTuxedo OS\u003c/em\u003e)\n        unix_ubuntu(\u003ccode\u003eubuntu\u003c/code\u003e\u003cbr/\u003e🎯 \u003cem\u003eUbuntu\u003c/em\u003e)\n        unix_unknown_linux(\u003ccode\u003eunknown_linux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eUnknown Linux\u003c/em\u003e)\n        unix_wsl1(\u003ccode\u003ewsl1\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v1\u003c/em\u003e)\n        unix_wsl2(\u003ccode\u003ewsl2\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v2\u003c/em\u003e)\n        unix_xenserver(\u003ccode\u003exenserver\u003c/code\u003e\u003cbr/\u003eⓍ \u003cem\u003eXenServer\u003c/em\u003e)\n    end\n    subgraph \"\u003ccode\u003eextra_platforms.UNIX_WITHOUT_MACOS\u003c/code\u003e\u003cbr/\u003e⨂ \u003cem\u003eAny Unix excluding macOS\u003c/em\u003e\"\n        unix_without_macos_aix(\u003ccode\u003eaix\u003c/code\u003e\u003cbr/\u003e➿ \u003cem\u003eIBM AIX\u003c/em\u003e)\n        unix_without_macos_altlinux(\u003ccode\u003ealtlinux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eALT Linux\u003c/em\u003e)\n        unix_without_macos_amzn(\u003ccode\u003eamzn\u003c/code\u003e\u003cbr/\u003e🙂 \u003cem\u003eAmazon Linux\u003c/em\u003e)\n        unix_without_macos_android(\u003ccode\u003eandroid\u003c/code\u003e\u003cbr/\u003e🤖 \u003cem\u003eAndroid\u003c/em\u003e)\n        unix_without_macos_arch(\u003ccode\u003earch\u003c/code\u003e\u003cbr/\u003e🎗️ \u003cem\u003eArch Linux\u003c/em\u003e)\n        unix_without_macos_buildroot(\u003ccode\u003ebuildroot\u003c/code\u003e\u003cbr/\u003e⛑️ \u003cem\u003eBuildroot\u003c/em\u003e)\n        unix_without_macos_centos(\u003ccode\u003ecentos\u003c/code\u003e\u003cbr/\u003e💠 \u003cem\u003eCentOS\u003c/em\u003e)\n        unix_without_macos_cloudlinux(\u003ccode\u003ecloudlinux\u003c/code\u003e\u003cbr/\u003e꩜ \u003cem\u003eCloudLinux OS\u003c/em\u003e)\n        unix_without_macos_cygwin(\u003ccode\u003ecygwin\u003c/code\u003e\u003cbr/\u003eϾ \u003cem\u003eCygwin\u003c/em\u003e)\n        unix_without_macos_debian(\u003ccode\u003edebian\u003c/code\u003e\u003cbr/\u003e🌀 \u003cem\u003eDebian\u003c/em\u003e)\n        unix_without_macos_exherbo(\u003ccode\u003eexherbo\u003c/code\u003e\u003cbr/\u003e🐽 \u003cem\u003eExherbo Linux\u003c/em\u003e)\n        unix_without_macos_fedora(\u003ccode\u003efedora\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eFedora\u003c/em\u003e)\n        unix_without_macos_freebsd(\u003ccode\u003efreebsd\u003c/code\u003e\u003cbr/\u003e😈 \u003cem\u003eFreeBSD\u003c/em\u003e)\n        unix_without_macos_gentoo(\u003ccode\u003egentoo\u003c/code\u003e\u003cbr/\u003e🗜️ \u003cem\u003eGentoo Linux\u003c/em\u003e)\n        unix_without_macos_guix(\u003ccode\u003eguix\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGuix System\u003c/em\u003e)\n        unix_without_macos_hurd(\u003ccode\u003ehurd\u003c/code\u003e\u003cbr/\u003e🐃 \u003cem\u003eGNU/Hurd\u003c/em\u003e)\n        unix_without_macos_ibm_powerkvm(\u003ccode\u003eibm_powerkvm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eIBM PowerKVM\u003c/em\u003e)\n        unix_without_macos_kvmibm(\u003ccode\u003ekvmibm\u003c/code\u003e\u003cbr/\u003e🤹 \u003cem\u003eKVM for IBM z Systems\u003c/em\u003e)\n        unix_without_macos_linuxmint(\u003ccode\u003elinuxmint\u003c/code\u003e\u003cbr/\u003e🌿 \u003cem\u003eLinux Mint\u003c/em\u003e)\n        unix_without_macos_mageia(\u003ccode\u003emageia\u003c/code\u003e\u003cbr/\u003e⍥ \u003cem\u003eMageia\u003c/em\u003e)\n        unix_without_macos_mandriva(\u003ccode\u003emandriva\u003c/code\u003e\u003cbr/\u003e💫 \u003cem\u003eMandriva Linux\u003c/em\u003e)\n        unix_without_macos_midnightbsd(\u003ccode\u003emidnightbsd\u003c/code\u003e\u003cbr/\u003e🌘 \u003cem\u003eMidnightBSD\u003c/em\u003e)\n        unix_without_macos_netbsd(\u003ccode\u003enetbsd\u003c/code\u003e\u003cbr/\u003e🚩 \u003cem\u003eNetBSD\u003c/em\u003e)\n        unix_without_macos_nobara(\u003ccode\u003enobara\u003c/code\u003e\u003cbr/\u003e \u003cem\u003eNobara\u003c/em\u003e)\n        unix_without_macos_openbsd(\u003ccode\u003eopenbsd\u003c/code\u003e\u003cbr/\u003e🐡 \u003cem\u003eOpenBSD\u003c/em\u003e)\n        unix_without_macos_opensuse(\u003ccode\u003eopensuse\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eopenSUSE\u003c/em\u003e)\n        unix_without_macos_oracle(\u003ccode\u003eoracle\u003c/code\u003e\u003cbr/\u003e🦴 \u003cem\u003eOracle Linux\u003c/em\u003e)\n        unix_without_macos_parallels(\u003ccode\u003eparallels\u003c/code\u003e\u003cbr/\u003e∥ \u003cem\u003eParallels\u003c/em\u003e)\n        unix_without_macos_pidora(\u003ccode\u003epidora\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003ePidora\u003c/em\u003e)\n        unix_without_macos_raspbian(\u003ccode\u003eraspbian\u003c/code\u003e\u003cbr/\u003e🍓 \u003cem\u003eRaspbian\u003c/em\u003e)\n        unix_without_macos_rhel(\u003ccode\u003erhel\u003c/code\u003e\u003cbr/\u003e🎩 \u003cem\u003eRedHat Enterprise Linux\u003c/em\u003e)\n        unix_without_macos_rocky(\u003ccode\u003erocky\u003c/code\u003e\u003cbr/\u003e⛰️ \u003cem\u003eRocky Linux\u003c/em\u003e)\n        unix_without_macos_scientific(\u003ccode\u003escientific\u003c/code\u003e\u003cbr/\u003e⚛️ \u003cem\u003eScientific Linux\u003c/em\u003e)\n        unix_without_macos_slackware(\u003ccode\u003eslackware\u003c/code\u003e\u003cbr/\u003e🚬 \u003cem\u003eSlackware\u003c/em\u003e)\n        unix_without_macos_sles(\u003ccode\u003esles\u003c/code\u003e\u003cbr/\u003e🦎 \u003cem\u003eSUSE Linux Enterprise Server\u003c/em\u003e)\n        unix_without_macos_solaris(\u003ccode\u003esolaris\u003c/code\u003e\u003cbr/\u003e🌞 \u003cem\u003eSolaris\u003c/em\u003e)\n        unix_without_macos_sunos(\u003ccode\u003esunos\u003c/code\u003e\u003cbr/\u003e☀️ \u003cem\u003eSunOS\u003c/em\u003e)\n        unix_without_macos_tumbleweed(\u003ccode\u003etumbleweed\u003c/code\u003e\u003cbr/\u003e↻ \u003cem\u003eopenSUSE Tumbleweed\u003c/em\u003e)\n        unix_without_macos_tuxedo(\u003ccode\u003etuxedo\u003c/code\u003e\u003cbr/\u003e🤵 \u003cem\u003eTuxedo OS\u003c/em\u003e)\n        unix_without_macos_ubuntu(\u003ccode\u003eubuntu\u003c/code\u003e\u003cbr/\u003e🎯 \u003cem\u003eUbuntu\u003c/em\u003e)\n        unix_without_macos_unknown_linux(\u003ccode\u003eunknown_linux\u003c/code\u003e\u003cbr/\u003e🐧 \u003cem\u003eUnknown Linux\u003c/em\u003e)\n        unix_without_macos_wsl1(\u003ccode\u003ewsl1\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v1\u003c/em\u003e)\n        unix_without_macos_wsl2(\u003ccode\u003ewsl2\u003c/code\u003e\u003cbr/\u003e⊞ \u003cem\u003eWindows Subsystem for Linux v2\u003c/em\u003e)\n        unix_without_macos_xenserver(\u003ccode\u003exenserver\u003c/code\u003e\u003cbr/\u003eⓍ \u003cem\u003eXenServer\u003c/em\u003e)\n    end\n```\n\n\u003c!-- EXTRA_GROUPS-graph-end --\u003e\n\n\u003e [!IMPORTANT]\n\u003e All the graphs above would be better off if merged. Unfortunately Graphviz is not capable of producing [Euler diagrams](https://xkcd.com/2721/). Only non-overlapping clusters can be rendered.\n\u003e\n\u003e There's still a chance to [have them supported by Mermaid](https://github.com/mermaid-js/mermaid/issues/2583) so we can switch to that if the feature materialize.\n\n## Used in\n\nCheck these projects to get real-life examples of `extra-platforms` usage:\n\n- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90\u0026style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.\n- ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90\u0026style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Drop-in replacement for Click to make user-friendly and colorful CLI.\n\nFeel free to send a PR to add your project in this list if you are relying on Click Extra in any way.\n\n## Development\n\n[Development guidelines](https://github.com/kdeldycke/click-extra?tab=readme-ov-file#development) are the same as [parent project Click Extra](https://github.com/kdeldycke/click-extra), from which `extra-platforms` originated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdeldycke%2Fextra-platforms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdeldycke%2Fextra-platforms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdeldycke%2Fextra-platforms/lists"}