Show the crate…
1 stable release
1.12.0 | Feb 28, 2021 |
---|
#6 in #vapcore
Used in 4 crates
(2 directly)
300KB
7K
SLoC
Network and general IO module.
Example usage for creating a network service and adding an IO handler:
extern crate network as net;
extern crate vapcore_network_devp2p as devp2p;
use net::*;
use devp2p::NetworkService;
use std::sync::Arc;
use std::time::Duration;
struct MyHandler;
impl NetworkProtocolHandler for MyHandler {
fn initialize(&self, io: &NetworkContext) {
io.register_timer(0, Duration::from_secs(1));
}
fn read(&self, io: &NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) {
println!("Received {} ({} bytes) from {}", packet_id, data.len(), peer);
}
fn connected(&self, io: &NetworkContext, peer: &PeerId) {
println!("Connected {}", peer);
}
fn disconnected(&self, io: &NetworkContext, peer: &PeerId) {
println!("Disconnected {}", peer);
}
}
fn main () {
let mut service = NetworkService::new(NetworkConfiguration::new_local(), None).expect("Error creating network service");
service.start().expect("Error starting service");
service.register_protocol(Arc::new(MyHandler), *b"myp", &[(1u8, 1u8)]);
// Wait for quit condition
// ...
// Drop the service
}
Dependencies
~15–23MB
~330K SLoC