/bgpkit-commons

Common utility data and functions.

Primary LanguageRustMIT LicenseMIT

BGPKIT Commons

This readme is generated from the library's doc comments using cargo-readme. Please refer to the Rust docs website for the full documentation

Crates.io Docs.rs License Discord

Overview

BGPKIT-Commons is a library for common BGP-related data and functions.

It provides the following modules:

  • mrt_collectors: public RouteViews and RIPE RIS MRT mrt_collectors information extracted from their official APIs
  • asinfo: Autonomous System (AS) information and country lookup
  • countries: country code to name and other information lookup
  • rpki: RPKI validation data. Historical data from RIPE NCC and real-time data from Cloudflare
  • bogons: IP prefix and ASN bogon lookup
  • as2rel: AS-level relationship data, generated by BGPKIT

Basic Usage

Add bgpkit-commons to your Cargo.toml's dependencies section:

bgpkit-commons = "0.7"

bgpkit-commons is designed to load only the data you need. Here is an example of checking if an ASN is a bogon ASN:

use bgpkit_commons::BgpkitCommons;

let mut bgpkit = BgpkitCommons::new();
bgpkit.load_bogons().unwrap();
assert!(bgpkit.bogons_match("23456").unwrap());

The common steps include:

  1. create a mutable BgpkitCommons instance
  2. load the data you need by calling bgpkit.load_xxx() functions
  3. use the data by calling the corresponding functions, named as bgpkit.xxx_yyy()

For detailed usages, please refer to the module documentation.

Feature Flags

  • rustls (default): use rustls instead of native-tls for the underlying HTTPS requests
  • native-tls: use native-tls as the backend

License

MIT