https://github.com/ubnt-intrepid/polyfuse
A FUSE (Filesystem in Userspace) library for Rust
https://github.com/ubnt-intrepid/polyfuse
filesystem fuse rust
Last synced: 3 months ago
JSON representation
A FUSE (Filesystem in Userspace) library for Rust
- Host: GitHub
- URL: https://github.com/ubnt-intrepid/polyfuse
- Owner: ubnt-intrepid
- License: apache-2.0
- Created: 2019-09-24T07:32:48.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-04T01:28:45.000Z (almost 3 years ago)
- Last Synced: 2024-03-14T20:53:10.424Z (over 2 years ago)
- Topics: filesystem, fuse, rust
- Language: Rust
- Homepage: https://crates.io/crates/polyfuse
- Size: 1.96 MB
- Stars: 107
- Watchers: 4
- Forks: 13
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
polyfuse
A FUSE (Filesystem in Userspace) library for Rust.
`polyfuse` is a library for implementing filesystems based on [Filesystem in Userspace (FUSE)](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) in Rust.
The goal of this project is to provide a Rust FUSE library that has a high affinity with the `async`/`.await` syntax stabilized in Rust 1.39.
## Platform Requirements
Currently, `polyfuse` only supports the Linux platforms with the FUSE ABI version is 7.23 or higher.
The required kernel version is Linux 3.15 or later.
> Adding support for other Unix platform running FUSE (FreeBSD, macOS, and so on) is a future work.
In order to establish the connection with the FUSE kernel driver, the command
`fusermount` must be installed on the platform where the filesystem runs.
This binary is typically including in the fuse package provided by the distribution's package system.
On Debian/Ubuntu or other APT based distributions:
```shell-session
$ sudo apt-get install fuse
```
On Fedora/RHEL or other RPM based distributions:
```shell-session
$ sudo dnf install fuse
```
On Arch Linux or other Pacman based distributions:
```shell-session
$ sudo pacman -S fuse2
```
## Resources
* [Examples](https://github.com/ubnt-intrepid/polyfuse/tree/master/examples)
* [API documentation (docs.rs)](https://docs.rs/polyfuse)
* [API documentation (master)](https://ubnt-intrepid.github.io/polyfuse/)
## License
This library is licensed under either of
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
at your option.