Skip to content

zftpd v1.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:14

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.part files or directories until completion.
  • Added transfer progress and status reporting through the HTTP API.
  • Fixed process termination caused by SIGPIPE when 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 CHMOD handling for files and directories. Resolves #9.
  • Fixed LIST -a handling 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/notify for 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.db repair 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.pkg installations.
  • 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 CHMOD and 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

Release Downloads

New Contributors

Full Changelog: v1.5.0...v1.6.0