rust-fatfs fork with rs-core_io as dependency instead. No support for chrono.
Go to file
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
examples Take immutable self reference in Dir methods 2018-06-12 00:07:30 +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 Make disk object type generic (breaking change) 2018-06-13 23:24:08 +02:00
tests Make disk object type generic (breaking change) 2018-06-13 23:24:08 +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 Update Travis config and set 1.24 as minimal supported rustc version 2018-06-04 22:35:15 +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 Make disk object type generic (breaking change) 2018-06-13 23:24:08 +02:00
TODO.md Add method for renaming/moving a file 2018-06-06 13:56:59 +02:00

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.