Repository navigation
Releases
Releases · manyeya/shard
v0.2.0
Added
- Auto retry. A download that fails waits, then goes back in the queue by itself, up to a
number of times. Each download has its own retries and wait: right-click it and choose Auto
retry…, or click Auto retry in its details. New downloads start with the defaults in Settings
(5 retries, 30 seconds apart; 0 turns it off). The list counts down to the next try
("retry 2 of 5 in 18s"), only the last failure is notified, and retries carry on after Shard
restarts. Resuming a download by hand gives it all its retries back.
Changed
- 404s and other client errors still end a run at once, but auto retry now tries the download
again after its wait. Downloads that failed before this version count as out of retries, so
they don't all start again.
Full Changelog: v0.1.0...v0.2.0
v0.1.0
The first release.
Added
- Segmented downloads. Each file comes down over up to 8 connections (1 to 32 in the Limits
panel). A connection that finishes its part takes the back half of the part with the most
left, so none sits idle while a slow one finishes; parts are never split below 256 KiB.
Connections use HTTP/1.1, so each is its own TCP connection. - Pause, resume and crash recovery.
<file>.partholds the bytes and<file>.resumehow far
each part got. The checkpoint is written only after the data it describes is synced, so after
a crash orkill -9a download resumes from at most a second back. If the file changed on the
server (by ETag or Last-Modified), Shard says so instead of splicing two versions together.
Downloads that were running when Shard quit carry on when it starts again. - Backing off when a server says no. A server that answers 429 or 503 to one connection too
many loses that connection and the rest carry on. Half a minute later Shard tries one more,
doubling the wait (up to four minutes) each time it's refused again.Retry-Afterin seconds is
honoured. 404s and other client errors fail at once instead of retrying. - Refresh an expired link. Paste a fresh link to the same file; if it's the same size, the
download keeps what it has, even when the new server tags the file differently. - Speed limit. One budget shared by every connection of every download.
- The queue. Up to 3 downloads at once (1 to 10); the rest wait, in an order you can change
(move to top, up, down, to bottom). Search the list, filter it by status or kind of file, and
sort it by newest, oldest, name, size, progress or queue order. - Schedule. A start and a stop time for the queue, and what to do when it empties: nothing,
sleep or shut down, after a minute's warning you can cancel. - Where files go. The Downloads folder, a folder you choose, asked each time a link is added
in the window, or sorted into Video, Music, Archives, Documents, Programs and Other folders. - File names from
Content-Disposition, else the URL, cleaned of path tricks and characters
Windows refuses;name (1).extwhen the name is taken. - Browser extension for Chrome, Edge, Brave and Arc. It hands new downloads to Shard with the
page's cookies, referrer and user agent, so downloads behind a login work; when Shard isn't
running, the browser downloads as usual. Shard listens on127.0.0.1:47110and refuses
requests carrying a web page's Origin. - Tray and menu bar. Closing the window keeps Shard running. The icon, the sliced S, fills
from the bottom with progress, with the speed beside it on macOS. A click opens a panel with
the active downloads, a throughput chart and quick controls; the menu pauses or resumes
everything, sets a speed cap, toggles keep awake and launch at login, and quits. Launching
Shard again brings the window back. - Launch at login, starting hidden in the tray.
- Keeps the computer awake while anything downloads (on by default). The display can still
sleep, and closing a laptop's lid still sleeps it. - Notifications when a download finishes or fails, and an offer to download a link to a file
when you copy one. - Combining networks. Optional: connections are bound to each network in turn (Wi-Fi,
Ethernet, a phone over USB), so their speeds add up. Networks can be left out one by one. - Signed auto-update. Every six hours Shard reads a signed list of releases (
update.txt,
Ed25519), downloads the build for this computer in the background through its own engine,
checks its SHA-256 and offers "Restart to update". It can be turned off, and "Check now" checks
on demand. - The window. Total speed, a live graph of the connections, a throughput chart, a segment map
of each download's parts filling and splitting, a detail panel, and a stats view. - Command line.
shard <url>queues a link in the running Shard;shard get <url> [output]
downloads in the terminal and resumes when run again;shard --hiddenstarts in the tray;
shard serveruns the queue and the browser endpoint without a window. - The website, https://manyeya.github.io/shard/.
- Setup, built into the app. The
shardbinary carries its own animated setup window. A
copy that isn't installed offers to install itself when it's opened,--setupasks for it, and
--silentdoes the same with the defaults and no window. It closes a running Shard first
(downloads carry on where they left off), copies the new one in beside the old and swaps them,
so a failed copy leaves the old one working, and can start Shard at login.- Windows:
Shard-Setup-X.Y.Z-windows-x64.exeinstalls for the current user into
%LOCALAPPDATA%\Programs\Shardwithout administrator rights, adds a Start menu shortcut
(and a desktop one if you ask), and registers an uninstaller under Settings › Apps. - macOS: open the disk image and either drag Shard to Applications or open it there. Opened
from outside Applications, Shard offers to install itself into/Applications(or
~/Applicationswhen that isn't writable). - Linux: the
.deband.rpminstall system-wide. The AppImage and the tarball's binary offer
setup instead: the binary into~/.local/bin, a desktop entry and icons under
~/.local/share, or "Run without installing". - The last step finds the browsers on the computer, opens Shard's page in each one's store
(the Chrome Web Store for Chrome, Arc, Brave, Vivaldi, Opera and Chromium; Edge Add-ons for
Edge, or the Chrome Web Store until Edge has a listing; Firefox Add-ons for Firefox), and
waits for the extension to say hello, so it can show it's connected. A store is offered once
Shard's ID there is known.
- Windows:
shard --uninstallremoves Shard (--silentfor no window), optionally with its history and
settings. On Windows, Settings › Apps runs it.shard --versionprintsshard X.Y.Z.SHARD_NO_SETUPstops a copy offering setup,SHARD_INSTALL_DIRchanges where setup installs,
SHARD_SETUP_DEMOruns the setup window with pretend steps, andSHARD_REDUCE_MOTION=1keeps
it still (as the system's reduce-motion setting does).- The local endpoint answers
POST /hello(the extension announcing itself when it's installed
or updated) andPOST /quit(setup asking a running Shard to quit before replacing or removing
it). Both refuse web pages, like the rest. - The extension for Firefox (128 or later), built from the same source as the Chromium one,
and published to the browsers' stores: the Chrome Web Store, Edge Add-ons and Firefox Add-ons.
It says hello to Shard when it's installed, for setup. - New release files.
Shard-Setup-X.Y.Z-windows-x64.exe; an AppImage and an.rpmfor Linux
x64 and arm64, beside the.deband the tarball; a disk image with a background and the
Applications link laid out by Finder (made with create-dmg); the extension as
shard-extension-X.Y.Z-chrome.zipandshard-extension-X.Y.Z-firefox.zip. The Windows zip
and the Linux tarballs carry both licence files, and the.deband.rpminstall them. - Package managers. A Homebrew cask (
brew install --cask manyeya/tap/shard) and a Scoop
manifest (scoop bucket add manyeya https://github.com/manyeya/scoop-bucket, then
scoop install shard), updated by the release workflow, and winget manifests (manyeya.Shard)
written with each release for submitting to winget-pkgs. - Store publishing. For each tagged release the workflow sends the extension to the Chrome
Web Store, Edge Add-ons and Firefox Add-ons, each once its credentials are set, and builds carry
the store IDs from the repository's variables so setup can link to them. - Checks. CI runs Clippy with warnings as errors, and installs, reinstalls and removes Shard
with setup for real on macOS, Linux and Windows; it packages the extension and lints the Firefox
build with web-ext, and checks the workflows with actionlint. Each release build runs the same
setup check before its files are uploaded.cargo denychecks dependencies for advisories,
licences and sources, CodeQL analyses the Rust code and the workflows, and Dependabot proposes
updates weekly. - Docs and project files. Dual MIT or Apache-2.0 licence files, with the licence and
repository details inCargo.toml; a contributing guide, code of conduct, security policy,
support and governance pages and this changelog; docs on architecture, building, releasing,
getting the extension into the stores, privacy and troubleshooting; the store listing text and
artwork (packaging/stores/, rendered byscripts/render-art.sh); a privacy page on the
website; issue and pull request templates.
Security
- rustls 0.23.46 for RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 and
RUSTSEC-2026-0349, and rustls-webpki 0.103.16 for RUSTSEC-2026-0382.
Full Changelog: https://github.com/manyeya/shard/commits/v0.1.0