{"adoption": {"forks": 421, "observed_at": "2026-08-28T04:05:12.459919+00:00", "stars": 1621}, "canonical_url": "https://ross.abutalabs.com/products/spiffs", "card": {"archived": false, "artifact_type": "library", "description": "Wear-leveled SPI flash file system for embedded devices", "domain": ["embedded-systems", "files", "developer-tools"], "enriched": true, "function": ["file-system", "embedded"], "health_score": 76, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["pellepl/spiffs"], "name": "pellepl/spiffs", "platform": ["embedded", "c", "cross-platform"], "pushed_at": "2026-07-16T08:48:14+00:00", "repo": "pellepl/spiffs", "stars": 1621, "tags": ["spi-flash", "wear-leveling", "nor-flash", "microcontroller", "posix-like-api"], "topics": ["spiffs", "spi-flash", "wear-leveling", "embedded", "file-system", "file", "system", "spi", "flash"], "urls": [], "use_cases": ["store files on SPI NOR flash in an embedded project", "add a file system to a microcontroller with little RAM", "wear-level flash writes on an ESP8266 or similar chip", "read and write config files on embedded flash", "mount a flat file system on NOR flash without directories"], "what_it_is": "SPIFFS is a wear-leveled file system for SPI NOR flash devices on embedded targets, written in C. It is designed for small microcontroller targets with sparse RAM, using statically sized buffers and a POSIX-like file API.", "when_to_avoid": ["you need directories or hierarchical paths", "you need real-time write latency guarantees", "your flash is larger than ~128MB or has bad blocks needing management", "you need a filesystem maintained with active new development"], "when_to_choose": ["you need a small-footprint file system for SPI NOR flash on an MCU", "RAM is scarce and you need statically sized buffers", "you need wear leveling and consistency checks on flash", "your storage is under ~128MB and a flat file namespace is acceptable"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spiffs", "repo": "pellepl/spiffs", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "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:12.459919+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.459919+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:49:15.574409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2acb6eaeae2b19e69ce3e6e30b519007861400d8066a256917cf21f0715890f", "fetched_at": "2026-08-28T04:05:12.459919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pellepl/spiffs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 8}, "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": 4786, "days_push": 48, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}