rust-fatfs/README.md
Rafał Harabień 217b6046f1 Make disk object type generic (breaking change)
This change allows for moving an object ownership to FileSystem object
instead of borrowing it. It makes usage of library easier in some cases.
Unfortunately it is a breaking change.
2018-06-13 23:24:08 +02:00

1.9 KiB

Rust FAT FS

Travis Build Status MIT licensed crates.io Documentation Minimum rustc version

FAT filesystem library implemented in Rust.

Features:

  • read/write/create/remove file,
  • enumerate directory children,
  • create/remove directory,
  • read/write file timestamps (updated automatically if chrono feature is enabled),
  • FAT12, FAT16, FAT32 compatibility,
  • LFN (Long File Names) extension supported,
  • Basic no_std environment support.

Usage

Put this in your Cargo.toml:

[dependencies]
fatfs = "0.2"

Put this in your crate root:

extern crate fatfs;

You can start using library now:

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

See more examples in examples subdirectory.

no_std usage

Put this in your Cargo.toml:

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

Note: LFN support requires alloc and core_io/collections features and makes use of alloc crate. You may have to provide a memory allocator implementation.

For building in no_std mode nightly Rust version compatible with current core_io crate is required. See date string in core_io dependency version.

License

The MIT license. See LICENSE.txt.