fuse3
fuse3 copied to clipboard
an async version fuse library for rust
Rust 1.77.0 introduces cstr literals. We should use that feature and remove the cstr crate. https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html#c-string-literals We need to make sure that this won't violate any MSRV guarantees, however.
PR #81 introduced new behavior to `MountHandle`. When it is dropped, it will now attempt to unmount the file system. But this new behavior introduced new problems: * Previously there...
I ran `fuse3` in multi-threaded tokio-runtime and mount privileged, when I umount externally, tokio(v1.37) will panic from time to time. ``` thread 'tokio-runtime-worker' panicked at /home/ho229/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/task/core.rs:375:22: JoinHandle polled after completion...
sister PR: https://github.com/nix-rust/nix/pull/2347
io_uring can provide up to a 60% performance increase. * https://github.com/cberner/fuser/issues/164 * https://john-millikin.com/the-fuse-protocol#multi-threading (not related but may increase performance?) * https://github.com/DataDog/glommio#readme * https://github.com/tokio-rs/tokio-uring#readme
1. ~Is there any way to unmount cleanly? Currently I have to `fusermount -u` every time I exit. I tried dropping `MountHandle` on custom CTRL-C handler but it doesn't seem...
During a write, fuse3 first copies data from the kernel into userland in `Session::dispatch`. Then it passes a slice of that buffer to `handle_write`, which ends up copying the data...
I found that after a symlink is created, for example with command `ln -s name link`, the command `ls -la` will show the symlink as `path -> ''` rather than...
The seek offset may be negative if `whence` is `SEEK_END` or `SEEK_CUR`
fuse3 currently defines a custom Error type, a wrapper around errno, which implements `From`. That is pretty convenient to use for a crate whose native errors are also `i32`, or...