A Go package for implementing a FUSE file system (fork with 'almost' zero-copy read/write)
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Michael Stapelberg 1d001802f7 add samples/mount_hello executable
This is a simple program to verify that the FUSE library itself works,
easier to run than the existing samples/mount with flushfs.
3 years ago
fsutil remove naked returns across the code base (#75) 3 years ago
fuseops plumb through Fd in setattr (#67) 4 years ago
fusetesting remove naked returns across the code base (#75) 3 years ago
fuseutil remove naked returns across the code base (#75) 3 years ago
internal implement NoOpenSupport and NoOpendirSupport 3 years ago
samples add samples/mount_hello executable 3 years ago
.gitignore Ignore vim swap files. 8 years ago
.travis.yml .travis.yml: pin to macOS 10.12 4 years ago
LICENSE Upated the license file. 8 years ago
README.md Reworked the readme. 8 years ago
connection.go implement NoOpenSupport and NoOpendirSupport 3 years ago
conversions.go remove naked returns across the code base (#75) 3 years ago
debug.go add support for fallocate (#66) 4 years ago
doc.go Added a callout to fuseutil.NewFileSystemServer. 8 years ago
errors.go added tests and enhanced comments 6 years ago
freelists.go remove naked returns across the code base (#75) 3 years ago
mount.go remove naked returns across the code base (#75) 3 years ago
mount_config.go implement NoOpenSupport and NoOpendirSupport 3 years ago
mount_darwin.go remove naked returns across the code base (#75) 3 years ago
mount_linux.go prefer fusermount3 (from FUSE 3), fall back to old fusermount 3 years ago
mount_test.go remove naked returns across the code base (#75) 3 years ago
mounted_file_system.go replace imports of "golang.org/x/net/context" with "context" 5 years ago
ops.go Removed special handling of statfs. 8 years ago
unmount.go Update documentation for Go style. 6 years ago
unmount_linux.go prefer fusermount3 (from FUSE 3), fall back to old fusermount 3 years ago
unmount_std.go remove naked returns across the code base (#75) 3 years ago

README.md

GoDoc

This package allows for writing and mounting user-space file systems from Go. Install it as follows:

go get -u github.com/jacobsa/fuse

Afterward, see the documentation for the following three packages:

  • Package fuse provides support for mounting a new file system and reading requests from the kernel.

  • Package fuseops enumerates the supported requests from the kernel, and provides documentation on their semantics.

  • Package fuseutil, in particular the FileSystem interface, provides a convenient way to create a file system type and export it to the kernel via fuse.Mount.

Make sure to also see the sub-packages of the samples package for examples and tests.

This package owes its inspiration and most of its kernel-related code to bazil.org/fuse.