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. Theclio_cte_fuseconsole script exists on every platform, but on macOS the binary behind it is absent. - conda (
iowarpchannel): built from thereleasepreset, which does not enable the adapter. Build the recipe yourself with a FUSE preset to get it. - Spack:
spack install iowarp +fuse. Thefusevariant is off by default, depends onlibfuse@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/fusepassed 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:
$ 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
$ 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:
PS>cmake --preset windows-release -DCLIO_CTE_ENABLE_FUSE_ADAPTER=ON
PS>cmake --build build --config ReleaseDependencies 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, intobuild.release-mac-fuse: macFUSE build, intobuild-mac-fuse.release-adapter: MPI, HDF5 VOL, ADIOS2 and FUSE adapters together.CLIO_CTE_ENABLE_FUSE_ADAPTER(defaultOFF): 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(defaultON): 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:
$ clio_run start &
$ mkdir -p ~/clio-mnt
$ CLIO_WITH_RUNTIME=0 clio_cte_fuse ~/clio-mnt -f &
$ echo hello > ~/clio-mnt/hello.txt
$ cat ~/clio-mnt/hello.txt
hello
$ fusermount3 -u ~/clio-mnt
$ clio_run stopOn 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.