How amule-project/amule works
aMule is a graphical and headless peer-to-peer file-sharing client built around the eD2k network, with Kad, downloads, uploads, shared files, and remote-control interfaces. The principal workflow is to search through a server or Kad, select a result, download it from peers, and expose completed/shared files for other peers. The tree identifies the corresponding runtime areas, but the README supplied is only a project-migration notice and most implementation excerpts are absent; links between those areas are therefore limited to clearly named responsibilities and documented SearchManager behavior.
Main entry points: DownloadQueue.cpp Download queue · UploadQueue.cpp Upload queue · SharedFileList.cpp Shared file index · SearchManager.cpp Search management
Components 22
Client runtime
- Headless client
src/amuled.cpp - Application core
src/amule.cpp
File transfer
- Download queue
src/DownloadQueue.cpp - Partial files
src/PartFile.cpp - Upload queue
src/UploadQueue.cpp - Shared file index
src/SharedFileList.cpp - Completed files
src/KnownFileList.cpp
Peer networks
- Search management
src/kademlia/kademlia/SearchManager.cpp - Kad network
src/kademlia/kademlia/Kademlia.cpp - Kad UDP transport
src/kademlia/net/KademliaUDPListener.cpp - Server connection
src/ServerConnect.cpp - Peer clients
src/ClientList.cpp
User interfaces
- Desktop client
src/amule-gui.cpp - Search dialog
src/SearchDlg.cpp - Server view
src/ServerWnd.cpp - Transfer view
src/TransferWnd.cpp - Remote GUI
src/amule-remote-gui.cpp - Web interface
src/webserver/src/WebInterface.cpp - External connections
src/ExternalConn.cpp
Other components
- User
- eD2k servers
- Other clients
Connections 16
- User → Desktop client: starts
- User → Headless client: starts
- Desktop client → Application core: runs
- Search dialog → Search management: requests search
- Search management → Kad network: manages searches
- Kad network → Kad UDP transport: uses UDP
- Server view → Server connection: manages connection
- Server connection → eD2k servers: connects
- Transfer view → Download queue: views transfers
- Download queue → Partial files: tracks partials
- Peer clients → Other clients: communicates
- Upload queue → Other clients: serves files
- Shared file index → Upload queue: supplies shared files
- Completed files → Shared file index: indexes files
- Remote GUI → External connections: controls remotely
- Web interface → External connections: controls remotely