-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split crate to two #15
Comments
Can you list the advantages that splitting the crate would bring? As stated in the README, the primary goal is simplicity. |
It makes library clear: you can extend and update fat fs crate without hw depends and you can improve hw support without changes in fat fs. So crate is staied commonly easy for use - you can create default feature flag for use another hw support, or you can support hw extension as in serilalization in serde. |
OK, so if embedded-sdmmc was left as a simple, high-level crate, I'm fine with the FAT implementation being booted off into fat-rs or something, where it can be consumed by other applications / crates without all the SD stuff coming along too. |
Likewise the SD over SPI protocol implementation, and any future SD over SD Bus implementation - they can be in other crates, as long as this crate brings it all together is a nice easy to use format. |
I'd like to continue this discussion but instead of splitting it up, let's create a feature for enabling the fs for fat32 & fat16. This will allow people to still depend on the crate for raw access, like for using it with e.g. |
But if you don't use the FAT32 code, it all gets dead-code eliminated, doesn't it? |
I'm also interested in using the FAT32 part of this crate without the SD card part. In particular I'm looking at using it on top of a VirtIO block device using https://docs.rs/virtio-drivers/latest/virtio_drivers/device/blk/struct.VirtIOBlk.html. VirtIO also uses 512 byte sectors so that seems reasonable. How would you feel about moving the |
I wouldn't want to drop the You could also implement those traits on our File objects. Which I think would let you mount a disk, and then mount a disk image on that disk. Edit: I misread. You want to add a BlockDevice trait TO embedded-io. I'm fine with that. |
As an aside I wrote a VirtIO vring implementation in Rust from scratch in 2018 to do inter core RPC on a Beagleboard X15. Glad there's crate for it now! It was a doozy. |
I'd like to add a |
Sounds fine to me. |
I sent rust-embedded-community/embedded-storage#59 to add the trait to the |
This crate are great but it consist two functionalities: fat file system interface and implementation and sd/mcc card high level driver. I think we need to split this crate to two - one for fat fs and one for sd card abstraction. Thanks.
The text was updated successfully, but these errors were encountered: