Expand description
This crate provides a client implementation of the IRRd query protocol.
The implementation provides pipelined query execution for maximal performance over a single TCP connection.
§Quickstart
use irrc::{IrrClient, Query, Error};
use rpsl::names::AutNum;
fn main() -> Result<(), Error> {
let mut irr = IrrClient::new("whois.radb.net:43")
.connect()?;
println!("connected to {}", irr.version()?);
let as_set = "AS-FOO".parse().unwrap();
println!("getting members of {}", as_set);
irr.pipeline()
.push(Query::AsSetMembersRecursive(as_set))?
.responses::<AutNum>()
.filter_map(|result| {
result.map_err(|err| {
println!("error parsing member: {}", err);
err
})
.ok()
})
.for_each(|autnum| println!("{}", autnum.content()));
Ok(())
}
Re-exports§
pub use self::error::Error;
Modules§
- Error types returned during query execution
Structs§
- A connection to an IRRd server.
- Builder for IRR query protocol connections.
- A sequence of queries to be executed sequentially using pipelining.
- A successful query response.
- An individual data element contained within the query response.
- Iterator returned by
responses()
method.
Enums§
- IRRd query variants.
- RPSL object classes.