Become a sponsor to littlefs-project
LittleFS is an open-source, community driven project, designed and maintained by Christopher Haster (@geky).
LittleFS is by no means a finished project. There are a number of open challenges, mostly around performance and scalability, which require time to explore, solve, implement, and test.
This is my current roadmap, though it is highly susceptible to change:
- Explore a better metadata data-structure (self-balancing Dhara trees)
- Reduce metadata compaction O(n^2) -> O(n log(n))
- Enable different integer sizes
- Explore a better file data-structure (traditional B-trees)
- Allow efficient random file writes
- Allow logging-friendly APIs
- Allow better block utilization for very large blocks
- Allow data checksumming
- Explore more robust alternatives to the dir-tree's threaded linked-list
- The threaded linked-list has been a large source of bugs and should go
- A global checksum system
- Prevent "rollback" failure mode on checksum failures
- Allow external storage of a global checksum for additional protection
- Metadata redundancy
- Prevent metastability issues on powerloss
- Allow optional metadata error-correction at the block level
- Garbage-collection APIs
- Allow users to control when expensive garbage collection occurs
- Optional block free-list
- Allow more efficient block allocation
- Allow tracking of bad blocks to avoid reuse
- Data redundancy
- Allow optional data error-correction at the block level
- Different integer sizes
- 16-bit mode => potential RAM/code savings for 16-bit devices/small storage
- 64-bit mode => >2 GiB files, etc
Donations allow me to dedicate more of my time to LittleFS, which is split between ongoing maintenance and this long-term roadmap. These are strictly donations, no work is guaranteed, but help in making the development of LittleFS sustainable is always appreciated.
If you would like to help a different way or have other requests, feel free to reach me at geky at geky.net.
Meet the team
Featured work
-
littlefs-project/littlefs
A little fail-safe filesystem designed for microcontrollers
C 5,264