Skip to main content

Crate aria2_protocol

Crate aria2_protocol 

Source
Expand description

§aria2-protocol

Protocol implementations for the aria2-rust download utility.

Provides client-side protocol handlers for HTTP/HTTPS, FTP/SFTP, BitTorrent, Metalink, and SFTP downloads. Each protocol module is feature-gated to allow minimal builds when only specific protocols are needed.

§Modules

  • http — HTTP/HTTPS client built on reqwest/hyper: request construction, Range header handling, BASIC/Digest authentication, proxy support (HTTP/SOCKS5), gzip/deflate decompression, Cookie management, chunked transfer decoding, custom headers, and redirect following.

  • ftp — FTP/SFTP client: control connection (USER/PASS/CWD/SIZE/PASV/EPSV), passive mode data transfer, anonymous and authenticated login, REST-based resume.

  • [bittorrent] (feature: bittorrent) — Full BitTorrent protocol stack: bencode codec, .torrent parsing, info_hash computation, BT message protocol (10 types), handshake, Tracker communication (HTTP announce/scrape), DHT network (K-buckets/KRPC), PEX peer exchange, MSE encryption framework, PeerConnection, choke algorithm, PiecePicker (RarestFirst/Sequential/Random/EndGame).

  • [metalink] (feature: metalink) — Metalink V3/V4 XML parser: multi-mirror URL priority, hash verification (MD5/SHA1/SHA256/SHA512), piece checksums, MetaURL torrent detection.

  • *[sftp]*(feature:sftp`) — SFTP over SSH2 client: key/password auth, file operations (stat/read/write/mkdir/rmdir/readdir/symlink), streaming transfer.

Modules§

ftp
http