It's a libfuse binding in Rust. And it focuses on only libfuse highlevel API.
https://docs.rs/yarf/0.0.2/yarf/
Require yarf crate in your Cargo.toml
[dependencies]
yarf = "0.0.2"
then you can write your filesystem as Rust struct on yarf, like below:
extern crate yarf;
...
use yarf::{FileSystem, FuseFileInfo, FuseFillDir};
...
struct MyFS;
impl FileSystem for MyFS {
fn getattr(&self, path: String, stbuf: Option<&mut stat>) -> c_int {
...
}
...
}
fn main() {
let fs = Box::new(MyFS);
yarf::yarf_main(fs);
}