A Go package for implementing a FUSE file system (fork with 'almost' zero-copy read/write)
Go to file
Aaron Jacobs 83630d4268 Refactored the way the user obtains contexts and replies to ops.
The new interface gives much much cleaner documentation for package
fuseops, which is what we mostly look at. In particular, there isn't a
ton of stuttering in the method listings.

The change also simplifies the implementation of package fuseops, which
was becoming super unwieldy.
2015-07-27 15:56:27 +10:00
fsutil Fixed fdatasync build errors on linux. 2015-03-24 12:32:56 +11:00
fuseops Fixed a couple of out of date references. 2015-07-27 15:44:54 +10:00
fusetesting Reference package syncutil in its new location. 2015-06-15 08:27:39 +10:00
fuseutil Fixed package fuse. 2015-07-27 15:44:17 +10:00
internal Deleted a broken FreeBSD file. 2015-07-27 11:49:13 +10:00
samples Fixed sample build errors. 2015-07-27 15:47:45 +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 Fixed redundant internal op names. 2015-07-27 15:52:13 +10:00
conversions.go Moved the kernel response functions to a more appropriate place. 2015-07-27 15:55:14 +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
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 Moved the kernel response functions to a more appropriate place. 2015-07-27 15:55:14 +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.