Show HN: Rapel – chunked resumable downloads in unstable networks
Recorded: May 27, 2026, 1:01 a.m.
| Original | Summarized |
GitHub - redraw/rapel: chunked resumable downloads in unstable networks · GitHub Skip to content Navigation Menu Toggle navigation
Sign in
Appearance settings PlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub SparkBuild and deploy intelligent appsGitHub ModelsManage and compare promptsMCP RegistryNewIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityAcceleratorGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricing Search or jump to... Search code, repositories, users, issues, pull requests...
Search Clear
Search syntax tips Provide feedback Include my email address so I can be contacted Cancel Submit feedback Saved searches
Name Query To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up
Appearance settings Resetting focus You signed in with another tab or window. Reload to refresh your session. Dismiss alert redraw rapel Public
Notifications
Fork
Star Code Issues Pull requests Actions Projects Security and quality Insights
Additional navigation options
Code Issues Pull requests Actions Projects Security and quality Insights
mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History3 Commits3 Commits.github/workflows.github/workflows cmdcmd internalinternal scriptsscripts .gitignore.gitignore CLAUDE.mdCLAUDE.md MakefileMakefile README.mdREADME.md go.modgo.mod go.sumgo.sum main.gomain.go View all filesRepository files navigationREADMErapel JSON state management: Single .rapel-state.json file tracks all chunk metadata Options Merge command: About chunked resumable downloads in unstable networks Readme Uh oh! There was an error while loading. Please reload this page. Activity 2 0 0 Report repository Releases v1.0.1 Latest Packages
Uh oh! There was an error while loading. Please reload this page. Contributors Uh oh! There was an error while loading. Please reload this page. Languages Go Shell Makefile
Footer © 2026 GitHub, Inc. Footer navigation Terms Privacy Security Status Community Docs Contact Manage cookies Do not share my personal information You can’t perform that action at this time. |
The project redraw/rapel implements a modern, cross-platform tool designed for performing chunked and resumable downloads, specifically optimized for use in unstable network environments. It focuses on delivering improved state management and robust progress tracking capabilities to handle complex downloading tasks effectively. The tool is designed to be executed either by building from source using go build or installing directly via go install. The core functionality allows users to initiate downloads with default settings, such as using 100 megabyte chunks and one concurrent job. Users have extensive control over the download process through various command-line options. For instance, users can specify a custom chunk size using the -c flag, define the number of concurrent downloads with the --jobs flag, utilize proxy settings through the -x flag, and configure retry attempts per request with the -r flag. It also supports advanced control mechanisms such as skipping the HEAD request if a size is specified using --no-head, and setting the total download size in bytes using --size. A key feature is the ability to manage complex operations post-download via post-part hooks, allowing custom commands to be executed after each chunk completes. This facilitates workflows such as uploading data to cloud storage, exemplified by commands like rclone move. Furthermore, the system incorporates smart merging capabilities, which automatically detect output filenames and manage multiple download sessions efficiently. Users can manage the resulting files through the merge command, allowing for options to specify an output filename with -o, define file patterns with --pattern, or explicitly delete the chunk files after merging with --delete. State management is handled through a single JSON file, .rapel-state.json, which tracks all necessary chunk metadata. This state persistence ensures resilience, providing graceful shutdown functionality where progress is saved when interrupted, allowing for seamless resumption of downloads. The application provides enhanced progress display through real-time speed metrics and completion status formatted with ANSI color coding. In terms of technical scope, rapel is cross-platform, supporting operating systems including Linux variants (amd64, arm64, arm v6/v7), macOS (Intel and Apple Silicon), Windows, and FreeBSD. It also includes native ARM v7 and v6 binaries, providing specific support for Raspberry Pi models. The design emphasizes resume support, meaning interrupted downloads can be automatically resumed upon restart. The implementation handles concurrent downloads efficiently and prioritizes stability and state integrity, making it a sophisticated utility for developers and system administrators dealing with network instability. |