partyfuse.py
Thepartyfuse.py client mounts a copyparty server (or any HTTP server) as a local filesystem using FUSE.
Synopsis
Description
partyfuse provides read-only filesystem access to a copyparty server with excellent performance:- 1 GiB/s reading large files
- 27,000 files/sec copying small files
- 700 folders/sec traversing directories
- Smart caching for optimal performance
- Support for multiple HTTP server types
Requirements
Linux
macOS
Windows
Required Arguments
Remote copyparty URL to mount.Examples:
http://192.168.1.69:3923/https://files.example.com/music/http://server.local:3923/share/
Local directory or drive letter to mount on.Linux/macOS:
./mountpoint or /mnt/copypartyWindows: M: or .\mountpointAuthentication
Password for authentication.Can be:
- Plain password:
-a hunter2 - Username:password if
--usernamesenabled:-a alice:hunter2 - Path to file:
-a $~/.copyparty-pass
TLS/SSL Options
Path to CA certificate or server certificate to verify.Example:
-te /path/to/cert.pemRequire correct hostname in certificate.
Disable TLS certificate verification (insecure).
HTML Parser Options
Which HTML parser to use for non-copyparty servers.Values:
cpp- copyparty (default, uses JSON API)nginx- nginx autoindexiis- Microsoft IIS
Cache Options
Directory cache - maximum number of cached directories.Recommendation: Keep larger than maximum directory depth.Set to
0 to disable caching (not recommended).Directory cache - expiration time in seconds.Cached directory listings are considered stale after this time.
File cache - number of data blocks to cache.Each block is up to 1 MiB. Higher values improve performance for:
- Small reads (4K - 64K typical on Windows)
- Repeated access to same file regions
- Windows:
12-24(uses 4K and 64K reads) - Linux:
8-16(typically uses 128K reads)
Logging Options
Quiet mode - minimal output.
Debug/verbose mode - detailed logging.
Only show recent messages (good for Windows terminals).
Write logs to file (automatically enables
--slowterm).Example: --logf /var/log/partyfuse.logFUSE Options
Allow other users to access the mounted filesystem (
-o allow_other).Note: May require FUSE configuration changes.Allow mounting over a non-empty directory (
-o nonempty).Examples
Basic mount
./music directory.
Mount with authentication
/mnt/remote.
Windows mount
Mount with custom cache settings
Mount nginx server
Secure mount with logging
Debug mode
Performance Tips
Cache Tuning
-
Directory cache (
-cdn,-cds):- Increase
-cdnfor deep directory trees - Increase
-cdsfor mostly-static content - Decrease
-cdsfor frequently changing content
- Increase
-
File cache (
-cf):- Windows needs higher values (12-24) due to small read sizes
- Linux can use lower values (8-16)
- Increase for better performance, decrease to save RAM
- Each cached block is up to 1 MiB
Network Performance
- Use
-qto reduce CPU usage from logging - For slow networks, increase
-cfto reduce round-trips - For local network, default settings are usually optimal
Platform-Specific
Windows:- Use
--slowtermfor better terminal responsiveness - Recommended:
-cf 16or higher - Consider registry tweaks to disable thumbnails and folder type detection
- Default settings are usually optimal
- For NFS re-export, may need to adjust cache settings
- Use
--slowtermif terminal is slow - OSXFUSE/macFUSE must be installed first
Technical Details
Caching Strategy
partyfuse uses intelligent caching:-
Directory Cache:
- Caches directory listings
- LRU eviction when limit reached
- Time-based expiration
-
File Cache:
- Caches file data blocks (up to 1 MiB each)
- Adaptive range expansion based on access patterns:
- Small files: ±64K padding
- Medium files: ±256K to 4 MiB padding
- Large sequential reads: up to 8 MiB chunks
- Smart partial matching (car/cdr) to minimize downloads
HTTP Range Requests
partyfuse uses HTTP byte-range requests to download only needed data:- Requests are padded to cache surrounding data
- Multiple small reads are coalesced when possible
- Large sequential access triggers bigger chunks
Server Compatibility
Works with:- copyparty - Full support via JSON API (best performance)
- nginx - Via autoindex HTML parsing
- IIS - Via directory listing HTML parsing
- Apache - May work with directory indexes
- Any HTTP server with directory listings
Limitations
- Read-only - No write support (use WebDAV or SFTP for writes)
- No extended attributes - Standard file metadata only
- No hardlinks - Each file appears once
- Static content - Cache may show stale data (adjustable with
-cds)
Troubleshooting
Mount fails
-
Check FUSE is installed:
-
Check permissions:
-
Try with
--nonemptyif directory not empty
Slow performance
- Increase file cache:
-cf 24 - Increase directory cache:
-cdn 48 - Check network latency to server
- Enable quiet mode:
-q
Stale data
- Decrease cache time:
-cds 0.5 - Or remount to clear cache
Windows issues
- Install WinFsp from official site
- Use
--slowtermfor better terminal performance - Try drive letter mount instead of directory