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