Build.PL
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Changes.md
LICENSE
MANIFEST
META.json
META.yml
README.md
SECURITY.md
eg/bencode/bench.pl
eg/bencode/simple.pl
eg/bencode/torrent_info.pl
eg/create_torrent.pl
eg/dht/bep44_remote_storage.pl
eg/dht/bep51_index.pl
eg/dht/distributed_blob.pl
eg/dht/find_hash.pl
eg/dht/full_search.pl
eg/dht/io_async_node.pl
eg/dht/run_node.pl
eg/dht_search.pl
eg/full_example.pl
eg/magnet.pl
eg/superseed.pl
lib/Net/BitTorrent.pm
lib/Net/BitTorrent.pod
lib/Net/BitTorrent/DHT.pm
lib/Net/BitTorrent/DHT.pod
lib/Net/BitTorrent/DHT/Security.pm
lib/Net/BitTorrent/DHT/Security.pod
lib/Net/BitTorrent/Emitter.pm
lib/Net/BitTorrent/Emitter.pod
lib/Net/BitTorrent/Peer.pm
lib/Net/BitTorrent/Peer.pod
lib/Net/BitTorrent/Protocol/BEP03.pm
lib/Net/BitTorrent/Protocol/BEP03.pod
lib/Net/BitTorrent/Protocol/BEP03/Bencode.pm
lib/Net/BitTorrent/Protocol/BEP03/Bencode.pod
lib/Net/BitTorrent/Protocol/BEP06.pm
lib/Net/BitTorrent/Protocol/BEP06.pod
lib/Net/BitTorrent/Protocol/BEP09.pm
lib/Net/BitTorrent/Protocol/BEP09.pod
lib/Net/BitTorrent/Protocol/BEP10.pm
lib/Net/BitTorrent/Protocol/BEP10.pod
lib/Net/BitTorrent/Protocol/BEP11.pm
lib/Net/BitTorrent/Protocol/BEP11.pod
lib/Net/BitTorrent/Protocol/BEP23.pm
lib/Net/BitTorrent/Protocol/BEP23.pod
lib/Net/BitTorrent/Protocol/BEP52.pm
lib/Net/BitTorrent/Protocol/BEP52.pod
lib/Net/BitTorrent/Protocol/BEP53.pm
lib/Net/BitTorrent/Protocol/BEP53.pod
lib/Net/BitTorrent/Protocol/BEP55.pm
lib/Net/BitTorrent/Protocol/BEP55.pod
lib/Net/BitTorrent/Protocol/HandshakeOnly.pm
lib/Net/BitTorrent/Protocol/HandshakeOnly.pod
lib/Net/BitTorrent/Protocol/MSE.pm
lib/Net/BitTorrent/Protocol/MSE.pod
lib/Net/BitTorrent/Protocol/MSE/KeyExchange.pm
lib/Net/BitTorrent/Protocol/MSE/KeyExchange.pod
lib/Net/BitTorrent/Protocol/PeerHandler.pm
lib/Net/BitTorrent/Protocol/PeerHandler.pod
lib/Net/BitTorrent/Protocol/Simulation.pm
lib/Net/BitTorrent/Protocol/Simulation.pod
lib/Net/BitTorrent/Storage.pm
lib/Net/BitTorrent/Storage.pod
lib/Net/BitTorrent/Storage/File.pm
lib/Net/BitTorrent/Storage/File.pod
lib/Net/BitTorrent/Torrent.pm
lib/Net/BitTorrent/Torrent.pod
lib/Net/BitTorrent/Torrent/Generator.pm
lib/Net/BitTorrent/Torrent/Generator.pod
lib/Net/BitTorrent/Torrent/PiecePicker.pm
lib/Net/BitTorrent/Torrent/PiecePicker.pod
lib/Net/BitTorrent/Tracker.pm
lib/Net/BitTorrent/Tracker.pod
lib/Net/BitTorrent/Tracker/Base.pm
lib/Net/BitTorrent/Tracker/Base.pod
lib/Net/BitTorrent/Tracker/HTTP.pm
lib/Net/BitTorrent/Tracker/HTTP.pod
lib/Net/BitTorrent/Tracker/UDP.pm
lib/Net/BitTorrent/Tracker/UDP.pod
lib/Net/BitTorrent/Tracker/WebSeed.pm
lib/Net/BitTorrent/Tracker/WebSeed.pod
lib/Net/BitTorrent/Transport/TCP.pm
lib/Net/BitTorrent/Transport/TCP.pod
lib/Net/BitTorrent/Types.pm
lib/Net/BitTorrent/Types.pod
t/000_bitfield.t
t/001_storage_merkle.t
t/002_protocol_bep23.t
t/100_protocol_bep03.t
t/101_protocol_bep10.t
t/102_protocol_bep06.t
t/103_protocol_bep09.t
t/104_protocol_bep11.t
t/105_protocol_bep52.t
t/106_protocol_bep53.t
t/107_protocol_mse.t
t/108_protocol_bep14.t
t/110_transport_utp.t
t/111_transport_utp_sack.t
t/112_transport_utp_retransmit.t
t/200_storage.t
t/201_generator.t
t/202_metainfo_coverage.t
t/203_malformed_metadata.t
t/300_tracker_http.t
t/301_tracker_udp.t
t/302_tracker_webseed.t
t/303_tracker_async.t
t/310_dht_node_id_rotation.t
t/400_handshake_autodetect.t
t/401_hybrid_handshake.t
t/402_feature_toggles.t
t/403_portmapper.t
t/404_peer_reputation.t
t/405_protocol_bep11_logic.t
t/406_protocol_bep16.t
t/407_adaptive_choking.t
t/408_verification_throttling.t
t/409_state_persistence.t
t/410_magnet_xpe.t
t/411_swarm_metadata_dht.t
t/412_advanced_system_logic.t
t/413_encryption_levels.t
t/414_repro_magnet_storage.t
t/500_api_usability.t
t/600_dht_local_mock.t
t/601_dht_find_hash.t
t/602_dht_announce.t
t/603_dht_ipv6.t
t/605_dht_swarm.t
t/606_dht_io_async.t
t/607_dht_bep32.t
t/608_dht_bep42.t
t/609_dht_crc32c.t
t/610_dht_bep33.t
t/611_dht_bep44.t
t/613_dht_bep51.t
t/615_dht_node_id_rotation.t
t/900_data/EndeavourOS_Endeavour_neo-2024.09.22.iso.torrent
t/900_data/Qubes-R4.2.3-x86_64.torrent
t/900_data/archlinux-2024.10.01-x86_64.iso.torrent
t/900_data/debian-12.7.0-amd64-netinst.iso.torrent
t/900_data/debian-edu-12.7.0-amd64-netinst.iso.torrent
t/900_data/test_torrents/absolute_filename.torrent
t/900_data/test_torrents/backslash_path.torrent
t/900_data/test_torrents/bad_name.torrent
t/900_data/test_torrents/base.torrent
t/900_data/test_torrents/collection.torrent
t/900_data/test_torrents/collection2.torrent
t/900_data/test_torrents/creation_date.torrent
t/900_data/test_torrents/dht_nodes.torrent
t/900_data/test_torrents/duplicate_files.torrent
t/900_data/test_torrents/duplicate_web_seeds.torrent
t/900_data/test_torrents/empty-files-1.torrent
t/900_data/test_torrents/empty-files-2.torrent
t/900_data/test_torrents/empty-files-3.torrent
t/900_data/test_torrents/empty-files-4.torrent
t/900_data/test_torrents/empty-files-5.torrent
t/900_data/test_torrents/empty_httpseed.torrent
t/900_data/test_torrents/empty_path.torrent
t/900_data/test_torrents/empty_path_multi.torrent
t/900_data/test_torrents/hidden_parent_path.torrent
t/900_data/test_torrents/httpseed.torrent
t/900_data/test_torrents/invalid_file_size.torrent
t/900_data/test_torrents/invalid_filename.torrent
t/900_data/test_torrents/invalid_filename2.torrent
t/900_data/test_torrents/invalid_info.torrent
t/900_data/test_torrents/invalid_name.torrent
t/900_data/test_torrents/invalid_name2.torrent
t/900_data/test_torrents/invalid_name3.torrent
t/900_data/test_torrents/invalid_path_list.torrent
t/900_data/test_torrents/invalid_piece_len.torrent
t/900_data/test_torrents/invalid_pieces.torrent
t/900_data/test_torrents/invalid_symlink.torrent
t/900_data/test_torrents/large.torrent
t/900_data/test_torrents/large_piece_size.torrent
t/900_data/test_torrents/long_name.torrent
t/900_data/test_torrents/many_pieces.torrent
t/900_data/test_torrents/missing_path_list.torrent
t/900_data/test_torrents/missing_piece_len.torrent
t/900_data/test_torrents/negative_file_size.torrent
t/900_data/test_torrents/negative_piece_len.torrent
t/900_data/test_torrents/negative_size.torrent
t/900_data/test_torrents/no_creation_date.torrent
t/900_data/test_torrents/no_files.torrent
t/900_data/test_torrents/no_name.torrent
t/900_data/test_torrents/overlapping_symlinks.torrent
t/900_data/test_torrents/pad_file.torrent
t/900_data/test_torrents/pad_file_no_path.torrent
t/900_data/test_torrents/parent_path.torrent
t/900_data/test_torrents/sample.torrent
t/900_data/test_torrents/similar.torrent
t/900_data/test_torrents/similar2.torrent
t/900_data/test_torrents/single_multi_file.torrent
t/900_data/test_torrents/slash_path.torrent
t/900_data/test_torrents/slash_path2.torrent
t/900_data/test_torrents/slash_path3.torrent
t/900_data/test_torrents/string.torrent
t/900_data/test_torrents/symlink1.torrent
t/900_data/test_torrents/symlink2.torrent
t/900_data/test_torrents/symlink_zero_size.torrent
t/900_data/test_torrents/unaligned_pieces.torrent
t/900_data/test_torrents/unordered.torrent
t/900_data/test_torrents/url_list.torrent
t/900_data/test_torrents/url_list2.torrent
t/900_data/test_torrents/url_list3.torrent
t/900_data/test_torrents/url_seed.torrent
t/900_data/test_torrents/url_seed_multi.torrent
t/900_data/test_torrents/url_seed_multi_single_file.torrent
t/900_data/test_torrents/url_seed_multi_space.torrent
t/900_data/test_torrents/url_seed_multi_space_nolist.torrent
t/900_data/test_torrents/v2.torrent
t/900_data/test_torrents/v2_bad_file_alignment.torrent
t/900_data/test_torrents/v2_deep_recursion.torrent
t/900_data/test_torrents/v2_empty_file.torrent
t/900_data/test_torrents/v2_hybrid-missing-tailpad.torrent
t/900_data/test_torrents/v2_hybrid.torrent
t/900_data/test_torrents/v2_incomplete_piece_layer.torrent
t/900_data/test_torrents/v2_invalid_file.torrent
t/900_data/test_torrents/v2_invalid_filename.torrent
t/900_data/test_torrents/v2_invalid_pad_file.torrent
t/900_data/test_torrents/v2_invalid_piece_layer.torrent
t/900_data/test_torrents/v2_invalid_piece_layer_root.torrent
t/900_data/test_torrents/v2_invalid_piece_layer_size.torrent
t/900_data/test_torrents/v2_invalid_root_hash.torrent
t/900_data/test_torrents/v2_large_file.torrent
t/900_data/test_torrents/v2_large_offset.torrent
t/900_data/test_torrents/v2_mismatching_metadata.torrent
t/900_data/test_torrents/v2_missing_file_root_invalid_symlink.torrent
t/900_data/test_torrents/v2_multipiece_file.torrent
t/900_data/test_torrents/v2_multiple_files.torrent
t/900_data/test_torrents/v2_no_piece_layers.torrent
t/900_data/test_torrents/v2_no_power2_piece.torrent
t/900_data/test_torrents/v2_non_multiple_piece_layer.torrent
t/900_data/test_torrents/v2_only.torrent
t/900_data/test_torrents/v2_overlong_integer.torrent
t/900_data/test_torrents/v2_piece_layer_invalid_file_hash.torrent
t/900_data/test_torrents/v2_piece_size.torrent
t/900_data/test_torrents/v2_symlinks.torrent
t/900_data/test_torrents/v2_unknown_piece_layer_entry.torrent
t/900_data/test_torrents/v2_unordered_files.torrent
t/900_data/test_torrents/v2_zero_root.torrent
t/900_data/test_torrents/v2_zero_root_small.torrent
t/900_data/test_torrents/whitespace_url.torrent
t/900_data/test_torrents/zero.torrent
t/900_data/test_torrents/zero2.torrent
t/900_swarm_simulation.t
t/901_full_stack.t
t/999_peer_id_spec.t