Files
Firelink/README.md
T
2026-06-01 05:08:07 +03:30

3.0 KiB

Firelink

Firelink is a clean SwiftUI download manager for Apple Silicon Macs. The goal is to bring the practical parts of IDM/FDM-style download management to macOS with a native interface, segmented downloads, queue control, automatic file organization, and credential-aware transfers.

This project is early, but it already has a working native prototype and an aria2c-backed download engine.

Features

  • Native SwiftUI macOS interface.
  • Segmented downloads with a per-file connection count that also controls the split count.
  • Multiple files downloading at the same time.
  • Queue-based downloads with drag-and-drop priority ordering.
  • Native macOS Settings window, available from App menu > Settings and the main toolbar.
  • Configurable default per-server connection count.
  • Configurable parallel file download limit in Settings.
  • Per-batch connection controls in the Add Downloads window.
  • Automatic save folders under ~/Downloads:
    • Musics
    • Movies
    • Compressed
    • Pictures
    • Documents
    • Other
  • Custom download locations per file category.
  • Broad file extension detection for audio, video, archive, image, and document formats.
  • HTTP, HTTPS, FTP, and SFTP URL support through aria2c.
  • Site login rules with URL pattern matching and Keychain-stored passwords.
  • Optional prevention of system sleep while files are downloading, while still allowing display sleep.
  • Pause, resume, cancel, delete, progress, speed, ETA, and connection count display.
  • Release .app bundle script for local macOS builds.

Engine

This first version uses aria2c as the download engine. It is a better fit than plain curl for the requested IDM/FDM-style behavior because it has segmented downloads, resumable transfers, concurrent downloads, HTTP/FTP/SFTP support, and username/password options built in.

Firelink uses one per-file connection value for both aria2c split count and same-server connection count. That keeps the download behavior close to the familiar IDM-style model: choosing 8 connections splits the file into 8 parallel segments.

Requirements

Install the engine:

brew install aria2
  • macOS 14 or newer.
  • Apple Silicon Mac.
  • Swift 6 toolchain.
  • aria2c installed with Homebrew, or bundled into the app resources later.

Run

swift run Firelink

Build a release .app bundle:

make app
open build/Firelink.app

Because the current machine only has Command Line Tools selected, this repository is set up as a Swift Package with a bundling script rather than a generated Xcode project. Opening the package in Xcode will still give you a native macOS app workflow.

Roadmap

  • Persist download history and queue state.
  • Improve site-login editing and migration tools.
  • Add browser integration and URL capture.
  • Add scheduler rules and speed limits.
  • Add checksum verification.
  • Add richer failure recovery and retry policies.
  • Add unit tests for file classification, queue behavior, and aria2c progress parsing.

License

Firelink is released under the MIT License. See LICENSE.