7 releases (4 breaking)
0.5.2 | Jul 13, 2024 |
---|---|
0.5.1 | Sep 22, 2023 |
0.5.0 | Jun 4, 2023 |
0.4.0 | Aug 15, 2020 |
0.1.0 | Sep 22, 2018 |
#448 in Parser implementations
1,711 downloads per month
24KB
518 lines
mrtd
A Rust parser for the machine-readable zone (MRZ) of machine-readable travel documents (MRTD) as defined by ICAO Document 9303.
Supported travel documents:
- Passport
- Identity Card
Example
use mrtd::{parse, Document};
fn main() {
let passport_mrz = "P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<\
L898902C36UTO7408122X1204159ZE184226B<<<<<10";
if let Document::Passport(passport) = parse(passport_mrz).unwrap() {
assert_eq!(passport.passport_number, "L898902C3");
println!("{:?}", passport);
}
let id_card_mrz = "C<ITACA00000AA4<<<<<<<<<<<<<<<\
6412308F2212304ITA<<<<<<<<<<<0\
ROSSI<<BIANCA<<<<<<<<<<<<<<<<<";
if let Document::IdentityCard(identity_card) = parse(id_card_mrz).unwrap() {
assert_eq!(identity_card.document_number, "CA00000AA");
println!("{:?}", identity_card);
};
}
Dependencies
~3–4.5MB
~77K SLoC