| Crates.io | iati-xml |
| lib.rs | iati-xml |
| version | 0.1.0 |
| created_at | 2025-10-19 03:47:45.191974+00 |
| updated_at | 2025-10-19 03:47:45.191974+00 |
| description | Streaming XML parser for IATI Activity data (v2.03) that converts into strongly-typed Rust models from iati-types. |
| homepage | https://github.com/codywallace/iati-crates |
| repository | https://github.com/codywallace/iati-crates |
| max_upload_size | |
| id | 1889884 |
| size | 39,490 |
XML parser for the International Aid Transparency Initiative (IATI) Activity Standard v2.03.
This crate provides a lightweight, streaming XML parser that converts <iati-activity> or <iati-activities> XML fragments into strongly-typed Rust structures defined in iati-types.
The IATI Standard publishes aid and development finance data in XML.
iati-xml bridges the gap between this XML and the Rust type system by exposing functions to parse full or partial activity data.
parse_activity() parses a single <iati-activity>.parse_activities() parses an entire <iati-activities> document containing multiple activities.The crate is designed to be:
quick-xml)serde models from iati-typesiati-identifierdefault-currencytransaction-type, transaction-date, and valueuse iati_xml::parse_activity;
use chrono::NaiveDate;
use rust_decimal::Decimal;
let xml = r#"
<iati-activity default-currency="USD">
<iati-identifier>IATI-XYZ-12345</iati-identifier>
<transaction>
<transaction-type code="3"/>
<transaction-date iso-date="2023-05-01"/>
<value currency="EUR" value-date="2023-05-02">50.00</value>
</transaction>
</iati-activity>
"#;
let activity = parse_activity(xml).expect("parsed");
println!("Parsed identifier: {}", activity.iati_identifier);