zFTPd 1.6.0 is a major update to the project, introducing a new transfer architecture, expanded PS4/PS5 platform support, a redesigned ZHTTP interface, game management functionality, and a substantial internal refactor.
Compared to v1.5.0, this release includes 40 commits and changes across more than 200 files.
Transfer subsystem
- Replaced the previous custom download stack with a unified transfer manager.
- Added HTTP and HTTPS downloads through libcurl.
- Added FTP and FTPS remote downloads.
- Added
nfs://remote download support on supported PS5 builds. - Added BitTorrent and magnet transfer support.
- Added concurrent transfer scheduling and queue management.
- Added persistent transfer state and interrupted-download resume support.
- Downloads now use
.zftpd.partfiles or directories until completion. - Added transfer progress and status reporting through the HTTP API.
- Fixed process termination caused by
SIGPIPEwhen aborting a remote download.
FTP server
- Split FTP commands into dedicated control, listing, filesystem, transfer, extension, and data-connection modules.
- Added FTP instance management.
- Refactored transfer parameter handling.
- Improved FTP path and filesystem handling.
- Improved server-side copy and move operations.
- Added a deeper parallel-read pipeline for server-side copies.
- Fixed
CHMODhandling for files and directories. Resolves #9. - Fixed
LIST -ahandling for curlftpfs compatibility by @aydencharles in #8
ZHTTP and Web UI
- Redesigned the browser interface.
- Reorganized the frontend into dedicated modules for files, transfers, games, jobs, system controls, and settings.
- Split the HTTP server into listener, response streaming, upload, JSON, and routing components.
- Split HTTP API handlers by subsystem.
- Added common HTTP API primitives and unified route matching.
- Added
/api/notifyfor custom PS4/PS5 system notifications. Resolves #10. - Added streaming ZIP generation for multiple files and directories.
- Added archive extraction through the HTTP API.
- Added optional decrypted downloads for protected SELF files.
- Added additional system and platform control endpoints.
Game management
- Added game catalog support.
- Added game launch support.
- Added package installation support.
- Added
app.dbrepair functionality. - Added decrypted game dumping with progress reporting and cancellation.
- Added PS5 title detection through
appmeta/param.json. - Fixed title detection for single-package
app.pkginstallations. - Package installation support can now be excluded entirely at build time.
Archive subsystem
- Added a streaming ZIP writer.
- Added common archive path handling.
- Reworked the built-in ZIP extraction implementation.
- Added HTTP archive creation and extraction APIs.
- Archives can be streamed directly to the client without first creating the complete archive on console storage.
File I/O
- Introduced a shared file I/O layer used by FTP and HTTP.
- Split filesystem operations into dedicated directory, copy, tree, and sendfile implementations.
- Improved server-side copy behavior.
- Added cross-device move fallback.
- Reduced duplication between protocol-specific filesystem handlers.
PS4 and PS5 platform support
- Centralized PS5 firmware-specific kernel offsets.
- Extended the PS5 firmware table through firmware 13.60.
- Added platform abstractions for disc operations, volume handling, DNS filtering, and instance control.
- Replaced the PS4 native HTTP/TLS download path with the libcurl-based transfer backend.
- Added PacBrew PS4 portlib integration for HTTPS downloads. Resolves #12.
- Added embedded CA bundle support while retaining TLS certificate verification.
- Added PS4 PIE payload support.
- Improved PS4 and PS5 dependency handling.
- Added conditional PS5 install-helper compilation.
Rest Mode and reliability
- Added Rest Mode listener recovery.
- Added daemon instance tracking to detect stale connections after resume.
- Improved listener recovery after console network state changes.
- Fixed
CHMODand copy regressions. - Hardened PID parsing and HTTP API validation.
- Improved failure handling across transfer and filesystem operations.
Internal architecture
- Reorganized the source tree by subsystem.
- Split the previous monolithic FTP command implementation into dedicated modules.
- Split the HTTP API into archive, filesystem, process, system, transfer, dump, and game components.
- Modularized game catalog, metadata, installation, launch, and administration code.
- Consolidated platform-specific functionality under dedicated platform modules.
- Removed obsolete HTTP, curl, TLS, and file I/O implementations superseded by the new architecture.
Build and CI
- Reworked the Makefile and build configuration.
- Improved optional feature handling for ZHTTP, package installation, curl, NFS, and torrent support.
- Fixed non-web builds.
- Fixed build issues with newer Clang versions.
- Updated the GitHub Actions release workflow.
- Added PS4 dependency setup and build integration to CI.
Documentation
- Expanded API documentation.
- Added architecture documentation.
- Added dependency documentation.
- Added game dumping documentation.
- Added package installation documentation.
- Added Rest Mode documentation.
- Added structured bug report, console crash, and feature request templates.
- Added a pull request template.
Resolved issues
- #9 — Unable to change file or directory permissions to 777
- #10 — HTTP endpoint for custom PS4/PS5 system notifications
- #12 — PS4 ZHTTP HTTPS downloads through PacBrew libcurl
Download stats
New Contributors
- @aydencharles made their first contribution in #8
Full Changelog: v1.5.0...v1.6.0