cat) can read it, not just MIRAGE commands. OS
support depends on the SDK’s FUSE binding: Python uses
mfusepy (ctypes over libfuse), Node
uses @zkochan/fuse-native
(a native addon), and browsers cannot mount filesystems at all.
Matrix
Per-OS install guides: macOS, Linux,
Windows. SDK wiring:
Python FUSE setup,
TypeScript FUSE setup.
What the labels mean
- Supported, CI-gated (Linux). The FUSE integration battery (both SDKs, real kernel mounts, including size-unknown API files) runs on every change and gates merges.
- Supported (macOS). Same code paths, verified on real macFUSE kext mounts; hosted CI runners cannot approve kernel extensions, so macOS coverage is local rather than gated. Remember the one-mount-per-process limit.
- Experimental (Windows, Python only). The full battery passes over WinFsp in an advisory CI job (not merge-gating). Windows conventions (unmount at process exit, mount-level ownership, stat-opens-a-handle) are documented on the Windows page. Write-heavy flows and symlinks are not yet exercised there.
- Not supported (Windows, TypeScript).
@zkochan/fuse-nativeonly targets macOS and Linux; its legacy Windows path builds against the unmaintained Dokany-basedfuse-shared-library-win32rather than WinFsp.
Platform quirks at a glance
The size-unknown semantics themselves (stat 0 until open, full content on
read, real size after open) are identical across SDKs; see
Python or
TypeScript
for the per-tool table.