#write #read #read-write #fuse #seek

readwriteseekfs

Expose Read+Write+Seek (or just Read+Seek) as a FUSE-backed regular file

1 unstable release

Uses old Rust 2015

0.1.0 Aug 19, 2018

#27 in #seek


Used in fusenbd

MIT/Apache

11KB
255 lines

readwriteseekfs

A fuse::Filesystem implementation based on any Read+Write+Seek implementation. Using this library you can easily expose file-like objects in Rust as a mountable single-file FUSE filesystem. Read-only files can be crated from just Read+Seek, without Write.

Example

See examples/simple.rs for the code.

Running the example

First console:

cargo run --example=simple

Second console:

$ hd hello.txt 
00000000  48 65 6c 6c 6f 2c 20 77  6f 72 6c 64 0a 00 00 00  |Hello, world....|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00010000

$ echo qwe > hello.txt

$ hd hello.txt 
00000000  71 77 65 0a 6f 2c 20 77  6f 72 6c 64 0a 00 00 00  |qwe.o, world....|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00010000

$ fusermount -u hello.txt

Notes

  • File size is determined using seeking at startup and is not changeable without unmounting

Dependencies

~0.9–1.3MB
~20K SLoC