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 for end of 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: