Show HN: Rapel – chunked resumable downloads in unstable networks
Summary
Rapel is a chunked HTTP downloader with resume support, designed for unstable networks. It features concurrent downloads, JSON state management, graceful shutdown, and cross-platform support.
View Cached Full Text
Cached at: 05/27/26, 12:58 AM
redraw/rapel
Source: https://github.com/redraw/rapel
rapel
Chunked HTTP downloader with resume support.
A modern, cross-platform implementation with improved state management and progress tracking.
Installation
go build -o bin/rapel
Or install directly:
go install github.com/redraw/rapel@latest
Usage
Download a file with default settings (100MB chunks, 1 concurrent job):
rapel download https://example.com/file.bin
Download with custom chunk size and multiple concurrent downloads:
rapel download https://example.com/file.bin -c 50M --jobs 4
Download through a proxy:
rapel download https://example.com/file.bin -x socks5h://127.0.0.1:9050
Download and auto-merge:
rapel download https://example.com/file.bin --merge
Run command after each chunk completes:
rapel download https://example.com/file.bin --post-part 'rclone move {part} remote:bucket/'
Merge chunk files manually:
rapel merge # Auto-detects output name
rapel merge --pattern 'file.*.part' # Auto-detects as "file"
rapel merge -o output.bin --delete # Explicit name, delete after merge
Features
- JSON state management: Single
.rapel-state.jsonfile tracks all chunk metadata - Graceful shutdown: Ctrl+C saves progress and allows resume
- Better progress display: Real-time speed, completion status with ANSI formatting
- Cross-platform: Works on Linux (amd64, arm64, arm v6/v7), macOS (Intel/Apple Silicon), Windows, and FreeBSD
- Raspberry Pi support: Native ARM v7 and v6 binaries for all Raspberry Pi models
- Resume support: Automatically resumes interrupted downloads
- Concurrent downloads: Download multiple chunks simultaneously
- Post-part hooks: Run custom commands after each chunk completes (e.g., upload to cloud)
- Smart merging: Auto-detects output filename and handles multiple download sessions
Options
Download command:
-c SIZE Chunk size (K, M, G suffix). Default: 100M
-x URL Proxy URL (e.g., socks5h://127.0.0.1:9050)
-r N Retries per request. Default: 10
--no-head Skip HEAD request (requires --size)
--size BYTES Total size in bytes (required if --no-head)
--jobs N Concurrent chunks. Default: 1
--force Force re-download even if state exists
--merge Merge chunks after download (auto-detects output name)
--post-part CMD Command to run after each part completes
Placeholders: {part} {idx} {base}
Merge command:
-o FILE Output filename (auto-detected if not provided)
--pattern GLOB Pattern for chunk files. Default: *.part
--delete Delete chunk files after merging
Similar Articles
Show HN: OpenBrief – Local-first video downloader/summarizer
OpenBrief is an open-source desktop app that lets users download videos, transcribe audio, generate grounded summaries, and chat with media content, all running locally on their machine.
Show HN: Freenet, a peer-to-peer platform for decentralized apps
Freenet is a peer-to-peer platform for building decentralized applications that run without servers, using a small-world network organized by location on a ring. It allows developers to deploy apps using familiar tools like Rust and TypeScript, and users access them via browser without tracking or takedown risk.
FediMeteo, HAProxy, and the art of not wasting snac threads
The author describes using HAProxy caching to reduce unnecessary load on snac threads in the FediMeteo service, following previous similar optimizations with nginx. The approach aims to keep the lightweight ActivityPub server efficient by having the reverse proxy absorb repeated public requests.
Show HN: Rmux – A programmable terminal multiplexer with a Playwright-style SDK
Rmux is a new programmable terminal multiplexer written in Rust, offering a tmux-compatible CLI, a typed SDK, and features for agentic workflows, allowing detachable, scriptable terminal sessions across Linux, macOS, and Windows.
CHOP: Chunkwise Context-Preserving Framework for RAG on Multi Documents
CHOP is a framework for improving RAG systems on multi-document retrieval by using context-aware metadata and LLM-based chunk relevance evaluation to reduce semantic conflicts and hallucinations. The approach achieves 90.77% Top-1 Hit Rate through intelligent chunking and contextual preservation strategies.