MIT License

项目介绍

rafalh/rust-fatfs 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,采用 MIT License 许可证,目前获得 364 个 Star、80 次 Fork。

仓库全名
rafalh/rust-fatfs
开源许可证
MIT License
Star 数
364
Fork 数
80
未关闭 Issue
19

README 摘要

Rust FAT FS =========== A FAT filesystem library implemented in Rust. Features: read/write file using standard Read/Write traits read directory contents create/remove file or directory rename/move file or directory read/write file timestamps (updated automatically if chrono feature is enabled) format volume FAT12, FAT16, FAT32 compatibility LFN (Long File Names) extension is supported Basic nostd environment support…

完整内容见 GitHub 原始 README 或本页 。

常见问题

rust-fatfs 用什么语言开发?

主要使用 Rust 编写,采用 MIT License 许可证,目前有 364 个 Star。

rust-fatfs 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 rust-fatfs 的源码?

可以直接克隆仓库:git clone https://github.com/rafalh/rust-fatfs.git,默认分支为 master;安装与运行步骤见仓库 README。

rust-fatfs 最近还在维护吗?

仓库最近一次更新为 3 周前,当前有 19 个未关闭 Issue;Star 数为 364,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

A FAT filesystem library implemented in Rust.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
531
价值分
242
活跃状态
活跃

语言占比

Rust
Shell

README

Rust FAT FS

CI Status MIT licensed crates.io Documentation Minimum rustc version

A FAT filesystem library implemented in Rust.

Features:

  • read/write file using standard Read/Write traits
  • read directory contents
  • create/remove file or directory
  • rename/move file or directory
  • read/write file timestamps (updated automatically if chrono feature is enabled)
  • format volume
  • FAT12, FAT16, FAT32 compatibility
  • LFN (Long File Names) extension is supported
  • Basic no_std environment support
  • logging configurable at compile time using cargo features

Usage

Add this to your Cargo.toml:

[dependencies]
fatfs = "0.3"

You can start using the fatfs library now:

let img_file = File::open("fat.img")?;
let fs = fatfs::FileSystem::new(img_file, fatfs::FsOptions::new())?;
let root_dir = fs.root_dir();
let mut file = root_dir.create_file("hello.txt")?;
file.write_all(b"Hello World!")?;

Note: it is recommended to wrap the underlying file struct in a buffering/caching object like BufStream from fscommon crate. For example:

let buf_stream = BufStream::new(img_file);
let fs = fatfs::FileSystem::new(buf_stream, fatfs::FsOptions::new())?;

See more examples in the examples subdirectory.

no_std usage

Add this to your Cargo.toml:

[dependencies]
fatfs = { version = "0.3.6", default-features = false }

Additional features:

  • lfn - LFN (long file name) support
  • alloc - use alloc crate for dynamic allocation. Needed for API which uses String type. You may have to provide a memory allocator implementation.
  • unicode - use Unicode-compatible case conversion in file names - you may want to have it disabled for lower memory footprint
  • log_level_* - enable specific logging levels at compile time. The options are as follows:
    • log_level_error - enable only error-level logging.
    • log_level_warn - enable warn-level logging and higher.
    • log_level_info - enable info-level logging and higher.
    • log_level_debug - enable debug-level logging and higher.
    • log_level_trace - (default) enable all logging levels, trace and higher.

Note: above features are enabled by default and were designed primarily for no_std usage.

License

The MIT license. See LICENSE.txt.

评论

暂无评论