Apollo Download ManagerApollo Download Manager
On this page

Repository map

Where everything lives. The rules for what each layer may do are in AGENTS.md, and how the parts work together is in the architecture.

The app

FolderWhat it holds
src/The window: React and TypeScript. It reaches native code only through typed commands and events
src/features/One folder for each part of the window, such as add, downloads, torrents, settings and help
src/app/, src/components/, src/layout/The shell, shared components and the panels
src/test/The test setup and the fake backend the window's tests run against
src-tauri/The desktop shell. Its commands check their input and pass the work to the core

Rust crates

CrateWhat it does
crates/velocity-coreDomain logic: the manager, policy, validation and persistence
crates/velocity-transferThe direct-download engine
crates/velocity-curlThe libcurl layer, the only code that calls libcurl
crates/velocity-sftpThe SFTP layer, the only code that calls russh
crates/velocity-torrentThe torrent engine and its helper process
crates/velocity-ltThe bridge to libtorrent, the only code that calls it
crates/velocity-childThe child-process layer both engines share
crates/velocity-native-hostThe native messaging host the browser extension talks to
crates/velocity-test-http, crates/velocity-transfer-h2cTest servers

The crates keep the working name velocity.

Everything else

FolderWhat it holds
browser-extension/The browser extension: its source, store listings and tests
docs/The documents behind this site, the user guide and the decision records
site/The website's own pages, stylesheet and screens (how it's built)
scripts/The pnpm commands: checks, builds, packaging and the agent guard, with their tests
tests/End-to-end and field tests, and the shared fixtures
.github/CI workflows and the issue and pull request templates
.claude/The rules and skills for AI agents (agent guidance)