# 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. [![Crates.io](https://img.shields.io/crates/v/xcp.svg?colorA=777777)](https://crates.io/crates/libfs) [![doc.rs](https://docs.rs/libfs/badge.svg)](https://docs.rs/libfs) ![Github Actions](https://github.com/tarka/xcp/actions/workflows/tests.yml/badge.svg) [![CircleCI](https://circleci.com/gh/tarka/xcp.svg?style=shield)](https://circleci.com/gh/tarka/xcp)