fuse-symlink is a FUSE filesystem that adds symlink support to a directory tree, even if the underlying filesystem does not support symlinks.
Caution
This is an experimental project and should not be used in production. Use at your own risk - it is likely data will be lost.
This can be useful when mounting cloud storage, but you want to use virtual environments (e.g. python venv, npm, etc.) that require symlinks to work properly.
Most syscalls are passed through to the underlying filesystem, except ones which would be affected by the symlinks (e.g. readdir
, readlink
, stat
, etc.). The symlinks are stored in a CSV file, which is created when the filesystem is mounted. The CSV file contains the symlink target and the symlink name.
uv venv
uv run python fuse_overlay.py /path/to/mountpoint --root /path/to/underlying/fs --metadata /path/to/underlying/fs/symlinks.csv -d -o allow_other