diff options
author | hozan23 <hozan23@proton.me> | 2023-11-09 11:38:19 +0300 |
---|---|---|
committer | hozan23 <hozan23@proton.me> | 2023-11-09 11:38:19 +0300 |
commit | 849d827486c75b2ab223d7b0e638dbb5b74d4d1d (patch) | |
tree | 41cd3babc37147ec4a40cab8ce8ae31c91cce33b /karyons_p2p/examples/peer.rs | |
parent | de1354525895ffbad18f90a5246fd65157f7449e (diff) |
rename crates
Diffstat (limited to 'karyons_p2p/examples/peer.rs')
-rw-r--r-- | karyons_p2p/examples/peer.rs | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/karyons_p2p/examples/peer.rs b/karyons_p2p/examples/peer.rs deleted file mode 100644 index f805d68..0000000 --- a/karyons_p2p/examples/peer.rs +++ /dev/null @@ -1,82 +0,0 @@ -use std::sync::Arc; - -use clap::Parser; -use easy_parallel::Parallel; -use smol::{channel, future, Executor}; - -use karyons_net::{Endpoint, Port}; - -use karyons_p2p::{Backend, Config, PeerID}; - -#[derive(Parser)] -#[command(author, version, about, long_about = None)] -struct Cli { - /// Optional list of bootstrap peers to start the seeding process. - #[arg(short)] - bootstrap_peers: Vec<Endpoint>, - - /// Optional list of peer endpoints for manual connections. - #[arg(short)] - peer_endpoints: Vec<Endpoint>, - - /// Optional endpoint for accepting incoming connections. - #[arg(short)] - listen_endpoint: Option<Endpoint>, - - /// Optional TCP/UDP port for the discovery service. - #[arg(short)] - discovery_port: Option<Port>, - - /// Optional user id - #[arg(long)] - userid: Option<String>, -} - -fn main() { - env_logger::init(); - let cli = Cli::parse(); - - let peer_id = match cli.userid { - Some(userid) => PeerID::new(userid.as_bytes()), - None => PeerID::random(), - }; - - // Create the configuration for the backend. - let config = Config { - listen_endpoint: cli.listen_endpoint, - peer_endpoints: cli.peer_endpoints, - bootstrap_peers: cli.bootstrap_peers, - discovery_port: cli.discovery_port.unwrap_or(0), - ..Default::default() - }; - - // Create a new Backend - let backend = Backend::new(peer_id, config); - - let (ctrlc_s, ctrlc_r) = channel::unbounded(); - let handle = move || ctrlc_s.try_send(()).unwrap(); - ctrlc::set_handler(handle).unwrap(); - - let (signal, shutdown) = channel::unbounded::<()>(); - - // Create a new Executor - let ex = Arc::new(Executor::new()); - - let task = async { - // Run the backend - backend.run(ex.clone()).await.unwrap(); - - // Wait for ctrlc signal - ctrlc_r.recv().await.unwrap(); - - // Shutdown the backend - backend.shutdown().await; - - drop(signal); - }; - - // Run four executor threads. - Parallel::new() - .each(0..4, |_| future::block_on(ex.run(shutdown.recv()))) - .finish(|| future::block_on(task)); -} |