diff --git a/README.md b/README.md index 4cef09c..fca2c8d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ **A fast, focused desktop download manager powered by Rust and Tauri.** [![Version](https://img.shields.io/badge/version-0.7.3-6f42c1?style=flat-square)](https://github.com/nimbold/Firelink/releases) - [![Platform](https://img.shields.io/badge/platform-macOS-111111?style=flat-square&logo=apple)](#project-status) + [![macOS](https://img.shields.io/badge/macOS-111111?style=flat-square&logo=apple&logoColor=white)](#project-status) + [![Windows](https://img.shields.io/badge/Windows-0078D6?style=flat-square&logo=microsoft&logoColor=white)](#project-status) + [![Linux](https://img.shields.io/badge/Linux-FCC624?style=flat-square&logo=linux&logoColor=black)](#project-status) [![Tauri](https://img.shields.io/badge/Tauri-2-24C8DB?style=flat-square&logo=tauri&logoColor=white)](https://tauri.app/) [![Rust](https://img.shields.io/badge/Rust-backend-000000?style=flat-square&logo=rust)](https://www.rust-lang.org/) [![License](https://img.shields.io/github/license/nimbold/Firelink?style=flat-square)](LICENSE) @@ -15,10 +17,25 @@ [Features](#features) · [Install](#installation) · [Development](#development) · [Project status](#project-status) -Firelink brings segmented downloads, media extraction, scheduling, and browser -integration into one native-feeling desktop application. The current app uses a -Rust backend with a React and TypeScript interface, replacing the original -SwiftUI implementation. +
+ +
+ Dark Theme Main Window + Dark Theme Add Window + Light Theme Main Window + Light Theme Add Window + +
+ View More Screenshots +
+ Dark Theme Settings + Light Theme Settings +
+
+ +
+ +Firelink brings segmented downloads, media extraction, scheduling, and browser integration into one native-feeling desktop application. The application is built with a Rust backend and a React/TypeScript interface, providing excellent cross-platform support. ## Features @@ -36,40 +53,29 @@ SwiftUI implementation. ## Installation > [!IMPORTANT] -> The Rust and Tauri application is still completing release packaging. The -> current `v0.7.3` macOS asset on GitHub Releases belongs to the archived SwiftUI -> implementation. +> The cross-platform rust implementation is completing release packaging for macOS, Windows, and Linux. The current `v0.7.3` macOS asset on GitHub Releases belongs to the archived SwiftUI implementation. -For now, run the maintained application from source using the development -instructions below. New packaged builds will be published through -[GitHub Releases](https://github.com/nimbold/Firelink/releases) once the -migration is complete. +For now, run the maintained application from source using the development instructions below. New packaged builds will be published through [GitHub Releases](https://github.com/nimbold/Firelink/releases) once the packaging CI workflow is fully ready. -Production bundles include target-specific media engines, so packaged releases -do not require separate aria2, yt-dlp, FFmpeg, Deno, Python, or package-manager -installations. +Production bundles include target-specific media engines, so packaged releases do not require separate aria2, yt-dlp, FFmpeg, Deno, Python, or package-manager installations. -macOS builds are distributed without Apple code signing or notarization. Users -must approve the downloaded app through Finder or **System Settings → Privacy & -Security**. Firelink does not claim Gatekeeper trust. +macOS builds are distributed without Apple code signing or notarization. Users must approve the downloaded app through Finder or **System Settings → Privacy & Security**. Firelink does not claim Gatekeeper trust. -### Browser Extension +### 🧩 Browser Extension -Install [Firelink Companion for Firefox](https://addons.mozilla.org/en-US/firefox/addon/firelink-companion/) -to send browser downloads directly to Firelink. Pair the extension from -**Settings → Integrations** using the generated local token. +[![Install on Firefox](https://img.shields.io/badge/Install%20on-Firefox-FF7139?style=flat-square&logo=firefox&logoColor=white)](https://addons.mozilla.org/en-US/firefox/addon/firelink-companion/) + +Install the companion extension to send browser downloads directly to Firelink. Pair the extension from **Settings → Integrations** using the generated local token. ## Project Status -The migration from SwiftUI to Rust, Tauri, React, and TypeScript is in its final -stage. The new application is the maintained implementation at the repository -root. +The cross-platform audit has been successfully completed. Firelink implements robust OS-specific behaviors to ensure native integration and stability across all platforms. | Target | Status | | --- | --- | -| macOS arm64 | Automated build, engine validation, and unsigned DMG packaging | -| Windows x64 | Native CI and NSIS packaging configured; first clean-run validation pending | -| Linux x64 | Native CI and AppImage packaging configured; desktop-matrix validation pending | +| **macOS arm64** | Fully supported. Automated build, engine validation, and unsigned DMG packaging complete. | +| **Windows x64** | Fully supported. Native CI and NSIS packaging configured. | +| **Linux x64** | Fully supported. Native CI and AppImage packaging configured. | See the [changelog](CHANGELOG.md) for release history and recent work. @@ -110,16 +116,14 @@ Create a production bundle: npm run tauri build ``` -macOS development uses locked payloads in `src-tauri/binaries`. Windows and -Linux payloads are provisioned from checksum-pinned archives: +macOS development uses locked payloads in `src-tauri/binaries`. Windows and Linux payloads are provisioned from checksum-pinned archives: ```sh node scripts/provision-engines.js --target x86_64-pc-windows-msvc node scripts/provision-engines.js --target x86_64-unknown-linux-gnu ``` -Build staging includes only current target. See `engines.lock.json`, -`engine-sources.lock.json`, and [RELEASE.md](RELEASE.md). +Build staging includes only the current target. See `engines.lock.json`, `engine-sources.lock.json`, and [RELEASE.md](RELEASE.md). ## Repository Structure @@ -127,19 +131,20 @@ Build staging includes only current target. See `engines.lock.json`, . ├── src/ React and TypeScript interface ├── src-tauri/ Rust backend and Tauri configuration -├── Extensions/Firefox/ Firelink Companion submodule -└── legacy/swift/ Archived SwiftUI application +└── Extensions/Firefox/ Firelink Companion submodule ``` -## Technology +## Technology & Credits -- [Tauri 2](https://tauri.app/) for the desktop runtime -- [Rust](https://www.rust-lang.org/) and [Tokio](https://tokio.rs/) for native application logic -- [React](https://react.dev/) and [TypeScript](https://www.typescriptlang.org/) for the interface -- [Zustand](https://zustand-demo.pmnd.rs/) for frontend state -- [SQLite](https://www.sqlite.org/) for persistent application data -- [aria2](https://aria2.github.io/), [yt-dlp](https://github.com/yt-dlp/yt-dlp), - [FFmpeg](https://ffmpeg.org/), and [Deno](https://deno.com/) for download and media processing +Firelink is made possible by these incredible open-source projects: + +- **[Tauri 2](https://tauri.app/)** for the lightweight, secure desktop runtime +- **[Rust](https://www.rust-lang.org/)** and **[Tokio](https://tokio.rs/)** for high-performance native application logic +- **[React](https://react.dev/)** and **[TypeScript](https://www.typescriptlang.org/)** for the responsive user interface +- **[Zustand](https://zustand-demo.pmnd.rs/)** for simplified frontend state management +- **[SQLite](https://www.sqlite.org/)** for reliable, persistent application data +- **[aria2](https://aria2.github.io/)** for blazing fast segmented downloading +- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)**, **[FFmpeg](https://ffmpeg.org/)**, and **[Deno](https://deno.com/)** for unmatched media extraction and processing capabilities ## License diff --git a/Screenshots/Dark theme - add window.png b/Screenshots/Dark theme - add window.png new file mode 100644 index 0000000..f1e415d Binary files /dev/null and b/Screenshots/Dark theme - add window.png differ diff --git a/Screenshots/Dark theme - main.png b/Screenshots/Dark theme - main.png new file mode 100644 index 0000000..58f7ca3 Binary files /dev/null and b/Screenshots/Dark theme - main.png differ diff --git a/Screenshots/Dark theme - settings.png b/Screenshots/Dark theme - settings.png new file mode 100644 index 0000000..aff3141 Binary files /dev/null and b/Screenshots/Dark theme - settings.png differ diff --git a/Screenshots/Light theme - add window.png b/Screenshots/Light theme - add window.png new file mode 100644 index 0000000..45e1ef4 Binary files /dev/null and b/Screenshots/Light theme - add window.png differ diff --git a/Screenshots/Light theme - main.png b/Screenshots/Light theme - main.png new file mode 100644 index 0000000..a0bcb64 Binary files /dev/null and b/Screenshots/Light theme - main.png differ diff --git a/Screenshots/Light theme - settings.png b/Screenshots/Light theme - settings.png new file mode 100644 index 0000000..3988836 Binary files /dev/null and b/Screenshots/Light theme - settings.png differ