A Go package for implementing a FUSE file system (fork with 'almost' zero-copy read/write)
Go to file
Elliot Speck e0296dec95
Switch using Linux "default_permissions" to an optional parameter. (#94)
There's no reason for this to be enforced on the user. For use-cases such as S3-backing, there are no "permissions" of such to base this on. Consequently, everything ends up being owned as root and making it far more difficult to use.

It should, however, be optional.
2020-12-16 16:55:45 +01:00
fsutil remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
fuseops Add pid in all fuse ops (#92) 2020-10-28 08:51:23 +01:00
fusetesting remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
fuseutil remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
internal Add ARM support. (#85) 2020-06-26 07:45:43 +02:00
samples Add pid in all fuse ops (#92) 2020-10-28 08:51:23 +01:00
.gitignore Ignore vim swap files. 2015-08-11 05:54:05 +00:00
.travis.yml .travis.yml: pin to macOS 10.12 2019-09-18 16:16:40 +02:00
LICENSE Upated the license file. 2015-07-24 15:40:31 +10:00
README.md Reworked the readme. 2015-07-27 11:53:29 +10:00
connection.go Don't log ERANGE for ListXattrOp. 2020-07-06 09:55:24 +02:00
conversions.go Add pid in all fuse ops (#92) 2020-10-28 08:51:23 +01:00
debug.go Add pid in all fuse ops (#92) 2020-10-28 08:51:23 +01:00
doc.go Added a callout to fuseutil.NewFileSystemServer. 2015-03-25 09:18:56 +11:00
errors.go added tests and enhanced comments 2017-05-11 14:45:40 -07:00
freelists.go remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
mount.go remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
mount_config.go Switch using Linux "default_permissions" to an optional parameter. (#94) 2020-12-16 16:55:45 +01:00
mount_darwin.go remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
mount_linux.go prefer fusermount3 (from FUSE 3), fall back to old fusermount 2020-04-23 21:10:43 +02:00
mount_test.go remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00
mounted_file_system.go replace imports of "golang.org/x/net/context" with "context" 2018-02-07 19:18:23 +00:00
ops.go Removed special handling of statfs. 2015-09-09 09:49:54 +10:00
unmount.go Update documentation for Go style. 2017-01-03 10:47:18 +11:00
unmount_linux.go prefer fusermount3 (from FUSE 3), fall back to old fusermount 2020-04-23 21:10:43 +02:00
unmount_std.go remove naked returns across the code base (#75) 2020-01-28 10:10:08 +01:00

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.