Docs · Context FS

Install Context FS.

The filesystem module ships in every CLIO Core install. The mount daemon, clio_cte_fuse, needs a FUSE driver from the operating system and is included only in some packages. This page lists which, and what to install beside them.

pip
Linux and Windows wheels include clio_cte_fuse
macOS
build from source
CMake option
CLIO_CTE_ENABLE_FUSE_ADAPTER

What each install method gives you

The general install page, Installation, covers every method. For Context FS the question is whether clio_cte_fuse is in the package.

  • pip (pip install iowarp-core): the Linux and Windows wheels build the FUSE adapter; the macOS wheel does not. The clio_cte_fuse console script exists on every platform, but on macOS the binary behind it is absent.
  • conda (iowarp channel): built from the release preset, which does not enable the adapter. Build the recipe yourself with a FUSE preset to get it.
  • Spack: spack install iowarp +fuse. The fuse variant is off by default, depends on libfuse@3:, and requires the CTE (+cte, the default).
  • Release packages (.deb, .rpm, AppImage, Windows ZIP and installer): include the FUSE adapter.
  • Docker (iowarp/deploy-cpu): runs the runtime; mounting inside a container needs /dev/fuse passed through. See FUSE on Linux.
  • Source: configure with -DCLIO_CTE_ENABLE_FUSE_ADAPTER=ON, or use a preset that sets it.

Platform prerequisites

Linux

The daemon links the system libfuse3.so.3, which the wheel does not bundle. Install the FUSE 3 packages:

shell
$ sudo apt install fuse3 libfuse3-3        # Debian, Ubuntu
$ sudo dnf install fuse3 fuse3-libs        # Fedora

-o allow_other needs user_allow_other in /etc/fuse.conf. Mounting from inside Apptainer with --fusemount needs a daemon built against libfuse 3.14 headers; the manylinux wheels are built against 3.10 and support only the normal mount path.

macOS

shell
$ brew install --cask macfuse
$ git clone --recurse-submodules https://github.com/iowarp/clio-core.git
$ cd clio-core
$ ./CI/ci-deps.sh --only-deps release
$ conda activate iowarp
$ cmake --preset release-mac-fuse -DCLIO_CORE_ENABLE_CONDA=ON
$ cmake --build build-mac-fuse -j"$(sysctl -n hw.ncpu)"

macFUSE needs a one-time approval in System Settings. FUSE on macOS covers that, the FSKit backend on macOS 15.4 and later, and unmounting.

Windows

Install WinFsp. The pip console script adds %ProgramFiles(x86)%\WinFsp\bin to PATH itself and refuses to start if that folder is missing. To build from source you also need WinFsp's developer files (install the MSI with ADDLOCAL=ALL), then:

powershell
PS>cmake --preset windows-release -DCLIO_CTE_ENABLE_FUSE_ADAPTER=ON
PS>cmake --build build --config Release

Dependencies come from vcpkg; set VCPKG_ROOT first. FUSE on Windows has the Defender note and the -o uid=-1,gid=-1 option for git.

Source presets and options

  • release-fuse: Linux CPU build with the adapter, into build.
  • release-mac-fuse: macFUSE build, into build-mac-fuse.
  • release-adapter: MPI, HDF5 VOL, ADIOS2 and FUSE adapters together.
  • CLIO_CTE_ENABLE_FUSE_ADAPTER (default OFF): the option the presets set. When the FUSE library is missing, the build skips the adapter with a warning instead of failing, so check the configure output.
  • CLIO_CORE_ENABLE_CTE (default ON): the filesystem module is part of the CTE and needs it.

Install with cmake --install build --prefix <prefix> and put <prefix>/bin on PATH.

Check that it works

Start the runtime, mount, write a file through the mount, and unmount. On Linux:

shell
$ clio_run start &amp;
$ mkdir -p ~/clio-mnt
$ CLIO_WITH_RUNTIME=0 clio_cte_fuse ~/clio-mnt -f &amp;
$ echo hello &gt; ~/clio-mnt/hello.txt
$ cat ~/clio-mnt/hello.txt
hello
$ fusermount3 -u ~/clio-mnt
$ clio_run stop

On Windows mount a drive letter (clio_cte_fuse Z: -f) in a second PowerShell window with $env:CLIO_WITH_RUNTIME = "0", and stop the daemon with Stop-Process -Name clio_cte_fuse. If clio_cte_fuse reports that its binary was not found, your install does not include the adapter; use one of the methods above that does.

Next: Quickstart.