{"id":16219622,"url":"https://github.com/earlephilhower/spiftl","last_synced_at":"2025-07-25T03:12:47.789Z","repository":{"id":224807476,"uuid":"764264095","full_name":"earlephilhower/SPIFTL","owner":"earlephilhower","description":"Embedded, Static Wear-Leveling FTL Library for Microcontrollers","archived":false,"fork":false,"pushed_at":"2024-09-20T20:17:06.000Z","size":65,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-17T06:35:32.265Z","etag":null,"topics":["flash","ftl","spi","wear-leveling"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/earlephilhower.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-27T19:15:05.000Z","updated_at":"2025-01-27T02:59:59.000Z","dependencies_parsed_at":"2024-10-27T20:31:45.400Z","dependency_job_id":"975b5233-ed5f-421d-8115-982e63006266","html_url":"https://github.com/earlephilhower/SPIFTL","commit_stats":null,"previous_names":["earlephilhower/spiftl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earlephilhower%2FSPIFTL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earlephilhower%2FSPIFTL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earlephilhower%2FSPIFTL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earlephilhower%2FSPIFTL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earlephilhower","download_url":"https://codeload.github.com/earlephilhower/SPIFTL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244416831,"owners_count":20449348,"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":["flash","ftl","spi","wear-leveling"],"created_at":"2024-10-10T11:55:14.426Z","updated_at":"2025-03-19T11:30:37.751Z","avatar_url":"https://github.com/earlephilhower.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SPIFTL - Embedded, Static Wear-Leveling FTL Library\n(c) 2024 Earle F. Philhower, III \u003cearlephilhower@yahoo.com\u003e\n\nThis library implements a static wear-leveling FTL algorithm suitable for\nuse on embedded systems with SPI flash.  Using static wear leveling should\nhelp extend the useful life of flash memory, especially when combined with\nthe FAT filesystem which has certain high-write usage areas such as the FAT\ntables and directory entries.\n\nThere were three design goals:\n* Preserve data\n* Keep the flash array within a limited PE (program/erase) cycle range\n* Miimize the memory at the cost of write speed\n\nWhile the process used here is similar in concept to what a modern SSD does,\nthis is definitely not a general purpose SSD FTL layer.  It is missing things\nlike bad block handling, parallelism, short-circuit paths, data retention\nscans and rewrite, and much more.  It is also limited to 16MB of flash and\nerase pages of 4KB for memory and expediency considerations.\n\nAn implementation for the Arduino-Pico RP2040 core as well as a NBD\n(Network Block Device) plugin is included.  Porting to other architectures\nshould only require developing a small FlashInterface subclass.\n\nThis software is provided on an AS-IS basis and no comes with no warranties.\nSee LICENSE.md for the full GNU LESSER GENERAL PUBLIC LICENSE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearlephilhower%2Fspiftl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fearlephilhower%2Fspiftl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearlephilhower%2Fspiftl/lists"}