diff --git a/README.md b/README.md index 79c5fe0..6b59acc 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,30 @@ [![GoDoc](https://godoc.org/github.com/jacobsa/ogletest?status.svg)](https://godoc.org/github.com/jacobsa/fuse) -This package allows for writing and mounting user-space file systems from Go. It -is a wrapper around [bazil.org/fuse][bazil], which does the heavy lifting. It -does not make use of the [bazil.org/fuse/fs][bazil-fs] sub-package, which allows -for something like an object-orientend representation of files and directories, -and contains a decent amount of canned behavior. +This package allows for writing and mounting user-space file systems from Go. +Install it as follows: -The chief improvements and/or differences from the bazil.org packages are: + go get -u github.com/jacobsa/fuse - * No surprises in the form of magic/default behaviors. You must provide an - implementation for every method in the interface. Embed a - `fuseutil.NotImplementedFileSystem` struct to have default implementations - that return `ENOSYS`. +Afterward, see the documentation for the following three packages: - * Every method, struct, and field is thoroughly documented. This may help you - get your bearings in the world of FUSE, the Linux VFS, traditional file - system implementations, etc., all of which tend to be very poorly - documented. + * Package [fuse][] provides support for mounting a new file system and + reading requests from the kernel. - * Support for arbitrary offsets in directory entries returned by `ReadDir`. - (The bazil.org package assumes that offsets must be counts of bytes.) + * Package [fuseops][] enumerates the supported requests from the kernel, and + provides documentation on their semantics. -The very large disadvantage over using the bazil.org packages is that many -features have not yet been exposed. + * 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 see the sub-packages of the [samples][] package. +Make sure to also see the sub-packages of the [samples][] package for examples +and tests. -[bazil]: http://godoc.org/bazil.org/fuse -[bazil-fs]: http://godoc.org/bazil.org/fuse/fs +This package owes its inspiration and most of its kernel-related code to +[bazil.org/fuse][bazil]. + +[fuse]: http://godoc.org/github.com/jacobsa/fuse +[fuseops]: http://godoc.org/github.com/jacobsa/fuse/fuseops +[fuseutil]: http://godoc.org/github.com/jacobsa/fuse/fuseutil [samples]: http://godoc.org/github.com/jacobsa/fuse/samples +[bazil]: http://godoc.org/bazil.org/fuse