| /*! |
| \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). |
| |
| |
| */ |