From mboxrd@z Thu Jan 1 00:00:00 1970 References: <20210104184527.GC63879@redhat.com> <20210104185655.GN2972@work-vm> <20210106165759.GA9679@redhat.com> <20210108041252.GT80581@e18g06458.et15sqa> <20210108152646.GC46319@redhat.com> From: Peng Tao Message-ID: Date: Fri, 15 Jan 2021 18:20:15 +0800 MIME-Version: 1.0 In-Reply-To: <20210108152646.GC46319@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Virtio-fs] [fuse-devel] 'FORGET' ordering semantics (vs unlink & NFS) List-Id: Development discussions about virtio-fs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vivek Goyal , Eryu Guan Cc: Miklos Szeredi , fuse-devel , Amir Goldstein , Max Reitz , virtio-fs-list , gerry@linux.alibaba.com, bergwolf@hyper.sh On 2021/1/8 23:26, Vivek Goyal wrote: > On Fri, Jan 08, 2021 at 12:12:52PM +0800, Eryu Guan wrote: > > [..] >>> Anyone has other thoughts about how to reduce fragmentation in >>> implementations? >> >> There's an fuse-backend-rs[1] project hosted on cloud-hypervisor, it is >> a library to communicate with the Linux FUSE clients, which includes: >> >> - ABI layer, which defines all data structures shared between linux Fuse >> framework and Fuse daemons. >> - API layer, defines the interfaces for Fuse daemons to implement a >> userspace file system. >> - Transport layer, which supports both the Linux Fuse device and >> virtio-fs protocol. >> - VFS/pseudo_fs, an abstraction layer to support multiple file systems >> by a single virtio-fs device. >> - A sample passthrough file system implementation, which passes through >> files from daemons to clients. >> > > So at a high level, is this equivalent of libfuse written in rust? Yes, they are similar in concept. Though fuse-backend-rs only provides interfaces like the libfuse lowlevel APIs for filesystem implementations. The fuse session handling part is still outside [1] but we are planning to move it into fuse-backend-rs as well. Cheers, Tao [1] https://github.com/dragonflyoss/image-service/blob/master/utils/src/fuse.rs -- Into something rich and strange.