1 个不稳定版本
0.1.0-alpha.1 | 2024 年 8 月 4 日 |
---|
#602 在 文件系统
106 每月下载量
82KB
2K SLoC
simple-fatfs
一个简单易用的文件分配表 (FAT) 文件系统驱动程序
动机
除了 rafalh 的 rust-fatfs 库之外,实际上在 crates.io 中没有其他 FAT 文件系统驱动程序。所有其他库要么只支持 FAT16/32,要么不再积极开发,或者是某些 C 库的绑定。
我发现 rafalh 的 rust-fatfs (这最终导致我创建了这个项目)的另一件有些令人沮丧的事情是,他的库不适合嵌入式 Rust,因为它需要实现 一些奇怪的缓冲 Read/Write,而且值得一提的是,crates.io 版本的他的库有些过时(在我写这个的时候,已有 144 额外的提交)。
意图
一个完全工作的 FAT 驱动程序,满足以下标准
- 为开发者提供易于使用的公共 API
- 避免不必要的/过大的依赖(我指的是 leftpad-like 依赖)
- 支持
#[no_std]
- 自动实现现有
std
API(如Read
、Write
和Seek
特性) - 支持 FAT12/16/32/ExFAT
- 支持 VFAT/LFN(长文件名)
待办事项
- FAT12 支持(仅处理 2 个扇区之间的条目)
- 在路径中区分目录和文件(这也必须由文件系统验证,就像在
std
中一样) - 检查系统端序是否重要(FAT 是小端序)
- 处理文件和目录名称中的不可打印字符
- 支持 ExFAT
- 当feature(error_in_core)发布到稳定版时,提升MSRV并使用
core::error::Error
特质而不是我们自定义的error::Error
致谢
本项目遵循Keep a Changelog和Conventional Commits(自提交21c7d6b
起,即不包括前两个实际上不包含任何代码的提交)。它还使用git-cliff将提交信息解析为CHANGELOG
许可证
依赖项
~1.1–1.8MB
~39K SLoC