├── .github ├── codecov.yml └── workflows │ └── rust.yml ├── .gitignore ├── .rustfmt.toml ├── Cargo.lock ├── Cargo.toml ├── README.md ├── benches ├── main.rs └── mempool.rs ├── scripts ├── Fedora-Workstation-Live-x86_64-33.torrent ├── run.sh └── test_torrents │ ├── absolute_filename.torrent │ ├── backslash_path.torrent │ ├── bad_name.torrent │ ├── base.torrent │ ├── creation_date.torrent │ ├── duplicate_files.torrent │ ├── duplicate_web_seeds.torrent │ ├── empty_httpseed.torrent │ ├── empty_path.torrent │ ├── empty_path_multi.torrent │ ├── hidden_parent_path.torrent │ ├── httpseed.torrent │ ├── invalid_file_size.torrent │ ├── invalid_filename.torrent │ ├── invalid_filename2.torrent │ ├── invalid_info.torrent │ ├── invalid_name.torrent │ ├── invalid_name2.torrent │ ├── invalid_name3.torrent │ ├── invalid_path_list.torrent │ ├── invalid_piece_len.torrent │ ├── invalid_pieces.torrent │ ├── invalid_symlink.torrent │ ├── large.torrent │ ├── long_name.torrent │ ├── many_pieces.torrent │ ├── missing_path_list.torrent │ ├── missing_piece_len.torrent │ ├── negative_file_size.torrent │ ├── negative_piece_len.torrent │ ├── negative_size.torrent │ ├── no_creation_date.torrent │ ├── no_files.torrent │ ├── no_name.torrent │ ├── overlapping_symlinks.torrent │ ├── pad_file.torrent │ ├── pad_file_no_path.torrent │ ├── parent_path.torrent │ ├── sample.torrent │ ├── single_multi_file.torrent │ ├── slash_path.torrent │ ├── slash_path2.torrent │ ├── slash_path3.torrent │ ├── string.torrent │ ├── symlink1.torrent │ ├── symlink2.torrent │ ├── symlink_zero_size.torrent │ ├── unaligned_pieces.torrent │ ├── unordered.torrent │ ├── url_list.torrent │ ├── url_list2.torrent │ ├── url_list3.torrent │ ├── url_seed.torrent │ ├── url_seed_multi.torrent │ ├── url_seed_multi_single_file.torrent │ ├── url_seed_multi_space.torrent │ ├── url_seed_multi_space_nolist.torrent │ ├── v2.torrent │ ├── v2_bad_file_alignment.torrent │ ├── v2_deep_recursion.torrent │ ├── v2_hybrid.torrent │ ├── v2_invalid_file.torrent │ ├── v2_invalid_filename.torrent │ ├── v2_invalid_pad_file.torrent │ ├── v2_invalid_piece_layer.torrent │ ├── v2_invalid_piece_layer_size.torrent │ ├── v2_large_file.torrent │ ├── v2_large_offset.torrent │ ├── v2_mismatching_metadata.torrent │ ├── v2_missing_file_root_invalid_symlink.torrent │ ├── v2_multipiece_file.torrent │ ├── v2_multiple_files.torrent │ ├── v2_no_piece_layers.torrent │ ├── v2_no_power2_piece.torrent │ ├── v2_non_multiple_piece_layer.torrent │ ├── v2_only.torrent │ ├── v2_overlong_integer.torrent │ ├── v2_piece_layer_invalid_file_hash.torrent │ ├── v2_piece_size.torrent │ ├── v2_symlinks.torrent │ ├── v2_unordered_files.torrent │ ├── v2_zero_root.torrent │ ├── v2_zero_root_small.torrent │ ├── whitespace_url.torrent │ ├── zero.torrent │ └── zero2.torrent └── src ├── bencode ├── de.rs ├── mod.rs └── ser.rs ├── bin └── main.rs ├── bitfield.rs ├── cache_line.rs ├── errors.rs ├── extensions └── mod.rs ├── fs ├── mod.rs ├── standard_fs.rs └── uring_fs.rs ├── io_uring ├── file.rs ├── mod.rs ├── ring.rs ├── syscalls.rs └── types.rs ├── lib.rs ├── listener.rs ├── logger.rs ├── metadata.rs ├── peer ├── message.rs ├── mod.rs ├── peer.rs ├── reader.rs ├── stream.rs └── writer.rs ├── piece_collector.rs ├── piece_picker.rs ├── pieces.rs ├── session.rs ├── sha1 ├── mod.rs └── x86_sha.rs ├── sha1_pool.rs ├── spsc └── mod.rs ├── time.rs ├── torrent.rs ├── tracker ├── connection.rs ├── http.rs ├── https.rs ├── mod.rs ├── supervisor.rs └── udp.rs ├── udp_ext.rs ├── utils.rs └── utp ├── ack_bitfield.rs ├── listener.rs ├── manager.rs ├── mod.rs ├── socket.rs ├── stream.rs ├── tick.rs ├── udp_socket.rs └── writer.rs /.github/codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/.github/codecov.yml -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/.rustfmt.toml -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/README.md -------------------------------------------------------------------------------- /benches/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/benches/main.rs -------------------------------------------------------------------------------- /benches/mempool.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/benches/mempool.rs -------------------------------------------------------------------------------- /scripts/Fedora-Workstation-Live-x86_64-33.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/Fedora-Workstation-Live-x86_64-33.torrent -------------------------------------------------------------------------------- /scripts/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/run.sh -------------------------------------------------------------------------------- /scripts/test_torrents/absolute_filename.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/absolute_filename.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/backslash_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/backslash_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/bad_name.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/bad_name.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/base.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/base.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/creation_date.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/creation_date.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/duplicate_files.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/duplicate_files.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/duplicate_web_seeds.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/duplicate_web_seeds.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/empty_httpseed.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/empty_httpseed.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/empty_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/empty_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/empty_path_multi.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/empty_path_multi.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/hidden_parent_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/hidden_parent_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/httpseed.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/httpseed.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_file_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_file_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_filename.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_filename.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_filename2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_filename2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_info.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_info.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_name.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_name.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_name2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_name2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_name3.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_name3.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_path_list.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_path_list.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_piece_len.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_piece_len.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_pieces.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_pieces.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/invalid_symlink.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/invalid_symlink.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/large.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/large.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/long_name.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/long_name.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/many_pieces.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/many_pieces.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/missing_path_list.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/missing_path_list.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/missing_piece_len.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/missing_piece_len.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/negative_file_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/negative_file_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/negative_piece_len.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/negative_piece_len.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/negative_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/negative_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/no_creation_date.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/no_creation_date.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/no_files.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/no_files.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/no_name.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/no_name.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/overlapping_symlinks.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/overlapping_symlinks.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/pad_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/pad_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/pad_file_no_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/pad_file_no_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/parent_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/parent_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/sample.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/sample.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/single_multi_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/single_multi_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/slash_path.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/slash_path.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/slash_path2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/slash_path2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/slash_path3.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/slash_path3.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/string.torrent: -------------------------------------------------------------------------------- 1 | 10:libtorrent 2 | -------------------------------------------------------------------------------- /scripts/test_torrents/symlink1.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/symlink1.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/symlink2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/symlink2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/symlink_zero_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/symlink_zero_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/unaligned_pieces.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/unaligned_pieces.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/unordered.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/unordered.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_list.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_list.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_list2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_list2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_list3.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_list3.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_seed.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_seed.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_seed_multi.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_seed_multi.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_seed_multi_single_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_seed_multi_single_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_seed_multi_space.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_seed_multi_space.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/url_seed_multi_space_nolist.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/url_seed_multi_space_nolist.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_bad_file_alignment.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_bad_file_alignment.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_deep_recursion.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_deep_recursion.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_hybrid.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_hybrid.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_invalid_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_invalid_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_invalid_filename.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_invalid_filename.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_invalid_pad_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_invalid_pad_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_invalid_piece_layer.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_invalid_piece_layer.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_invalid_piece_layer_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_invalid_piece_layer_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_large_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_large_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_large_offset.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_large_offset.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_mismatching_metadata.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_mismatching_metadata.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_missing_file_root_invalid_symlink.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_missing_file_root_invalid_symlink.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_multipiece_file.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_multipiece_file.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_multiple_files.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_multiple_files.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_no_piece_layers.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_no_piece_layers.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_no_power2_piece.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_no_power2_piece.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_non_multiple_piece_layer.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_non_multiple_piece_layer.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_only.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_only.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_overlong_integer.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_overlong_integer.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_piece_layer_invalid_file_hash.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_piece_layer_invalid_file_hash.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_piece_size.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_piece_size.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_symlinks.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_symlinks.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_unordered_files.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_unordered_files.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_zero_root.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_zero_root.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/v2_zero_root_small.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/v2_zero_root_small.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/whitespace_url.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/whitespace_url.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/zero.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/zero.torrent -------------------------------------------------------------------------------- /scripts/test_torrents/zero2.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/scripts/test_torrents/zero2.torrent -------------------------------------------------------------------------------- /src/bencode/de.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/bencode/de.rs -------------------------------------------------------------------------------- /src/bencode/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/bencode/mod.rs -------------------------------------------------------------------------------- /src/bencode/ser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/bencode/ser.rs -------------------------------------------------------------------------------- /src/bin/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/bin/main.rs -------------------------------------------------------------------------------- /src/bitfield.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/bitfield.rs -------------------------------------------------------------------------------- /src/cache_line.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/cache_line.rs -------------------------------------------------------------------------------- /src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/errors.rs -------------------------------------------------------------------------------- /src/extensions/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/extensions/mod.rs -------------------------------------------------------------------------------- /src/fs/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/fs/mod.rs -------------------------------------------------------------------------------- /src/fs/standard_fs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/fs/standard_fs.rs -------------------------------------------------------------------------------- /src/fs/uring_fs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/fs/uring_fs.rs -------------------------------------------------------------------------------- /src/io_uring/file.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/io_uring/file.rs -------------------------------------------------------------------------------- /src/io_uring/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/io_uring/mod.rs -------------------------------------------------------------------------------- /src/io_uring/ring.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/io_uring/ring.rs -------------------------------------------------------------------------------- /src/io_uring/syscalls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/io_uring/syscalls.rs -------------------------------------------------------------------------------- /src/io_uring/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/io_uring/types.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/listener.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/listener.rs -------------------------------------------------------------------------------- /src/logger.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/logger.rs -------------------------------------------------------------------------------- /src/metadata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/metadata.rs -------------------------------------------------------------------------------- /src/peer/message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/message.rs -------------------------------------------------------------------------------- /src/peer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/mod.rs -------------------------------------------------------------------------------- /src/peer/peer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/peer.rs -------------------------------------------------------------------------------- /src/peer/reader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/reader.rs -------------------------------------------------------------------------------- /src/peer/stream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/stream.rs -------------------------------------------------------------------------------- /src/peer/writer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/peer/writer.rs -------------------------------------------------------------------------------- /src/piece_collector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/piece_collector.rs -------------------------------------------------------------------------------- /src/piece_picker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/piece_picker.rs -------------------------------------------------------------------------------- /src/pieces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/pieces.rs -------------------------------------------------------------------------------- /src/session.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/session.rs -------------------------------------------------------------------------------- /src/sha1/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/sha1/mod.rs -------------------------------------------------------------------------------- /src/sha1/x86_sha.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/sha1/x86_sha.rs -------------------------------------------------------------------------------- /src/sha1_pool.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/sha1_pool.rs -------------------------------------------------------------------------------- /src/spsc/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/spsc/mod.rs -------------------------------------------------------------------------------- /src/time.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/time.rs -------------------------------------------------------------------------------- /src/torrent.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/torrent.rs -------------------------------------------------------------------------------- /src/tracker/connection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/connection.rs -------------------------------------------------------------------------------- /src/tracker/http.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/http.rs -------------------------------------------------------------------------------- /src/tracker/https.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/https.rs -------------------------------------------------------------------------------- /src/tracker/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/mod.rs -------------------------------------------------------------------------------- /src/tracker/supervisor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/supervisor.rs -------------------------------------------------------------------------------- /src/tracker/udp.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/tracker/udp.rs -------------------------------------------------------------------------------- /src/udp_ext.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/udp_ext.rs -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utils.rs -------------------------------------------------------------------------------- /src/utp/ack_bitfield.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/ack_bitfield.rs -------------------------------------------------------------------------------- /src/utp/listener.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/listener.rs -------------------------------------------------------------------------------- /src/utp/manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/manager.rs -------------------------------------------------------------------------------- /src/utp/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/mod.rs -------------------------------------------------------------------------------- /src/utp/socket.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/socket.rs -------------------------------------------------------------------------------- /src/utp/stream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/stream.rs -------------------------------------------------------------------------------- /src/utp/tick.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/tick.rs -------------------------------------------------------------------------------- /src/utp/udp_socket.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/udp_socket.rs -------------------------------------------------------------------------------- /src/utp/writer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebastiencs/rustorrent/HEAD/src/utp/writer.rs --------------------------------------------------------------------------------