blob: dc64868d5a621de9c9b74031b0fa4ed9c1d2ae5c [file] [log] [blame]
/*!
\mainpage libfuse API documentation
FUSE (Filesystem in Userspace) is an interface for userspace programs
to export a filesystem to the Linux kernel. The FUSE project consists
of two components: the *fuse* kernel module (maintained in the regular
kernel repositories) and the *libfuse* userspace library. libfuse
provides the reference implementation for communicating with the FUSE
kernel module.
A FUSE file system is typically implemented as a standalone
application that links with libfuse. libfuse provides functions to
mount the file system, unmount it, read requests from the kernel, and
send responses back.
## Getting started ##
libfuse offers two APIs: a "high-level", synchronous API, and a
"low-level" asynchronous API. In both cases, incoming requests from
the kernel are passed to the main program using callbacks. When using
the high-level API, the callbacks may work with file names and paths
instead of inodes, and processing of a request finishes when the
callback function returns. When using the low-level API, the callbacks
must work with inodes and responses must be sent explicitly using a
separate set of API functions.
The high-level API that is primarily specified in fuse.h. The
low-level API that is primarily documented in fuse_lowlevel.h.
## Examples ##
FUSE comes with several examples in the <a
href="files.html">examples</a> directory. A good starting point are
hello.c (for the high-level API) and hello_ll.c (for the low-level
API).
*/