A simple filtered passthrough FUSE filesystem in Rust.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
FilterFS is a FUSE-based passthrough filesystem that filters directory listings and file access based on a set of allowed file extensions and directories. It's written in Rust and uses the fuser library for FUSE integration.
To get a local copy up and running follow these simple example steps.
- Rust
curl https://sh.rustup.rs | sh - libfuse-dev
sudo apt-get install libfuse-dev
- Clone the repo
git clone https://github.com/nullstring1/filterfs.git
- Build the project
cargo build --release
Use the filesystem by running the compiled binary with a source directory, a mount point, and a list of allowed extensions.
./target/release/filterfs <SOURCE_DIRECTORY> <MOUNT_POINT> <EXTENSIONS> [--allowed-dirs <DIRECTORY_LIST>]For example, to mount the current directory at ~/filtered_view and only allow .txt and .md files, you would run:
./target/release/filterfs . ~/filtered_view txt mdor
To mount current directory at ~/filtered_view and only allow .txt and .md files, and any files under ./excluded_config_files, you would run:
./target/release/filterfs . ~/filtered_view txt md --allowed-dirs ./excluded_config_filesContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
NullString1 - ns@nullstring.one
Project Link: https://github.com/nullstring1/filterfs