.github
GitHub Actions: run on ubuntu-latest instead of 20.04
fsutil
remove naked returns across the code base (#75)
fuseops
Changes to enable larger reads without increasing write size
fusetesting
Implement support for Readdirplus (#178)
fuseutil
Implement support for Readdirplus (#178)
internal
Add MaxWrite config and support smaller FUSE buffers
samples
Add wire log (#185)
.gitignore
Add configuration to control async reads (#105)
connection_test.go
Add MaxWrite config and support smaller FUSE buffers
connection.go
Add MaxWrite config and support smaller FUSE buffers
conversions.go
Propagate O_DIRECT flag in OpenFileOp and CreateFileOp (#184)
debug.go
debug: print operation name, not just OK (#165)
doc.go
gofmt with Go 1.19
errors.go
added tests and enhanced comments
freelists.go
Add MaxWrite config and support smaller FUSE buffers
go.mod
Bump golang.org/x/net from 0.37.0 to 0.38.0 (#175)
go.sum
Bump golang.org/x/net from 0.37.0 to 0.38.0 (#175)
LICENSE
Upated the license file.
mount_config.go
Add MaxWrite config and support smaller FUSE buffers
mount_darwin.go
MountConfig: add FuseImpl field to select macOS FUSE implementation
mount_linux_test.go
allow passing open /dev/fuse file descriptors (#124)
mount_linux.go
fusermount: check write permissions on failure for better error message (#181)
mount_test.go
Add MaxWrite config and support smaller FUSE buffers
mount.go
Add MaxWrite config and support smaller FUSE buffers
mounted_file_system.go
add support for retrieving UID GID PID for each fuseops, ala FUSE-C fuse_get_context()
notifier.go
Add support for inode and dentry invalidation.
ops.go
Add support for max_pages and increase to 256 (#96)
README.md
Switch from Travis CI to GitHub Actions (#111)
unmount_linux_test.go
fix: false success in unmount flow (#182)
unmount_linux.go
fix: false success in unmount flow (#182)
unmount_std.go
GitHub Actions: upgrade to latest stable version of Go 1.17
unmount.go
Return custom unmount error for externally-managed mounts (#179)
wirelog.go
Add wire log (#185)
writev.go
Implement vectored read support

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.