Skip to content

Releases: bgpkit/bgpkit-commons

v0.8.2

06 Jun 21:32
db53edd
Compare
Choose a tag to compare

Hot fix

  • Update oneio to 0.18.2 to fix potential build issue related to rustls_sys crate

v0.8.1

01 Jun 16:43
94e7b4e
Compare
Choose a tag to compare

Highlights

  • Added support for loading previously generated and cached AS information directly from BGPKIT cache files.
    • Introduced get_asinfo_map_cached() function and BgpkitCommons::load_asinfo_cached() method for fast, offline
      loading of AS info.
    • Added examples in the documentation for using the cached AS info.
  • Improved AS name resolution:
    • New get_preferred_name() method for AsInfo struct, prioritizing PeeringDB, as2org, then default name.
  • Enhanced PeeringDB integration:
    • Added website field to PeeringDB data.
  • Dependency updates:
    • Bumped peeringdb-rs to 0.1.1 and oneio to 0.18.1 with new features.
    • Cleaned up unused dependencies.
  • Documentation improvements for new features and updated code examples.
  • Added and improved integration tests for cached AS info loading and preferred name resolution.
  • Removed outdated or redundant test code.

Other changes

  • Updated README.md and crate docs to reference version 0.8.
  • Minor internal refactoring and code cleanup.

v0.8.0

27 May 22:41
6973cbc
Compare
Choose a tag to compare

Highlights

  • add support for loading PeeringDB (https://www.peeringdb.com) data for asinfo module
    • it uses the [peeringdb-rs][peeringdb-rs] module for loading the data
    • users should supply a PEERINGDB_API_KEY when using this feature to avoid frequent rate limiting

The PeeringDB data for the asinfo module is simplified to contain only the following fields:

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PeeringdbData {
    pub asn: u32,
    pub name: Option<String>,
    pub name_long: Option<String>,
    pub aka: Option<String>,
    pub irr_as_set: Option<String>,
}

Breaking change

The commons.load_asinfo() now takes four arguments, adding a new load_peeringdb boolean argument at the end.

For getting all other data, including organization and IX information, please check out the [peeringdb-rs][peeringdb-rs] crate.

[peerindb-rs][https://github.com/bgpkit/peeringdb-rs]

v0.7.4

04 Apr 20:21
bc177d1
Compare
Choose a tag to compare

Highlights

  • Update as2org-rs crate to v1.0.0 which fixes an issue of latin-1 encoding for org names

v0.7.3

31 Oct 18:55
2c8a727
Compare
Choose a tag to compare

Highlights

  • add MRT collector peers information
    • struct exposed as crate::mrt_collectors::MrtCollectorPeer
    • fetch data by calling commons.load_mrt_collector_peers() first
    • access all peers by calling commons.mrt_collector_peers()
    • access full-feed peers only by calling commons.mrt_collector_peers_full_feed()

MrtCollectorPeer struct definition:

pub struct MrtCollectorPeer {
    /// latest available dated
    pub date: NaiveDate,
    /// collector peer IP
    pub ip: IpAddr,
    /// collector peer ASN
    pub asn: u32,
    /// collector name
    pub collector: String,
    /// number of IPv4 prefixes
    pub num_v4_pfxs: u32,
    /// number of IPv6 prefixes
    pub num_v6_pfxs: u32,
    /// number of connected ASNs
    pub num_connected_asns: u32,
}

Example usage:

use bgpkit_commons::BgpkitCommons;
fn main() {
    let mut commons = BgpkitCommons::new();
    commons.load_mrt_collector_peers().unwrap();
    let peers = commons.mrt_collector_peers();
    for peer in peers {
        println!("{:?}", peer);
    }
    let full_feed_peers = commons.mrt_collector_peers_full_feed();
    for peer in full_feed_peers {
        println!("{:?}", peer);
    }
}

v0.7.2

11 Oct 19:50
7249d79
Compare
Choose a tag to compare

Highlights

  • allow exporting all bogon prefixes and asns
  • update cloudflare RPKI data parsing, also added ASPA data
    • added examples/list_aspas.rs to demonstrate how to list all ASPAs

v0.7.1

03 Oct 23:45
f183d15
Compare
Choose a tag to compare

Highlights

  • add new asinfo_all() function to return information for all ASNs in a single call

Other changes

  • improve documentation
  • improve ci testing workflow
  • add integration tests
  • update dependencies

v0.7.0

03 Oct 23:08
ed45164
Compare
Choose a tag to compare
  • consolidate all functionalities into a single BgpkitCommons instance

Example usage:

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

v0.6.0

26 Jun 20:00
d61997c
Compare
Choose a tag to compare

v0.5.2

21 Mar 02:38
0acb54a
Compare
Choose a tag to compare

Highlights

  • update oneio to 0.16.5 to fix route-views collector API issue