惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
I
InfoQ
美团技术团队
罗磊的独立博客
B
Blog RSS Feed
GbyAI
GbyAI
小众软件
小众软件
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
MyScale Blog
MyScale Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss

Hacker News: Front Page

SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Ancient DNA reveals pervasive directional selection across West Eurasia [pdf] AI cybersecurity is not proof of work Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. A Better Ludum Dare; Or, How to Ruin a Legacy GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent Codex Hacked a Samsung TV
GitHub - redraw/rapel: chunked resumable downloads in uns...
autorun · 2026-05-26 · via Hacker News: Front Page

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 -c 50M --jobs 4 https://example.com/file.bin

Download through a proxy:

rapel download -x socks5h://127.0.0.1:9050 https://example.com/file.bin

Download and auto-merge:

rapel download --merge https://example.com/file.bin

Run command after each chunk completes:

rapel download --post-part 'rclone move {part} remote:bucket/' https://example.com/file.bin

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

  • Argument persistence: a .{prefix}-args.json file records the URL, chunk size, and total size so resumes can validate they're continuing the right download
  • Graceful shutdown: Ctrl+C is safe — resume reconstructs progress from the on-disk .tmp / .part files
  • 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). Hooks are at-least-once: on resume, hooks may run again for already-completed chunks. Write hooks to be idempotent.
  • Smart merging: Auto-detects output filename and handles multiple download sessions

Options

Download command:

Flags must be specified BEFORE the URL argument.

-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, ignoring any existing args file or chunk files
--merge              Merge chunks after download (auto-detects output name)
--post-part CMD      Command to run after each part completes
                     Placeholders: {part} {idx} {base}
--post-part-jobs N   Max concurrent post-part commands. Default: 0 (unlimited)

State files

  • .{prefix}-args.json — records the URL, total size, chunk size, and filename prefix used at start; written once at start, removed on success. Resuming with a different URL or size requires --force. Runtime flags (--jobs, --post-part, proxy, retries, etc.) are not persisted and can change between runs.
  • <prefix>.NNNNNN.tmp — chunk download in progress
  • <prefix>.NNNNNN.part — chunk fully downloaded

Merge command:

-o FILE        Output filename (auto-detected if not provided)
--pattern GLOB Pattern for chunk files. Default: *.part
--delete       Delete chunk files and args file after merging