LittleFS
More info
- Creator
- Christopher Haster
- Owner
- Arm (Mbed)
- Released
- 2017
- License
- BSD-3-Clause
- Source
- github.com/littlefs-project
A tiny flash filesystem for microcontrollers, designed around the assumption that power will fail mid-write.
Written at Arm in 2017 for Mbed OS, because FAT on raw flash is a poor match: an interrupted write can corrupt the allocation table, and the same sectors wear out first. LittleFS keeps metadata in pairs of blocks written alternately and stores data copy-on-write, so the old state survives until the new one is fully committed. A brown-out halfway through a file leaves you with the old file, not half of a new one.
RAM use is bounded and known up front, which matters on a part with 64 KB of it. Dynamic wear leveling comes built in. Zephyr and ESP-IDF support it, and the ESP8266 Arduino core replaced SPIFFS with it.