# libfuse

> reference implementation for communicating with the FUSE kernel module

**Wikidata**: [Q132853259](https://www.wikidata.org/wiki/Q132853259)  
**Source**: https://4ort.xyz/entity/libfuse

## Summary
libfuse is the reference implementation of a software library for communicating with the FUSE (Filesystem in Userspace) kernel module. It is classified as a non-tangible executable component that facilitates the creation of custom file systems without editing kernel code. The project is developed by Miklos Szeredi and Nikolaus Rath.

## Key Facts
- **Definition:** The reference implementation for communicating with the FUSE kernel module.
- **Type:** Software.
- **Primary Developer:** Miklos Szeredi, a Hungarian software developer and programmer.
- **Co-Developer:** Nikolaus Rath.
- **Source Repository:** Hosted primarily on GitHub (`https://github.com/libfuse/libfuse`), with a legacy mirror on SourceForge.
- **Version History (Stable Releases):** Includes versions 2.9.4 (released Dec 2015) through 3.1.0 (released July 2017).
- **GitHub Username:** `libfuse`.

## FAQs
### Q: What is the primary function of libfuse?
A: libfuse serves as the reference implementation for communicating with the FUSE kernel module. It acts as the bridge that allows software programs to implement fully functional file systems in user-space.

### Q: Who created and maintains libfuse?
A: The software was created by Miklos Szeredi, a Hungarian software developer. Development credits also include Nikolaus Rath.

### Q: Where can the source code for libfuse be found?
A: The preferred source code repository is hosted on GitHub at `https://github.com/libfuse/libfuse`. Historically, source code was also available via SourceForge.

## Why It Matters
libfuse is a critical piece of infrastructure in the Linux ecosystem because it provides the standard userspace interface for the FUSE kernel module. By offering a reference implementation, it abstracts the complexity of kernel communication, allowing developers to create functional, custom file systems using standard programming languages and tools without requiring deep kernel programming knowledge. This capability has enabled the proliferation of specialized storage solutions, such as cloud storage mounts (e.g., `s3fs`) and encrypted filesystems, significantly expanding the versatility of modern operating systems. The transition of its repository to GitHub under the username `libfuse` further facilitates open-source collaboration and ongoing maintenance.

## Notable For
- **Reference Implementation:** It is the definitive standard library for interacting with the FUSE kernel interface.
- **Creators:** Developed by Miklos Szeredi, a prominent figure in Linux filesystem development.
- **Versioning:** Maintains distinct release lines, with documented stable releases for both the 2.9.x series (up to 2.9.9) and the 3.x series (starting with 3.0.0).
- **Open Source Accessibility:** Code is openly available on GitHub, encouraging community contribution and transparency.

## Body

### Development and Creator
libfuse was created by **Miklos Szeredi**, a Hungarian software developer and programmer credited with the original concept and implementation of FUSE. The project is also maintained and developed by **Nikolaus Rath**. It is categorized strictly as **software**, defined as a non-tangible executable component of a computer.

### Functionality
The library functions specifically as the **reference implementation** for the FUSE kernel module. Its primary role is to handle the communication protocol between the kernel and the userspace program, managing requests such as reading, writing, and listing directories.

### Repository History
The project's source code is currently hosted on **GitHub** under the organization `libfuse`.
- **Primary URL:** `https://github.com/libfuse/libfuse`
- **Legacy URL:** `http://sourceforge.net/p/fuse/fuse/ci/master/tree/` (SourceForge)

### Release Timeline
The development of libfuse is documented through a series of stable releases, particularly notable for the transition from the 2.9.x series to the 3.x series.

**2.9.x Series:**
- **2.9.4:** Released December 21, 2015.
- **2.9.5:** Released January 14, 2016.
- **2.9.6:** Released April 23, 2016.
- **2.9.7:** Released June 20, 2016.
- **2.9.8:** Released July 25, 2018.
- **2.9.9:** Released January 4, 2019.

**3.x Series:**
- **3.0.0:** Released December 9, 2016.
- **3.0.1:** Released April 11, 2017.
- **3.0.2:** Released May 24, 2017.
- **3.1.0:** Released July 8, 2017.

## References

1. [Release 2.9.4. 2015](https://github.com/libfuse/libfuse/releases/tag/fuse_2_9_4)
2. [Release 2.9.5. 2016](https://github.com/libfuse/libfuse/releases/tag/fuse_2_9_5)
3. [Release 2.9.6. 2016](https://github.com/libfuse/libfuse/releases/tag/fuse-2.9.6)
4. [Release 2.9.7. 2016](https://github.com/libfuse/libfuse/releases/tag/fuse-2.9.7)
5. [Release 2.9.8. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-2.9.8)
6. [Release 2.9.9. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-2.9.9)
7. [Release 3.0.0. 2016](https://github.com/libfuse/libfuse/releases/tag/fuse-3.0.0)
8. [Release 3.0.1. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.0.1)
9. [Release 3.0.2. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.0.2)
10. [Release 3.1.0. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.1.0)
11. [Release 3.1.1. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.1.1)
12. [Release 3.2.0. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.0)
13. [Release 3.2.1. 2017](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.1)
14. [Release 3.2.2. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.2)
15. [Release 3.2.3. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.3)
16. [Release 3.2.4. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.4)
17. [Release 3.2.5. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.5)
18. [Release 3.2.6. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.2.6)
19. [Release 3.3.0. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.3.0)
20. [Release 3.4.1. 2018](https://github.com/libfuse/libfuse/releases/tag/fuse-3.4.1)
21. [Release 3.4.2. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.4.2)
22. [Release 3.5.0. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.5.0)
23. [Release 3.6.0. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.6.0)
24. [Release 3.6.1. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.6.1)
25. [Release 3.6.2. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.6.2)
26. [Release 3.7.0. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.7.0)
27. [Release 3.8.0. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.8.0)
28. [Release 3.9.0. 2019](https://github.com/libfuse/libfuse/releases/tag/fuse-3.9.0)
29. [Release 3.9.1. 2020](https://github.com/libfuse/libfuse/releases/tag/fuse-3.9.1)
30. [Release 3.9.2. 2020](https://github.com/libfuse/libfuse/releases/tag/fuse-3.9.2)
31. [Release 3.9.3. 2020](https://github.com/libfuse/libfuse/releases/tag/fuse-3.9.3)
32. [Release 3.10.0. 2020](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.0)
33. [Release 3.10.1. 2020](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.1)
34. [Release 3.10.2. 2021](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.2)
35. [Release 3.10.3. 2021](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.3)
36. [Release 3.10.4. 2021](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.4)
37. [Release 3.10.5. 2021](https://github.com/libfuse/libfuse/releases/tag/fuse-3.10.5)
38. [Release 3.11.0. 2022](https://github.com/libfuse/libfuse/releases/tag/fuse-3.11.0)
39. [Release 3.12.0. 2022](https://github.com/libfuse/libfuse/releases/tag/fuse-3.12.0)
40. [Release 3.13.0. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.13.0)
41. [Release 3.13.1. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.13.1)
42. [Release 3.14.0. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.14.0)
43. [Release 3.14.1. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.14.1)
44. [Release 3.15.0. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.15.0)
45. [Release 3.15.1. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.15.1)
46. [Release 3.16.1. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.16.1)
47. [Release 3.16.2. 2023](https://github.com/libfuse/libfuse/releases/tag/fuse-3.16.2)