See: Description
| Interface | Description |
|---|---|
| BandwidthListener | Bandwidth and bandwidth limits |
| CompleteListener | Callback for Snark events. |
| CoordinatorListener | Callback interface for monitoring PeerCoordinator state changes. |
| DataLoader | Callback used to fetch data |
| PeerListener | Listener for Peer events. |
| ShutdownListener | Callback interface for the end of the shutdown sequence. |
| StorageListener | Callback interface for monitoring Storage state changes and progress. |
| Class | Description |
|---|---|
| BandwidthManager | Bandwidth and bandwidth limits |
| BitField | Container of a byte array representing set and unset bits for torrent piece availability. |
| BWLimits | Retrieves bandwidth limits from an I2P router via I2CP. |
| ConnectionAcceptor | Accepts incoming I2P connections and routes them to the appropriate PeerAcceptor. |
| ExtensionHandler | REF: BEP 10 Extension Protocol |
| I2PSnarkUtil | I2P-specific utilities and context management for I2PSnark. |
| IdleChecker | Periodically check for idle condition based on connected peers, and reduce/restore tunnel count
as necessary. |
| MagnetState | Simple state for the download of the metainfo, shared between Peer and ExtensionHandler. |
| MagnetURI | Magnet URI parser and handler for BitTorrent magnet links. |
| Message | Represents a BitTorrent protocol message for peer communication. |
| MetaInfo | Holds all information extracted from a torrent file. |
| Mp3Test | Test utility for extracting and displaying MP3 metadata tags. |
| PartialPiece | Represents a piece of a torrent being downloaded, storing partial data either on the heap or in a
temporary file if the piece is large. |
| Peer | Represents a peer in the BitTorrent network, managing all public information and communication
with that peer. |
| PeerAcceptor | Accepts incomming connections from peers. |
| PeerCheckerTask | TimerTask that checks for good/bad up/downloader. |
| PeerConnectionIn | Handles incoming BitTorrent protocol messages from a peer. This class runs in a separate thread to continuously read and parse incoming messages, delegating them to the appropriate PeerState handlers. |
| PeerConnectionOut | Manages outgoing BitTorrent protocol messages to a peer. This class maintains a queue of outgoing messages and handles bandwidth limiting, message prioritization, and reliable delivery to the peer. |
| PeerCoordinator | Coordinates peer activities for a single torrent including upload/download management,
peer selection, piece distribution, and bandwidth allocation. |
| PeerCoordinatorSet | Thread-safe collection for managing PeerCoordinator instances across multiple torrents. |
| PeerID | Store the address information about a peer. |
| PeerState | Manages the state and protocol logic for a BitTorrent peer connection. This class tracks peer interest/choking status, piece availability, request queues, and handles all BitTorrent protocol message processing. |
| Piece | Represents a torrent piece and tracks which peers have it and are requesting it. |
| Request | Holds all information needed for a partial piece request. |
| Snark | Main Snark program startup class. |
| SnarkCommandLine | Simple command line access to various utilities. |
| SnarkManager | Central manager for multiple torrent downloads and the I2PSnark application. |
| StaticSnark | Main snark startup class for staticly linking with gcj. |
| Storage | Storage manages torrent data files on disk for I2PSnark. |
| TorrentCreateFilter | A structure for torrent creation filters |
| Tracker | Represents a known BitTorrent tracker with its configuration and capabilities. |
| TrackerClient | Handles communication with BitTorrent trackers and DHT to discover new peers. |
| TrackerInfo | The data structure for the tracker response. |
| UDPTrackerClient | One of these for all trackers and info hashes. |
| UDPTrackerClient.TrackerResponse | Represents a response from a UDP tracker. This class encapsulates the tracker's response including peer lists, interval information, and any error messages. |
| UpdateHandler | Handles the request to update the router by firing up a magnet. |
| UpdateRunner | The downloader for router signed updates. |
| URIUtil | URI Holder. |
| WebPeer | BEP 19. |
| Exception | Description |
|---|---|
| PeerAcceptor.ProtocolException | A unique exception so we can tell the ConnectionAcceptor about non-BT connections |
| Snark.RouterException | A unique exception class to blame the router that can be caught by SnarkManager |
I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.
I2PSnark provides a complete BitTorrent client implementation designed specifically for the I2P anonymous network, offering private file sharing with enhanced security and privacy features.
Key features include: