diff --git a/Extensions/Browser b/Extensions/Browser index 2ee1f37..510d92e 160000 --- a/Extensions/Browser +++ b/Extensions/Browser @@ -1 +1 @@ -Subproject commit 2ee1f37921589f52c02007a84d3ee3d49110c89f +Subproject commit 510d92eb6f040353768ce73c4a0bc58573bf2ba5 diff --git a/README.md b/README.md index 1b33c8e..966a244 100644 --- a/README.md +++ b/README.md @@ -1,107 +1,80 @@ -
- Firelink +# Firelink - # Firelink +> A fast, focused desktop download manager for macOS, Windows, and Linux. - **A fast, focused desktop download manager for macOS, Windows, and Linux.** +[![Latest release](https://img.shields.io/github/v/release/nimbold/Firelink?style=flat-square)](https://github.com/nimbold/Firelink/releases/latest) +[![CI](https://img.shields.io/github/actions/workflow/status/nimbold/Firelink/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/nimbold/Firelink/actions/workflows/ci.yml) +[![License](https://img.shields.io/github/license/nimbold/Firelink?style=flat-square)](LICENSE) +[![macOS](https://img.shields.io/badge/macOS-Apple%20silicon-111111?style=flat-square&logo=apple&logoColor=white)](#installation) +[![Windows](.github/badges/windows.svg)](#installation) +[![Linux](https://img.shields.io/badge/Linux-x64-FCC624?style=flat-square&logo=linux&logoColor=black)](#installation) - [![Version](https://img.shields.io/badge/version-1.2.0-6f42c1?style=flat-square)](https://github.com/nimbold/Firelink/releases) - [![macOS](https://img.shields.io/badge/macOS-111111?style=flat-square&logo=apple&logoColor=white)](#supported-platforms) - [![Windows](.github/badges/windows.svg)](#supported-platforms) - [![Linux](https://img.shields.io/badge/Linux-FCC624?style=flat-square&logo=linux&logoColor=black)](#supported-platforms) - [![License](https://img.shields.io/github/license/nimbold/Firelink?style=flat-square)](LICENSE) - [![CI](https://img.shields.io/github/actions/workflow/status/nimbold/Firelink/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/nimbold/Firelink/actions/workflows/ci.yml) - - [Features](#features) · [Install](#installation) · [Browser Extension](#browser-extension) · [Development](#development) · [Changelog](CHANGELOG.md) -
- -
- -
+

Firelink dark theme main window Firelink dark theme add window Firelink light theme main window Firelink light theme add window +

