How gregyjames/octanedownloader works
OctaneEngine is a C# piecewise file downloader. A caller configures and builds an engine, submits a URL/request with pause and cancellation controls, and the engine downloads into a file, choosing the multipart client or a fallback path; it also exposes network latency and speed checks. README capabilities include retries, throttling, progress, proxy support, headers, and JSON configuration. The graph reflects the excerpts and source index; unsampled implementation details are represented only where documented, and unverified links are dashed.
Main entry points: Engine.cs Download engine · OctaneClient.cs Multipart client · DefaultClient.cs Fallback client · EngineBuilder.cs Engine builder
Components 17
Setup and API
- Engine builder
src/OctaneEngine/EngineBuilder.cs - Download configuration
src/OctaneEngine/OctaneConfiguration.cs - DI registration
src/OctaneEngine/ServiceCollectionExtensions.cs
Download runtime
- Download engine
src/OctaneEngine/Implementations/Engine.cs - Download request
src/OctaneEngine/Clients/OctaneRequest.cs - Multipart client
src/OctaneEngine/Clients/OctaneClient.cs - Fallback client
src/OctaneEngine/Clients/DefaultClient.cs - Retry handler
src/OctaneEngine/Clients/RetryHandler.cs
Runtime support
- Pause controls
src/OctaneEngine/PauseToken.cs - Stream throttling
src/OctaneEngine/Streams/ThrottleStream.cs - Progress display
src/OctaneEngine/ShellProgressBar/ProgressBar.cs
Network analysis
- Network analyzer
src/OctaneEngine/Implementations/NetworkAnalyzer/NetworkAnalyzer.cs - Ping service
src/OctaneEngine/Implementations/NetworkAnalyzer/PingService.cs - Speed-test downloader
src/OctaneEngine/Implementations/NetworkAnalyzer/HttpDownloader.cs
Other components
- Application caller
- HTTP server
- Downloaded file
Connections 21
- Application caller → Engine builder: builds engine
README.md - Engine builder → Download configuration: configures
src/OctaneEngine/EngineBuilder.cs - Engine builder → Download engine: constructs
src/OctaneEngine/EngineBuilder.cs - Application caller → DI registration: registers services
README.md - DI registration → Download engine: registers
src/OctaneEngine/ServiceCollectionExtensions.cs - Application caller → Download engine: requests download
README.md - Download engine → Download request: accepts
src/OctaneEngine/Implementations/Engine.cs - Download engine → Multipart client: dispatches
src/OctaneEngine/Implementations/Engine.cs - Download engine → Fallback client: falls back
src/OctaneEngine/Implementations/Engine.cs - Multipart client → HTTP server: requests ranges
src/OctaneEngine/Clients/OctaneClient.cs - Fallback client → HTTP server: requests content
src/OctaneEngine/Clients/DefaultClient.cs - Download engine → Downloaded file: writes download
src/OctaneEngine/Implementations/Engine.cs - Multipart client → Pause controls: waits while paused
src/OctaneEngine/Clients/OctaneClient.cs - Fallback client → Pause controls: waits while paused
src/OctaneEngine/Clients/DefaultClient.cs - Multipart client → Stream throttling: throttles stream
src/OctaneEngine/Clients/OctaneClient.cs - Multipart client → Progress display: updates progress
src/OctaneEngine/Clients/OctaneClient.cs - Fallback client → Progress display: updates progress
src/OctaneEngine/Clients/DefaultClient.cs - Download engine → Network analyzer: measures network
src/OctaneEngine/Implementations/Engine.cs - Network analyzer → Ping service: pings host
src/OctaneEngine/Implementations/NetworkAnalyzer/NetworkAnalyzer.cs - Network analyzer → Speed-test downloader: downloads test file
src/OctaneEngine/Implementations/NetworkAnalyzer/NetworkAnalyzer.cs - Multipart client → Retry handler: retries requests