# libfs: Advanced file and fs operations
`libfs` is a library of file and filesystem operations that is supplementary to
[std::fs](https://doc.rust-lang.org/std/fs/). Current features:
* High and mid-level functions for creating and copying sparse files.
* Copying will use Linux
[copy_file_range](https://man7.org/linux/man-pages/man2/copy_file_range.2.html)
where possible, with fall-back to userspace.
* Scanning and merging extent information on filesystems that support it.
* File permission copying, including
[xattrs](https://man7.org/linux/man-pages/man7/xattr.7.html).
Some of the features are Linux specific, but most have fall-back alternative
implementations for other Unix-like OSs. Further support is todo.
`libfs` is part of the [xcp](https://crates.io/crates/xcp) project.
[](https://crates.io/crates/libfs)
[](https://docs.rs/libfs)

[](https://circleci.com/gh/tarka/xcp)