https://github.com/serceman/jnr-fuse
FUSE implementation in Java using Java Native Runtime (JNR)
https://github.com/serceman/jnr-fuse
filesystem fuse java jnr
Last synced: about 1 year ago
JSON representation
FUSE implementation in Java using Java Native Runtime (JNR)
- Host: GitHub
- URL: https://github.com/serceman/jnr-fuse
- Owner: SerCeMan
- License: mit
- Created: 2015-05-27T21:42:28.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-12-24T19:21:35.000Z (over 1 year ago)
- Last Synced: 2025-04-06T08:09:25.588Z (about 1 year ago)
- Topics: filesystem, fuse, java, jnr
- Language: Java
- Size: 520 KB
- Stars: 378
- Watchers: 12
- Forks: 90
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
jnr-fuse
==
[](https://circleci.com/gh/SerCeMan/jnr-fuse) [](https://gitter.im/SerCeMan/jnr-fuse?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
jnr-fuse is a FUSE implementation in java using Java Native Runtime (JNR).
## Project Goals
The main goal of the project is to provide an easy way to create a high-performance filesystem in userspace.
## About technologies
[FUSE](https://github.com/libfuse/libfuse) (Filesystem in Userspace) is an OS mechanism for unix-like OS that lets non-privileged users create their own file systems without editing kernel code.
[Java Native Runtime](https://github.com/jnr/jnr-ffi) (JNR) is high-performance Java API for binding native libraries and native memory.
## Get it
Prior to `0.5.5`, jnr-fuse was only available in [JCenter](https://bintray.com/serce/maven/jnr-fuse). Due to [sunsetting](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) of JCenter, starting from `0.5.5` is available in maven central.
### Gradle
```groovy
dependencies {
compile 'com.github.serceman:jnr-fuse:0.5.8'
}
````
### Maven
```xml
com.github.serceman
jnr-fuse
0.5.8
```
## How to use
For implementing your own filesystem you just need to extend FuseStubFS class and implement methods you need.
See [some examples](https://github.com/SerCeMan/jnr-fuse/tree/master/src/main/java/ru/serce/jnrfuse/examples).
See [blog article about the implementation](http://serce.me/posts/22-06-2015-jnr-fuse/)
## Projects using jnr-fuse
* [Alluxio](https://github.com/Alluxio/alluxio/tree/master/integration/fuse): Alluxio is a memory-centric distributed storage system
* [Cryptomator](https://github.com/cryptomator/cryptomator): A user-friendly encryption tool for cloud storage services
* [mux2fs](https://github.com/tfiskgul/mux2fs): Muxes subtitles into Matroska files as a FUSE filesystem
* [healthcare-api-dicom-fuse](https://github.com/GoogleCloudPlatform/healthcare-api-dicom-fuse): FUSE plugin for the Google Cloud Healthcare DICOM API
## Supported platforms
| Supported platforms | | |
|---------------------------------------------------------------|-----|------|
| Linux | x64 | x86 |
| MacOS (via [osxfuse](https://osxfuse.github.io/)) | x64 | x86 |
| Windows (via [winfsp](https://github.com/billziss-gh/winfsp/))| x64 | n/a |
## Installation and troubleshooting
See [instructions](https://github.com/SerCeMan/jnr-fuse/blob/master/INSTALLATION.md).