Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

FUSE bindings for Go

License

NotificationsYou must be signed in to change notification settings

hanwen/go-fuse

Repository files navigation

CIGoDoc

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

Release notes

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

Comparison with other FUSE libraries

Further highlights of this library is

  • Comprehensive and up to date protocol support (up to 7.12.28).

  • Performance that is competitive with libfuse.

Examples

  • 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

macOS Support

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!

Credits

Bugs

Report them throughhttps://github.com/hanwen/go-fuse/issues. Pleaseinclude a debug trace (setfuse.MountOptions.Debug totrue).

License

Like Go, this library is distributed under the new BSD license. Seeaccompanying LICENSE file.


[8]ページ先頭

©2009-2025 Movatter.jp