A Go package for implementing a FUSE file system (fork with 'almost' zero-copy read/write)
Go to file
Aaron Jacobs 348ed9e731 Disabled async reads.
Allowing the kernel to send multiple reads for the same file handle
concurrently interferes with sequential read detection like that in
GoogleCloudPlatform/gcsfuse#103.
2015-08-05 11:09:20 +10:00
fsutil Fixed fdatasync build errors on linux. 2015-03-24 12:32:56 +11:00
fuseops Disabled a test for a feature that doesn't work on OS X. 2015-07-29 16:24:47 +10:00
fusetesting Reference package syncutil in its new location. 2015-06-15 08:27:39 +10:00
fuseutil Fixed another dumb bug. 2015-07-29 10:20:53 +10:00
internal Read directly into out messages for files. 2015-07-29 11:02:29 +10:00
samples Disabled async reads. 2015-08-05 11:09:20 +10:00
.gitignore Initial commit 2015-02-27 08:52:22 +11:00
.travis.yml Enabled Travis CI. 2015-07-21 21:55:40 +10: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 Disabled async reads. 2015-08-05 11:09:20 +10:00
conversions.go Don't send error responses to the kernel for forget and interrupt. 2015-08-04 12:28:08 +10:00
debug.go Use a custom logging for interruptOp, to aid in debugging. 2015-07-29 14:53:09 +10:00
doc.go Added a callout to fuseutil.NewFileSystemServer. 2015-03-25 09:18:56 +11:00
errors.go Fixed a couple of out of date references. 2015-07-27 15:44:54 +10:00
freelists.go Began fixing Connection. 2015-07-28 16:13:18 +10:00
mount_config.go MountConfig.toOptionsString 2015-07-24 16:09:15 +10:00
mount_darwin.go Removed a TODO that doesn't belong to me. 2015-07-24 16:36:40 +10:00
mount_linux.go Gave mount a makeover. 2015-07-24 16:18:07 +10:00
mounted_file_system.go Use the mount helper in Mount. 2015-07-24 15:56:54 +10:00
ops.go Fixed a bug: the flags parameter is in and out. 2015-07-29 14:53:09 +10:00
unmount.go Fixed unmount.go. 2015-07-24 16:20:44 +10: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.