hassan@alsallam:~/projects/barq$ bat README.md

Barqبرق

Native download manager with segmented acceleration and a browser extension

Working build2026linux-appsource: private · ask me
Download list with active segmented transfers
Download list with active segmented transfers
Download details showing per-segment progress
Download details showing per-segment progress
Download details panel overlaid on the main list
Download details panel overlaid on the main list

What it is

Barq is my attempt to rebuild Internet Download Manager’s acceleration on Linux as a native app. Barq means lightning in Arabic. I wanted the real segmented-download algorithm, not just parallel connections, wrapped in a GTK4 interface and a browser extension that actually intercepts downloads.

The engine lives in barq-core, a library with zero GTK dependencies built on tokio and reqwest. It uses a connection-slot model where bounded sub-range requests ride keep-alive connections, and a segment’s end is moved by bisection so a connection is never aborted mid-flight. Progress is checkpointed to a .barq sidecar next to a preallocated .part file, which is what makes resume byte-perfect after a hard kill. A regression test guards roughly a 6x speedup over a single connection.

The workspace also has barq-host, a native-messaging shim that forwards captured URLs to the app over D-Bus, plus an MV3 extension shared across Chromium and Firefox.

Features

Stack

RustGTK4libadwaitatokioreqwestSQLiteWebExtension MV3

~22,000 lines of Rust · ~6x speedup vs a single connection · 65 tests