Crate arxiv

source ·
Expand description


License CI Security audit codecov

A Rust library for parsing arXiv categories, identifiers and references.


Run the following command in the terminal:

cargo add arxiv

Or, add this to Cargo.toml:

arxiv = "0.2"


use std::str::FromStr;
use arxiv::*;

// Parse an arXiv identifier
let id = ArxivId::from_str("arXiv:9912.12345v2").unwrap();
assert_eq!(id.month(), 12);
assert_eq!(id.year(), 2099);
assert_eq!(id.number(), "12345");
assert_eq!(id.version(), Some(2));

// Parse an arXiv category
let category = ArxivCategoryId::from_str("astro-ph.HE").unwrap();
assert_eq!(, ArxivGroup::Physics);
assert_eq!(category.archive(), ArxivArchive::AstroPh);
assert_eq!(category.subject(), String::from("HE"));

// Parse an arXiv stamp
let stamp = ArxivStamp::from_str("arXiv:0706.0001v1 [q-bio.CB] 1 Jun 2007").unwrap();
assert_eq!(stamp.category(), Some(&ArxivCategoryId::try_new(ArxivArchive::QBio, "CB").unwrap()));
assert_eq!(stamp.submitted().year(), 2007);


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


  • An identifier for arXiv categories, which are composed of an archive and category
  • A unique identifier for articles published on
  • A stamp that is added onto the side of PDF version of arXiv articles


  • A collection of publications that relate under the same field of study
  • A type of classification for arXiv publications
  • An error that can occur when parsing and validating arXiv identifiers
  • Represents the versioned grammar that defines an arXiv identifier
  • An error that can occur when parsing and validating arXiv stamps

Type Definitions