Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI Tools

The aioduct binary is a unified HTTP toolkit providing two subcommands: a curl-style HTTP client and an aria2-style parallel downloader. Both share the same connection pool, TLS stack, and HTTP/2 implementation from the aioduct library.

Installation

Shell installer (no Rust toolchain needed):

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/adamcavendish/aioduct/releases/download/0.2.5/aioduct-cli-installer.sh | sh

Nightly build (latest main):

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/adamcavendish/aioduct/releases/download/nightly/aioduct-cli-installer.sh | sh

Build from source:

cargo install --git https://github.com/adamcavendish/aioduct aioduct-cli

Subcommands

CommandDescription
aioduct httpHTTP request tool with verbose TUI, redirects, retries, proxy
aioduct downloadParallel segmented downloader with resume, WebDAV recursion
aioduct versionPrint version and exit

Size Suffixes

Both subcommands accept human-readable size values for bandwidth and segment options:

SuffixMultiplier
(none)bytes
K / kx 1024
M / mx 1024²
G / gx 1024³

Decimal fractions are supported: 1.5M = 1,572,864 bytes.

Comparison

vs curl: aioduct http covers the most commonly used curl flags with the same short options (-X, -d, -H, -o, -L, -v, etc.). The verbose mode (-v) provides a real-time ratatui TUI showing DNS/TCP/TLS/TTFB phases as a timeline, rather than plain text headers.

vs aria2c: aioduct download implements segmented parallel downloads with automatic resume, similar to aria2c. It adds WebDAV recursive directory downloads, checksum verification, and a TUI progress display. The flag names follow aria2 conventions (--split, --max-concurrent-downloads, --min-split-size).

Shared advantages: Both subcommands benefit from the aioduct library’s HTTP/2 multiplexing, connection pooling, bandwidth limiting, and proxy support (HTTP, HTTPS, SOCKS4/SOCKS4a, SOCKS5, SOCKS5h) without external dependencies like libcurl or OpenSSL.