cberner / fuser

Filesystem in Userspace (FUSE) for Rust
MIT License
836 stars 114 forks source link

New API using async #164

Open cberner opened 3 years ago

cberner commented 3 years ago

It would be nice to have an easier to use Filesystem API that also uses Rust's async feature

paradigm commented 3 years ago

Tokio-uring 0.1.0 was just announced and, where available, is likely to show significant performance improvements for specifically filesystem I/O that would be common with FUSE. It may be worth consideration for this issue. The main catch is it requires a newer Linux kernel; otherwise, a different library with a different interface (e.g. normal Tokio) is needed.

leakingtapan commented 2 years ago

I'm working with an API that is generated from protobuf using tonic. The generated APIs are async functions. I would be great if I can call into the APIs from fuser's Filesystem API without translating the async calls to sync calls. Is there any plan on solving this issue any time soon?

@paradigm any pointers on how to integrate with the new Tokio-uring? is that something coming out of the box that can be enable from tokio at high level with some configurations, or is that some low level API needs to be written before hand, something like reading /dev/fuse using io_uring?

paradigm commented 2 years ago

@paradigm any pointers on how to integrate with the new Tokio-uring?

I haven't actually programmed anything in it, just read about it at a high level; I don't have enough experience with it to provide much guidance.

messense commented 2 years ago

There is https://github.com/3442/blown-fuse , but it's linux only.

Mivik commented 1 year ago

Check out https://github.com/Sherlock-Holo/fuse3 . Seems linux only too.

iwanbk commented 2 weeks ago

Check out https://github.com/Sherlock-Holo/fuse3 . Seems linux only too.

@Mivik fuse3 v0.8.1 (two days after your comment) added macos support, i haven't tried it yet tho