{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:04:31.606925+00:00", "stars": 1368}, "canonical_url": "https://ross.abutalabs.com/products/swiftygpio", "card": {"archived": false, "artifact_type": "library", "description": "A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.", "domain": ["iot", "embedded-systems", "hardware"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["uraimo/SwiftyGPIO"], "name": "uraimo/SwiftyGPIO", "platform": ["embedded", "iot"], "pushed_at": "2024-05-02T07:50:51+00:00", "repo": "uraimo/SwiftyGPIO", "stars": 1368, "tags": ["gpio", "spi", "i2c", "pwm", "uart", "1-wire", "raspberry-pi", "single-board-computers", "sensors", "led-strips", "neopixel", "hardware-interfaces", "linux", "swift"], "topics": ["spi-interface", "gpio", "iot", "swift", "pwm", "lcd-display", "uart", "serialport", "i2c", "1-wire", "led-strips", "neopixel", "spi", "led", "raspberry-pi"], "urls": [], "use_cases": ["blink an LED from Swift on a Raspberry Pi", "read sensor data over I2C with Swift", "drive servos or LEDs using PWM on ARM boards", "communicate with devices over UART serial", "control NeoPixel or RGB LED strips via SPI", "read 1-Wire temperature sensors on Linux SBCs"], "what_it_is": "SwiftyGPIO is a Swift library for hardware projects on Linux/ARM single-board computers like the Raspberry Pi, BeagleBone, and Orange Pi. It provides interfaces for GPIOs, SPI, I2C, PWM, UART serial, and 1-Wire buses to control sensors, displays, LEDs, and other external devices.", "when_to_avoid": ["you target microcontrollers like Arduino or ESP32 rather than Linux SBCs", "your project runs on macOS or Windows, since the library is Linux-only", "you need a mature ecosystem with extensive community support"], "when_to_choose": ["you want to write embedded hardware code in Swift on Linux ARM boards", "you need GPIO/SPI/I2C/PWM/UART access on a Raspberry Pi or similar SBC", "you prefer Swift over Python for DIY hardware projects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swiftygpio", "repo": "uraimo/SwiftyGPIO", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "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:04:31.606925+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.606925+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:04.994189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6abdbbbfb469422cee5ddde5b18b9ad8d6cd39e022a433870195fc7fad5316d", "fetched_at": "2026-08-28T04:04:31.606925+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uraimo/SwiftyGPIO"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3888, "days_push": 853, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}