Skip to content
/ profuse Public

An OCaml implementation of the FUSE protocol versions 7.8 and 7.23

License

Notifications You must be signed in to change notification settings

effuse/profuse

Folders and files

NameName
Last commit message
Last commit date
Apr 5, 2017
May 9, 2016
Dec 21, 2015
May 30, 2014
Nov 18, 2016
Feb 14, 2017
Mar 1, 2017
May 12, 2016
May 4, 2016
Jan 23, 2014
Jan 13, 2016
Feb 15, 2017
Apr 3, 2017
May 4, 2016
May 5, 2016
Apr 26, 2016
Nov 28, 2016

Repository files navigation

profuse

profuse is an OCaml implementation of the FUSE protocol versions 7.8 and 7.23. The 7.8 protocol version is common to UNIX/GNU Linux, FreeBSD, and OS X. Presently, the library only provides the Linux implementation.

Install

You need to add the ocamllabs opam-repository to have all the right dependencies:

opam remote add ocl https://github.com/ocamllabs/opam-repo-dev.git
opam install profuse

Use lofs with docker

Warning: This is very experimental.

First, prepare your local filesystem:

mkdir <mnt-dir>  # for instance ~/fuse-mnt
mkdir <data-dir> # for instance ~/fuse-data

Note: <mnt-dir>/ MUST NOT be a child of <data-dir>/, otherwise bad things will happen. <data-dir>/ will contains files mirrored by <mnt-dir>/, and all reads and writes to the <mnt-dir>/ files will go through the lofs daemon and will be reflected back in <data-dir>/.

To "connect" the two directories using the lofs daemon, run:

cd <data-dir> && ./lofs_main.native <mnt-dir>

You can test the result by opening a new terminal and modifying things in <mnt-dir>: you will see the lofs daemaon spitting out FUSE requests.

We can now start a docker container and mount <mnt-dir> as data volume:

docker run -it -v <mnt-dir>:/home ubuntu bash

If you cd /home into the container, you will see the lofs daemon spitting out FUSE requests.