A Go package for implementing a FUSE file system (fork with 'almost' zero-copy read/write)
Go to file
Ka-Hing Cheung 4ee1cf7f62 add support for fallocate (#66)
* Fallocate support

* use fallocate wrapper that works on darwin
2019-10-26 10:15:00 +02:00
fsutil Fixed fdatasync build errors on linux. 2015-03-24 12:32:56 +11:00
fuseops add support for fallocate (#66) 2019-10-26 10:15:00 +02:00
fusetesting replace imports of "golang.org/x/net/context" with "context" 2018-02-07 19:18:23 +00:00
fuseutil add support for fallocate (#66) 2019-10-26 10:15:00 +02:00
internal add support for fallocate (#66) 2019-10-26 10:15:00 +02:00
samples add support for fallocate (#66) 2019-10-26 10:15:00 +02: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 replace imports of "golang.org/x/net/context" with "context" 2018-02-07 19:18:23 +00:00
conversions.go add support for fallocate (#66) 2019-10-26 10:15:00 +02:00
debug.go add support for fallocate (#66) 2019-10-26 10:15:00 +02: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 Began fixing Connection. 2015-07-28 16:13:18 +10:00
mount.go replace imports of "golang.org/x/net/context" with "context" 2018-02-07 19:18:23 +00:00
mount_config.go try mounting without fusermount(1) first 2019-09-19 08:50:12 +02:00
mount_darwin.go Unexport OSXFUSEPaths. 2016-10-16 08:56:44 +01:00
mount_linux.go open /dev/fuse in blocking mode so the runtime does not use a poller 2019-09-19 08:50:12 +02:00
mount_test.go fix formatting directives (to pass go test) 2019-09-16 18:28:45 +02: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 Fixed a build error on Linux. 2015-07-24 16:22:33 +10:00
unmount_std.go Fixed unmount_std.go. 2015-07-24 16:21:18 +10: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.