rust-fatfs fork with rs-core_io as dependency instead. No support for chrono.
Go to file
Rafał Harabień 892c3974d3 Move BufStream to fscommon crate (BREAKING CHANGE)
BufStream is universal and can be used with any filesystem so its place is
in different crate. Also moved Partition struct from examples to
fscommon::StreamSlice struct (please note constructor arguments has changed).
2018-06-16 17:57:29 +02:00
examples Move BufStream to fscommon crate (BREAKING CHANGE) 2018-06-16 17:57:29 +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 Move BufStream to fscommon crate (BREAKING CHANGE) 2018-06-16 17:57:29 +02:00
tests Move BufStream to fscommon crate (BREAKING CHANGE) 2018-06-16 17:57:29 +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 Move BufStream to fscommon crate (BREAKING CHANGE) 2018-06-16 17:57:29 +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.