Skip to main content

Concurrent HTTP download orchestration with async I/O

Project description

Rheo

PyPI Python License

Concurrent HTTP download orchestration with async I/O

What It Is

A Python library for managing multiple asynchronous HTTP downloads. Built on asyncio and aiohttp, it handles concurrency, tracks state, emits events, and lets you monitor progress.

Installation

pip install rheopy

Quick Start

import asyncio
from pathlib import Path
from rheo import DownloadManager
from rheo.domain import FileConfig

async def main():
    files = [
        FileConfig(url="https://example.com/file1.zip", priority=1),
        FileConfig(url="https://example.com/file2.pdf", priority=2),
    ]

    async with DownloadManager(download_dir=Path("./downloads"), max_workers=3) as manager:
        await manager.add_to_queue(files)
        await manager.queue.join()

    print("All downloads complete!")

asyncio.run(main())

Key Features

  • Concurrent downloads with worker pool
  • Priority queue
  • Hash validation (MD5, SHA256, SHA512)
  • Retry logic with exponential backoff
  • Real-time speed & ETA tracking
  • Event-driven architecture
  • CLI tool (rheo download)
  • Full type hints

CLI Usage

# Basic download
rheo download https://example.com/file.zip

# With hash verification
rheo download https://example.com/file.zip --hash sha256:abc123...

# Custom output directory
rheo download https://example.com/file.zip -o /path/to/dir

See CLI Reference for complete command documentation.

Documentation

Examples

Check examples/ for working code:

  • 01_basic_download.py - Simple single file download
  • 02_multiple_with_priority.py - Multiple files with priorities
  • 03_hash_validation.py - File integrity verification
  • 04_progress_tracking.py - Real-time progress monitoring
  • 05_event_monitoring.py - Event-driven statistics

Project Status

Alpha - Core functionality works, but API may change before 1.0.

  • Python: 3.12+
  • License: MIT
  • Version: 0.1.0

Questions?

Open an issue on GitHub or check the full documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rheopy-0.1.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rheopy-0.1.0-py3-none-any.whl (55.0 kB view details)

Uploaded Python 3

File details

Details for the file rheopy-0.1.0.tar.gz.

File metadata

  • Download URL: rheopy-0.1.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.0 Linux/6.11.0-1018-azure

File hashes

Hashes for rheopy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c1740f0bea0d7c1fa1f1ec3220798416a45a6dc2e2ac25ceb9f740f16fb8e84f
MD5 86ad30571a9858e9d20507ec9e0fea96
BLAKE2b-256 3724a43d52aa58523abe38739b7e63e39ca4f671d477cc42c3636228b5e3ac06

See more details on using hashes here.

File details

Details for the file rheopy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rheopy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 55.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.0 Linux/6.11.0-1018-azure

File hashes

Hashes for rheopy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a30053cb903e5fefdcf589067d2aedb531004ecc771f5df1a1e7499f10aa1c5
MD5 5c4a292ea65d7400816bd7b55b1b9c69
BLAKE2b-256 a8fa23d4271c24c4ee0b2caea75c4c0c78827caf323559365393720611220775

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page