polyfs banner

polyfs

5 devlogs
13h 19m 53s

Async embedded Rust crate for working with FAT filesystems on SD cards. It even works on regular computers with a RAM disk implementation.

This project uses AI

Perplexity AI (Claude and Gemini models) has been used for crunching and summarizing large amounts of technical documentation and for debugging code snippets.

Demo Repository

Loading README...

Olivér Pirger
  • refactored the opening API
  • a new unified open function is now available: open folder or file using just its path
  • added crate-level documentation and README, published to crates.io
  • cleaned up code to get rid of warnings when compiling
  • changed crate name because I can
Attachment
1

Comments

Olivér Pirger
Olivér Pirger 8 days ago

You can try the project by adding an MBR formatted disk.img file in the “tests” directory. Create a FAT32 partition on it and add some files. You can tweak read.rs and mount.rs test files to do cool stuff with it!!

Olivér Pirger

After hours of work, I finally got a real SD card working over SPI. On the screenshot you can see it reading the first sector (the Master Boot Record) of a real microSDHC card.

Attachment
0
Olivér Pirger

I’m so back!

Today I added file reading, API compatible with embedded-io-async. sd-fat now reads whole files with .read_exact(). Also did a bit of cleanup around the project and updated dependencies.

Attachment
0
Olivér Pirger

What I did today:

  • directory traversal is complete: open directories by path
  • find entries in a directory by name
  • cleaned up the internal and public APIs for cleaner code overall
Attachment
0
Olivér Pirger

Started the project. Here are a few things that are already working:

  • Implemented a RAM based disk “emulator” for testing: loads .img files
  • Parse MBR, find partition
  • Parse BPB, find root directory
  • List entries in any directory by cluster number
  • An extensible API for future expansion: more file systems, partition tables, and block device implementations
  • All this without using the standard library and a heap allocator
Attachment
0