#travel #icao #passport #mrz

mrtd

机器可读旅行证件 (MRTD) 解析器

7 个版本 (4 个破坏性更新)

0.5.2 2024 年 7 月 13 日
0.5.1 2023 年 9 月 22 日
0.5.0 2023 年 6 月 4 日
0.4.0 2020 年 8 月 15 日
0.1.0 2018 年 9 月 22 日

#486解析器实现

Download history 117/week @ 2024-07-10 86/week @ 2024-07-17 243/week @ 2024-07-24 347/week @ 2024-07-31 377/week @ 2024-08-07

每月 1,059 次下载

MIT/Apache

24KB
518 代码行

mrtd

Crate Documentation Build Status

根据国际民航组织 (ICAO) 文档 9303 定义的机器可读旅行证件 (MRTD) 机器可读区域 (MRZ) 的 Rust 解析器

支持的旅行证件

  • 护照
  • 身份证

示例

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);
    };
}

依赖项

~3–4.5MB
~75K SLoC