-
- View more screenshots -
- Firelink dark theme settings - Firelink light theme settings -
-
+## What is Firelink? -## Overview +Firelink manages direct downloads, browser captures, media, playlists, queues, and scheduling from one desktop app. -Firelink manages direct downloads, browser captures, media extraction, playlists, scheduling, and file placement from one desktop app. It uses a Rust/Tauri backend with a React and TypeScript interface, and bundles the engines needed for its download and media workflows. +It uses a Rust and Tauri backend with a React and TypeScript interface. Required download and media engines are bundled with the app. -The current desktop release is **1.2.0**, paired with [Firelink Companion 2.0.6](https://github.com/nimbold/Firelink-Extension/releases). The release focuses on a more dependable download table and queue, better browser handoffs, broader localization, and safer packaged builds. +## Status + +Firelink `1.2.0` is the latest desktop release. + +It is paired with [Firelink Companion `2.0.6`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.0.6). + +The project is actively maintained. See the [changelog](CHANGELOG.md) for release history and current work. + +Translations are available for English, Simplified Chinese, Hebrew, Persian, Ukrainian, and Russian. Translation corrections are welcome. ## Features -- **Segmented downloads** with aria2, retries, speed limits, and connection controls. -- **Media downloads** with yt-dlp, FFmpeg, Deno, live progress, speed, and ETA. -- **Playlist downloads** for YouTube playlists with queueing and efficient rendering for large lists. -- **Customizable download table** with selectable columns, sorting, drag-to-reorder, and bulk actions. -- **Add window** for metadata, duplicate handling, captured links, clipboard-prefilled URLs, save locations, and live connection limits. -- **Persistent queues** with pause, resume, retry, redownload, scheduling, and multi-select actions. -- **Optional batch folders** for grouping related multi-link downloads in a new, editable folder. -- **File organization** with categories, default folders, per-download overrides, and reveal/trash actions. -- **Browser handoff** through local pairing, signed requests, Add-window review, replay protection, and server checks. -- **Desktop integration** with tray controls, notifications, sounds, sleep prevention, and secure credential storage. -- **Localization** for English, Simplified Chinese, Hebrew, Persian, Ukrainian, and Russian, with RTL support. Non-English translations are LLM-assisted and welcome user review. -- **Diagnostics** with engine health checks, structured logs, and package verification. +- Segmented HTTP and HTTPS downloads with retries, speed limits, and connection controls. +- Media and playlist downloads through yt-dlp, FFmpeg, and Deno. +- An Add window for metadata, duplicate handling, save locations, and download options. +- Persistent queues with pause, resume, retry, redownload, and scheduling. +- A customizable download table with sorting, column selection, reordering, and bulk actions. +- File organization with categories, default folders, and per-download locations. +- Browser handoff through local pairing and signed requests. +- Tray controls, notifications, sounds, sleep prevention, and secure credential storage. +- RTL support for Hebrew and Persian. ## Installation -Download desktop builds from [GitHub Releases](https://github.com/nimbold/Firelink/releases). +Download the [latest Firelink release](https://github.com/nimbold/Firelink/releases/latest). | Platform | Package | Notes | | --- | --- | --- | -| **macOS Apple silicon** | `.dmg` | Not notarized. If macOS blocks the first launch, approve Firelink in **System Settings -> Privacy & Security**. | -| **Windows x64** | NSIS `.exe` installer | Unsigned. Windows SmartScreen may warn until code signing is added. | -| **Windows x64 portable** | `.zip` archive | Extract to a writable folder and launch `firelink.exe`. See the notes below. | -| **Linux x64** | `.deb`, `.rpm`, or `.AppImage` | Choose the package for your distribution, or use AppImage as the self-contained option. | +| macOS Apple silicon | `.dmg` | Ad-hoc signed and not notarized. macOS may require approval in **System Settings -> Privacy & Security**. | +| Windows x64 | NSIS `.exe` | Unsigned. Windows SmartScreen may display a warning. | +| Windows x64 portable | `.zip` | Extract to a writable folder and launch `firelink.exe`. | +| Linux x64 | `.deb`, `.rpm`, or `.AppImage` | Choose the package for your distribution, or use AppImage. | -All packages include aria2, yt-dlp, FFmpeg, Deno, and SQLite support. You do not need to install those engines separately. +All packages include aria2, yt-dlp, FFmpeg, Deno, and SQLite support. No separate engine installation is required.
Windows portable ZIP notes -The portable ZIP is a secondary distribution. Extract it to a writable folder and launch `firelink.exe`: - -- Keep it out of `Program Files`, read-only media, and folders that block SQLite or WebView writes. -- Settings, queues, logs, and WebView data stay beside the executable under `data/`. -- Close Firelink before moving or copying the folder, and close the installed app before launching the portable copy. -- Credentials, browser cookies, and URL query or fragment data are not saved in portable queue records. -- Saved site passwords remain in the Windows credential store and are not copied into the archive. -- The folder contains the extension pairing credential. Treat it as sensitive and do not share it. -- Saved absolute download locations may need to be selected again after moving the folder to another drive. +- Keep the folder writable. Avoid `Program Files` and read-only media. +- Settings, queues, logs, and WebView data are stored beside the executable in `data/`. +- Close Firelink before moving or copying the folder. +- Treat the folder as sensitive because it contains the extension pairing credential. - The installer remains the supported path for `firelink://` browser launch registration.
-## Browser Extension +## Browser integration -[Firelink Companion](https://github.com/nimbold/Firelink-Extension) connects browser downloads, links, and media pages to Firelink. Captured downloads always open Firelink's Add window so you can review them before starting or queuing them. +[Firelink Companion](https://github.com/nimbold/Firelink-Extension) connects browser downloads, links, and media pages to Firelink. -It provides automatic capture for regular downloads, explicit **Fetch media** actions, link and selected-text context menus, Firefox and Chromium support, signed local requests, and a safe browser fallback when Firelink is unavailable. +Captured links open Firelink's Add window for review before they are started or queued. -

