rust-fatfs fork with rs-core_io as dependency instead. No support for chrono.
Go to file
Rafał Harabień 3d29f66aba Avoid using unwrap() in examples
New examples require Rust 1.26 because of returning error from main() function.
2018-05-31 21:40:40 +02:00
examples Avoid using unwrap() in examples 2018-05-31 21:40:40 +02:00
resources Add LFN support and rename some functions. 2017-09-24 22:12:38 +02:00
scripts Make create-test-img.sh more portable. 2017-10-21 17:38:20 +02:00
src Update FSInfo sector by default (if it is dirty) 2018-05-31 21:39:17 +02:00
tests Allow opening files/dirs using short name 2018-05-31 00:23:32 +02:00
.editorconfig Add .editorconfig file and fix whitespaces in existing files. (#4) 2017-10-25 17:20:27 +02:00
.gitignore Add Cargo.lock to .gitignore 2018-05-10 16:34:21 +02:00
.travis.yml Add Travis CI integration. 2017-09-27 14:21:01 +02:00
build-nostd.sh Fix std build 2018-05-10 15:14:09 +02:00
Cargo.toml Fix std build 2018-05-10 15:14:09 +02:00
LICENSE.txt Rename repository to rust-fatfs. 2017-11-08 23:00:30 +01:00
README.md Avoid using unwrap() in examples 2018-05-31 21:40:40 +02:00
TODO.md Update FSInfo sector on unmount/drop 2018-05-27 23:48:38 +02:00

Rust FAT FS

Travis Build Status MIT licensed crates.io Documentation

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 mut buf_stream = fatfs::BufStream::new(img_file);
let fs = fatfs::FileSystem::new(&mut buf_stream, fatfs::FsOptions::new())?;
let mut 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.