routinator/
lib.rs

1//! The Routinator Library
2//!
3//! This crate contains all the moving parts of the Routinator. The
4//! application itself, via `main.rs` is only a very tiny frontend.
5//!
6//! In addition, this also lets you use Routinator as a library for your own
7//! dedicated RPKI validation needs. The [operation] module should serve as a
8//! good starting point and set of examples since it contains the code for the
9//! various commands Routinator provides and uses all functionality.
10//!
11//! The library roughly consists of three parts: one part collects and
12//! validates RPKI data, one processes the validated data, and the third
13//! part distributes the output data to whomever it may concern.
14//!
15//! The first part can be found in three modules:
16//!
17//! * [collector], which synchronizes a local copy of the published RPKI data
18//!   with its upstream sources,
19//! * [store], which maintains a set of data that has passed fundamental
20//!   vetting in order to deal with incomplete or broken updates from upstream
21//!   sources, and
22//! * [engine], which performs a validation run using both collector and
23//!   store.
24//!
25//! The second part currently comes in two flavours:
26//!
27//! * [payload], which collects and processes data for distribution to
28//!   routers or local use, and
29//! * [rta], which processes Resource Tagged Authorizations (i.e., objects
30//!   signed by resource holders).
31//!
32//! Additional modules can be added in the future.
33//!
34//! The third part is represented by a number of modules with differing
35//! purposes:
36//!
37//! * [output] allows formatting data  in different formats,
38//! * [http] provides an HTTP server with multiple endpoints for all sorts
39//!   of purposes,
40//! * [rtr] provides an RTR server which allows routers to synchronize their
41//!   RPKI filter tables, and
42//! * [validity] can be used to perform route origin validation.
43//!
44//! Apart from these, there are a few more modules that support these core
45//! parts in their work.
46//!
47#![allow(renamed_and_removed_lints)]
48#![allow(clippy::unknown_clippy_lints)]
49
50pub use self::config::Config;
51pub use self::error::{Failed, ExitError};
52pub use self::operation::Operation;
53pub use rpki;
54pub use reqwest;
55
56pub mod collector;
57pub mod config;
58pub mod engine;
59pub mod error;
60pub mod http;
61pub mod log;
62pub mod metrics;
63pub mod operation;
64pub mod output;
65pub mod payload;
66pub mod process;
67pub mod rtr;
68pub mod rta;
69pub mod slurm;
70pub mod store;
71pub mod tals;
72pub mod utils;
73pub mod validity;
74