- Install Firelink Companion from Firefox Add-ons -    - Read manual Chromium install instructions -

- -Install the extension, open Firelink, and pair it from **Settings -> Integrations**. Use the latest [Firelink Companion 2.0.6 release](https://github.com/nimbold/Firelink-Extension/releases) with Firelink 1.2.0. Chromium users can load `firelink-chromium.zip` by following the [manual installation instructions](https://github.com/nimbold/Firelink-Extension#manual-chromium-installation). - -## Supported Platforms - -| Target | Status | -| --- | --- | -| **macOS arm64** | Supported with a native build, bundled-engine checks, launch smoke test, and ad-hoc-signed DMG workflow. | -| **Windows x64** | Supported with a native build, engine checks, installer smoke test, NSIS installer, and portable ZIP. | -| **Linux x64** | Supported with native builds, bundled-engine checks, package/AppImage smoke tests, `.deb`, `.rpm`, and AppImage packages. | +See the [Companion README](https://github.com/nimbold/Firelink-Extension#readme) for browser installation, pairing, and privacy details. ## Development @@ -112,34 +85,52 @@ Install the extension, open Firelink, and pair it from **Settings -> Integration - Rust and Cargo - [Tauri 2 platform prerequisites](https://v2.tauri.app/start/prerequisites/) -Clone the repository with its browser-extension submodule: +### Quick start ```sh git clone --recurse-submodules https://github.com/nimbold/Firelink.git cd Firelink npm install +npm run tauri dev ``` -Launch the app with `npm run tauri dev`. Run the core checks with: +Run the main checks with: ```sh node --test scripts/*.node-test.js npm test -- --run npm run build -cd src-tauri -cargo test --all-targets +cd src-tauri && cargo test --all-targets ``` See [RELEASE.md](RELEASE.md) for engine provisioning, packaging, and release verification. -## Help and Project Status +## Contributing and support -- Report bugs or request improvements in [GitHub Issues](https://github.com/nimbold/Firelink/issues). +- Report bugs and request features in [GitHub Issues](https://github.com/nimbold/Firelink/issues). +- Open focused pull requests with tests for behavior changes. +- Report translation corrections in an issue or pull request. - Read [CHANGELOG.md](CHANGELOG.md) for release history. -- The project is actively maintained, but macOS builds are not notarized and Windows installers are not code-signed yet. -## Technology and License +## Credits -Firelink is built with [Tauri 2](https://tauri.app/), [Rust](https://www.rust-lang.org/), [Tokio](https://tokio.rs/), [React](https://react.dev/), [TypeScript](https://www.typescriptlang.org/), [Zustand](https://zustand-demo.pmnd.rs/), [SQLite](https://www.sqlite.org/), [aria2](https://aria2.github.io/), [yt-dlp](https://github.com/yt-dlp/yt-dlp), [FFmpeg](https://ffmpeg.org/), and [Deno](https://deno.com/). +Firelink is maintained by [NimBold](https://github.com/nimbold). -Firelink is available under the [MIT License](LICENSE). +Core technologies: + +- [Tauri 2](https://v2.tauri.app/), [Rust](https://www.rust-lang.org/), [Tokio](https://tokio.rs/) +- [React](https://react.dev/), [TypeScript](https://www.typescriptlang.org/), [Zustand](https://zustand-demo.pmnd.rs/) +- [SQLite](https://www.sqlite.org/) + +Bundled engines: + +- [aria2](https://aria2.github.io/) +- [yt-dlp](https://github.com/yt-dlp/yt-dlp) +- [FFmpeg](https://ffmpeg.org/) +- [Deno](https://deno.com/) + +Font licenses, engine versions, source references, and third-party notices are documented in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). + +## License + +Firelink is available under the [MIT License](LICENSE). Bundled tools and fonts retain their own licenses.