Skip to content

Release v4.0.0

Choose a tag to compare

@Leona-Wang Leona-Wang released this 16 Jul 16:05

🎉 What's New in v4.0.0 (Major Release)

Welcome to FastFileLink v4.0.0! This major release marks a massive leap forward. We've completely rewritten the graphical user interface, aggressively refactored our core monolithic architecture into modular components, and patched critical edge cases in performance and security.

🎨 All-New UI & Multi-Share Management

  • GUI Completely Rewritten: We have fully deprecated the gooey-based graphical interface and built a brand new, modern UI from the ground up. (Note: The CLI experience remains unaffected and as powerful as ever).
  • Multi-Session GUI Management: The new UI now fully leverages our new daemon architecture behind the scenes. This means you can now launch, track, and manage multiple active share sessions simultaneously within a single, unified dashboard!
  • Jargon-Free Web UI: We've simplified the language on the download pages. Confusing technical terms (like "WebRTC" or "Relay") have been replaced with intuitive, human-friendly wording.
  • Clipboard Control: Added the --disable-clipboard flag for users who prefer the system not to automatically copy generated share links to their clipboard.

🏗️ Massive Architectural Overhaul

  • The Death of the Monolith: Server.py is no longer one giant file. It has been elegantly refactored into a modern views architecture.
  • Component Refactoring: Critical modules including Readers.py and WebRTC.py underwent major refactoring and style corrections for better maintainability.
  • Unified Share Architecture: The core Share infrastructure has been completely redesigned. The CLI and the new Daemon mode now share the exact same underlying mechanics.
  • Daemon Uploads: Building on the unified architecture, Daemon mode now fully supports --upload links.
  • Semantic File Reorganization: Core.py has been correctly renamed to FFL.py to reflect its true purpose, and all build-related scripts (Build*) have been moved to the dist directory.

⚡ Performance & Security

  • E2EE Cryptography Fix: Patched a critical security edge case related to "Unaligned Ranges No Nonce Reuse" to ensure robust End-to-End Encryption integrity.
  • HTTP Range Performance: Resolved a performance bottleneck where chunked Range downloads were unnecessarily waiting for the /complete event, significantly speeding up parallel and resumed downloads.
  • Jinja2 Optimization: Deeply enhanced our Jinja2 template integration, resulting in better rendering performance and smarter caching.
  • mDNS Detection: Fixed an issue where WebRTC struggled with .local mDNS peer detection, improving local network connectivity.

🛠️ Developer & Testing

  • Standardized E2E Tests: Test cases have been unified to consistently use _startFastFileLink for rigorous end-to-end testing, ensuring higher code quality for future updates.

Windows (native)

  • x86_64ffl-v4.0.0-x86_64-windows.zip
    Unzip to get ffl.exe.

Linux (native)

We publish two glibc baselines. Pick the highest baseline that does not exceed your system glibc:

  • glibc 2.39+ — smaller & faster

    • ffl-v4.0.0-manylinux_glibc2.39-x86_64-linux.tar.gz
    • Best for newer distros (e.g., Ubuntu 24).
  • glibc 2.28+ — widest compatibility

    • ffl-v4.0.0-manylinux_glibc2.28-x86_64-linux.tar.gz
    • Works on older distros (e.g., Ubuntu 20); larger due to additional internal linking.

⚠️ If your system is musl-based (e.g., Alpine) or you’re unsure about glibc, prefer APE ffl.com.

macOS (native)

  • Apple Silicon (arm64)ffl-v4.0.0-aarch-darwin.tar.gz
  • Intel (x86_64)ffl-v4.0.0-x86_64-darwin.tar.gz

The archive unpacks to a single ffl binary.

🧰 APE (cross-platform single file, zero external deps)

  • ffl.com — Single-file build that runs natively on Linux, macOS, Windows, FreeBSD, OpenBSD 7.3, NetBSD, BIOS, and Android (Termux).
  • fflo.com — Alternative APE build that is exactly aligned with the open-source repo (no additional/proprietary addons).
    As a result, features that require closed-source components—such as upload to server (e.g., --upload)—are not available.

For a deeper comparison between native and APE, see the README’s notes.