- Notifications
You must be signed in to change notification settings - Fork344
hanwen/go-fuse
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Go native bindings for the FUSE kernel module.
Usegithub.com/hanwen/go-fuse/v2/fslibrary. It follows the wire protocol closely, but providesconvenient abstractions for building both node and path based filesystems
v2.7
- fuse, fs: support STATX
v2.6
- general:
- drop support for go1.16
- fuse:
- FreeBSD support
- passthrough support for increased performance
- DirEntryList.Offset and DirEntry.Off are visible now; add DirEntry.Parse
- fs:
- new directory API, supporting caching and file handles for Readdir and FsyncDir
- passthrough support for increased performance
- allow LoopbackNode to be used as non-root
- OnForget method
v2.5
- Support for RenameExchange on Darwin
Further highlights of this library is
Comprehensive and up to date protocol support (up to 7.12.28).
Performance that is competitive with libfuse.
example/hello/ contains a 60-line "hello world" filesystem
zipfs/zipfs contains a small and simple read-only filesystem forzip and tar files. The corresponding command is in example/zipfs/For example,
mkdir /tmp/mountpointexample/zipfs/zipfs /tmp/mountpoint file.zip&ls /tmp/mountpointfusermount -u /tmp/mountpoint
zipfs/multizipfs shows how to use combinesimple Go-FUSE filesystems into a larger filesystem.
example/loopback mounts another piece of the filesystem.Functionally, it is similar to a symlink. A binary to run is inexample/loopback/ . For example
mkdir /tmp/mountpointexample/loopback/loopback -debug /tmp/mountpoint /some/other/directory&ls /tmp/mountpointfusermount -u /tmp/mountpoint
The main developer (hanwen@) does not own a Mac to test, but acceptspatches to make Go-FUSE work on Mac.
All of the limitations of OSXFUSE, including lack of support forNOTIFY.
OSX issues STATFS calls continuously (leading to performanceconcerns).
OSX has trouble with concurrent reads from the FUSE device, leadingto performance concerns.
Tests are expected to pass; report any failure as a bug!
Inspired by Taru Karttunen's package,https://bitbucket.org/taruti/go-extra.
Originally based on Ivan Krasin'shttps://github.com/krasin/go-fuse-zip
Report them throughhttps://github.com/hanwen/go-fuse/issues. Pleaseinclude a debug trace (setfuse.MountOptions.Debug
totrue
).
Like Go, this library is distributed under the new BSD license. Seeaccompanying LICENSE file.