as2org-rs: utility crate for accessing CAIDA AS to organization mapping
This readme is generated from the library's doc comments using cargo-readme. Please refer to the Rust docs website for the full documentation
as2org-rs: Access CAIDA AS-to-Organization mappings in Rust
This crate provides a small, dependency-light helper for reading and querying CAIDA's AS Organizations dataset. It downloads (or opens a local/remote path) the newline-delimited JSON (JSONL) files published by CAIDA and exposes a simple API to:
- Fetch the latest dataset URL from CAIDA
- Load the dataset into memory
- Look up information for a given ASN
- Find all "sibling" ASNs that belong to the same organization
- Test whether two ASNs are siblings (belong to the same org)
The crate supports local files, HTTP(S) URLs, and gz-compressed inputs via
the oneio crate.
Installation
Add the dependency to your Cargo.toml:
[]
= "1"
Data source
- CAIDA AS Organizations Dataset: http://www.caida.org/data/as-organizations
Data model
Public return type:
As2orgAsInfo contains:
asn: the AS numbername: the name provided for the individual AS numbercountry_code: the registration country code of the organizationorg_id: the CAIDA/WHOIS organization identifierorg_name: the organization's namesource: the RIR or NIR database that contained this entry
Quickstart
Load the most recent dataset and run typical queries:
use As2org;
// Construct from the latest public dataset (requires network access)
let as2org = new.unwrap;
// Look up one ASN
let info = as2org.get_as_info.unwrap;
assert_eq!;
// List all siblings for an ASN (ASNs under the same org)
let siblings = as2org.get_siblings.unwrap;
assert!;
// Check whether two ASNs are siblings
assert!;
Offline and custom input
You can also point to a local file path or a remote URL (HTTP/HTTPS), gzipped or plain:
use As2org;
// From a local jsonl.gz file
let as2org = new.unwrap;
// From an explicit HTTPS URL
let as2org = new.unwrap;
Errors
Constructors and helper functions return anyhow::Result<T>. For lookups,
the API returns Option<_> when a requested ASN or organization is missing.
Notes
- Network access is only required when you pass
NonetoAs2org::newso the crate can discover and fetch the latest dataset URL. - Dataset files can be large; loading them will allocate in-memory maps for fast queries.
- This crate is not affiliated with CAIDA. Please review CAIDA's data usage policies before redistribution or heavy automated access.
License
MIT