[−][src]Crate koibumi_node
This crate is an experimental Bitmessage node library.
This crate uses
koibumi-core
library crate.
For more information, see
koibumi
application crate.
Examples
use async_std::task; use futures::{sink::SinkExt, stream::StreamExt}; use koibumi_node::{self as node, Command, Config, Event, Response}; let (command_sender, mut response_receiver, handle) = node::spawn(); let config = Config::builder() .server(Some("127.0.0.1:8444".parse().unwrap())) .socks(Some("127.0.0.1:9050".parse().unwrap())) .connect_to_onion(true) .connect_to_ip(true) .build(); let mut sender = command_sender; let response = task::block_on(async { if let Err(err) = sender.send(Command::Start(config)).await { eprintln!("{}", err); return None; } response_receiver.next().await }); let Response::Started(mut receiver) = response.unwrap(); task::block_on(async { let addr = "quzwelsuziwqgpt2.onion:8444".parse().unwrap(); if let Err(err) = sender.send(Command::Connect(addr)).await { eprintln!("{}", err); } }); task::block_on(async { while let Some(event) = receiver.next().await { match event { Event::ConnectionCounts { .. } => (), Event::AddrCount(_count) => (), Event::Established { addr, user_agent } => { println!("established: {} {}", addr, user_agent); } Event::Disconnected { addr } => { println!("disconnected: {}", addr); } Event::Objects { .. } => (), Event::Stopped => { break; } } } handle.await; });
Structs
Config | A set of configurations for a Koibumi Bitmessage node. |
ConfigBuilder | A builder for building a configuration set for a Koibumi Bitmessage node. |
Enums
Command | The commands which accepted by a node. |
Event | The events which occur in a Bitmessage node. |
Response | The responses to the commands. |
Functions
run | Runs an event loop that manage a Bitmessage node. |
spawn | Spawns a task that manage a Bitmessage node. |