A bit brainstormed for the moment ;)
- Designed for LAN usage (full trusted peers)
- Efficient (very low cpu usage)
- Distributed download (multi peer downloading and no central server)
- Quicker seed first. The speed of a peer is an average over a period of time say 5 min. A speed of a peer can be unknown. If a downloading is too slow (like three time slower than the best known peer) then it can switch from a quicker free seed.
- Rarest parts first.
- A part can be resumed from any peer.
- Fixed part size (2^24 B = 16 MB) hashed with SHA-1. Used to control the integrity of parts and to identify a file. A file is identified by the concatenation of all the SHA1 of all its parts. If the SHA-1 of a part does not match with the given SHA-1 then it will be re-downloaded entirely.
- Recursive folder downloading
- There is a general chat
- Multicast UDP for services discovering (maybe UPNP)
- MDI GUI with GTK2HS
- A panel to view the current peers
- A window to view the current downloads (leechage) and one for the current uploads (seedage)
- A window for the chat
- A window for searching
- Some windows for each file browsing
- A modal window for the settings
- The shared folders
- The incoming folder
- Bandwidth limitation
- File list with name+size
- Non blocking search
- Using of systray (optional)
- Free space management
- Graphic of the transfert rate over time