| Crates.io | simple-fatfs |
| lib.rs | simple-fatfs |
| version | 0.1.0-alpha.2 |
| created_at | 2024-08-04 12:18:36.020678+00 |
| updated_at | 2025-09-14 13:15:44.497975+00 |
| description | A simple-to-use FAT filesystem library for Rust (mainly targeted at embedded systems) |
| homepage | |
| repository | https://github.com/Oakchris1955/simple-fatfs |
| max_upload_size | |
| id | 1324932 |
| size | 256,985 |
A simple-to-use filesystem driver for the File Allocation Table (FAT)
Apart from rafalh's rust-fatfs library, there aren't actually any other FAT filesystem drivers in crates.io. All the other libraries either support only FAT16/32, aren't being actively developed or are just bindings to some C library.
Another thing I found somewhat frustrating about rafalh's rust-fatfs (which ultimately led to my decision of creating this project) is the fact that his library isn't suitable for embedded Rust, since it requires implementing some weird kind of buffered Read/Write, while it is also worth mentioning that the crates.io version of his library is somewhat outdated (there have been 144 additional commits as of the time I'm writing this).
A fully-working FAT driver that covers the following criteria:
#[no_std] supportembedded-io for IO operations, making it suitable for embedded devicesIt also aims to be able to do the following in the future:
std)io implementation with the embedded-io cratefrom_utf16be for decoding LFNs (str_from_utf16_endian #116258)While the library can support both little and big-endian systems,
due to the str_from_utf16_endian feature being unstable, long filenames
won't be properly decoded.
Duplicate file opens or in general any write operation involving a file that is open either as R/W or RO could cause data corruption (see #14)
Multi-byte codepages, such as the Japanese one (932) are currently unsupported.
This project adheres to Keep a Changelog and Conventional Commits (since commit 21c7d6b, that is excluding the first two commits which don't actually contain any code). It also uses git-cliff to parse commit messages into a CHANGELOG