Clive, 2nd ed. User's manual. Section 2
SYNOPSYS

import "clive/zx/zxfs"

var Verb bool ...
func MountServer(t zx.Getter, mntdir string) error
func New(fs zx.Getter) (*FS, error)
type Dir struct { ... }
type FS struct { ... }
    func New(fs zx.Getter) (*FS, error)
type Fd struct { ... }

DESCRIPTION

FUSE server for zx.

In general, fuse requests are sent directly as zx requests.

CONSTANTS

TYPES

type Dir struct {
	fs.NodeRef

	sync.Mutex
	// contains filtered or unexported fields
}
    Implementation of fuse Node interface To match unix semantics we issue many
    more zx calls than needed so that each call is made when unix expects it.

func (zd *Dir) Attr() (*fuse.Attr, fuse.Error)
    return the dir entry for a node

func (zd *Dir) Create(elem string, flg fuse.OpenFlags, mode os.FileMode, intr fs.Intr) (fs.Node, fs.Handle, fuse.Error)

func (zd *Dir) Lookup(name string, intr fs.Intr) (fs.Node, fuse.Error)
    lookup a name in a dir

func (zd *Dir) Mkdir(elem string, mode os.FileMode, intr fs.Intr) (fs.Node, fuse.Error)

func (zd *Dir) Open(flg fuse.OpenFlags, _ fs.Intr) (fs.Handle, fuse.Error)
    open a dir/file

func (zd *Dir) PutNode()

func (zd *Dir) Remove(elem string, _ fs.Intr) fuse.Error
    Remove (EPERM otherwise)

func (szd *Dir) Rename(oelem, nelem string, tond fs.Node, _ fs.Intr) fuse.Error

func (zd *Dir) SetAttr(r *fuse.SetattrRequest, _ fs.Intr) fuse.Error
    Set attributes (EPERM otherwise).

func (zd Dir) String() string

func (zd *Dir) Wxattr(name string, v []byte) fuse.Error
    write extended attribute

func (zd *Dir) Xattr(name string) ([]byte, fuse.Error)
    read extended attribute.

func (zd *Dir) Xattrs() []string
    list extended attributes.

type FS struct {
	sync.RWMutex
	// contains filtered or unexported fields
}
    Implementation of fuse FS for a zx.Tree

    Keeps an in-memory cache of directory entries to track generated inode
    numbers for each path/entry.

func New(fs zx.Getter) (*FS, error)
    Create a fuse server for fs.

func (zd *FS) DumpTo(w io.Writer, lvl int)
    Dump a debug representation of the state of z into w, with lvl indent.

func (z *FS) Root() (fs.Node, fuse.Error)
    return the root node

func (z *FS) String() string

type Fd struct {
	// everything kept at and locked by Dir
	*Dir
}
    Implementation of fuse handle interface.

func (fd *Fd) Close(_ fs.Intr) fuse.Error

func (fd *Fd) IsCtl() bool

func (fd *Fd) PutHandle()

func (fd *Fd) Read(off int64, sz int, i fs.Intr) ([]byte, fuse.Error)

func (fd *Fd) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error)

func (fd *Fd) String() string

func (fd *Fd) Write(data []byte, off int64, _ fs.Intr) (int, fuse.Error)
    TODO: when we start a write, keep the chan open after the write, receiving
    async errors from previous writes, and check the write offset. Any other
    operation including moves and lookups involving this file or the parent must
    close the write chan and await until the put completes. If there's no futher
    operation in, say, 1s, the put must be closed and completed. This is good to
    coallesce multiple writes into a single put. Speed seems to be ok

FUNCTIONS

func MountServer(t zx.Getter, mntdir string) error
    Serve the tree for FUSE and mount it at the given path. Returns when
    unmounted.

VARIABLES

var (
	Verb  bool // print errors to stderr
	Debug bool
)

User's manual, 2nd ed. Section 2