Skip to content

Release v3.8.3

Choose a tag to compare

@Leona-Wang Leona-Wang released this 20 Jan 12:51
· 73 commits to main since this release

๐Ÿš€ What's New in v3.8.3

๐Ÿ”Œ Embedded Mode: VFS & Event Hooks

This release introduces powerful tools for developers to integrate ffl into other applications (including our upcoming Android version).

  • Virtual File System (--vfs):
    You can now map specific files or folders to internal vfs:// URIs. This allows ffl to serve content from abstract sources (like Android's content:// providers) as if they were standard files.
  • Event Hooks (--hook):
    Monitor transfer status in real-time without parsing CLI output.
    • File Mode: Pass a file path (e.g., --hook logs.jsonl) to stream events as JSON Lines.
    • Webhook Mode: Pass a URL (e.g., --hook http://localhost:8080/event) to POST events via HTTP.
      This makes ffl incredibly easy to wrap or embed inside other software.

๐Ÿ” Security & Privacy

  • Environment Variable for Passwords:
    Added support for FFL_AUTH_PASSWORD. You can now set the authentication password via environment variable to keep it out of your shell history and process list.

๐Ÿ› Bug Fixes & Improvements

  • Robust DTLS Fragmentation (Low-MTU Fix):
    Resolved a connectivity issue where APE builds (especially on Firefox) would hang on specific tunnels (e.g., 852) or networks with strict MTU limits. The P2P handshake now correctly handles large packet fragmentation, ensuring direct P2P connections succeed reliably without falling back to relay.
  • Concurrent Stdin Streaming:
    Fixed a race condition where multiple recipients downloading from stdin simultaneously could cause data corruption or connection drops. Streaming to multiple peers is now robust.
  • Cleaner Shutdown:
    Silenced spurious asyncio warnings (e.g., "Task was destroyed but it is pending!") that appeared during exit.
  • General UI Polish:
    Various minor tweaks to log messages for better clarity.

๐Ÿ“ฆ Which file should I download?

  • If you want a single file that runs everywhere, across OSes? choose APE (ffl.com / fflo.com).
  • If you want platform-optimized size/perf, choose a native build. ๐Ÿ™‚
  • On Linux and unsure about glibc (or on musl)? -> APE ffl.com is the safest choice.

โ„น๏ธ On the first run of a native build, the app performs an internal extraction step (by pyapp), so startup is temporarily slower once.
The install scripts pre-warm this step; manual downloads will see the one-time delay.
APE builds (ffl.com / fflo.com) are single-file and do not have this first-run warmup.


Windows (native)

  • x86_64 โ†’ ffl-v3.8.3-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-v3.8.3-manylinux_glibc2.39-x86_64-linux.tar.gz
    • Best for newer distros (e.g., Ubuntu 24).
  • glibc 2.28+ โ€” widest compatibility

    • ffl-v3.8.3-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-v3.8.3-aarch-darwin.tar.gz
  • Intel (x86_64) โ†’ ffl-v3.8.3-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.