dhaar-torrent 0.4.0

A BitTorrent client library: peer wire protocol, piece management and a resumable on-disk store
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use rand::{RngExt, rng};

pub fn generate_random_peer_id() -> [u8; 20] {
    let mut peer_id = [0u8; 20];

    let version = env!("CARGO_PKG_VERSION")
        .split('.')
        .take(2)
        .collect::<Vec<_>>()
        .join("");
    let prefix = format!("-DH{}-", version);
    peer_id[..prefix.len()].copy_from_slice(prefix.as_bytes());

    rng().fill(&mut peer_id[prefix.len()..]);

    peer_id
}