# swift-iso15022-rust # Rust SWIFT ISO 15022 SDK Rust SWIFT ISO 15022 SDK is a comprehensive library for handling SWIFT messages in Rust, focusing on the MT103 format initially and with plans to extend support to various ISO 15022 messages. ## Features - **MT103 Message Handling:** Create and interpret SWIFT MT103 messages effortlessly. - **Extensible Architecture:** Designed to accommodate new ISO 15022 message types seamlessly. - **Parsing and Serialization:** Efficient parsing and serialization mechanisms for message manipulation. - **Typed Structures:** Well-defined Rust structs for different SWIFT message types. - **Error Handling:** Robust error handling for improved reliability. ## Table of Contents - [ISO 15022 Standard](#iso-15022-standard) - [Installation](#installation) - [Usage](#usage) - [MT103 Generation](#mt103-generation) - [MT103 Interpretation](#mt103-interpretation) - [Contributing](#contributing) - [License](#license) ## ISO 15022 Standard The [ISO 15022](https://www.iso15022.org/) standard is an international messaging standard developed by the International Organization for Standardization (ISO). It defines a set of principles to standardize financial messages exchanged between financial institutions and other participants in the financial industry. ## Installation Add the Rust SWIFT SDK to your `Cargo.toml`: ```toml [dependencies] swift_iso15022 = "0.1.2-dev" ``` ## Library usage example ```rust use swift_iso15022::mt::{MessageTrait, Mt103}; fn main() { let input = "\ :20:TEST-IBAN001\r\n\ :13C:/SNDTIME/0701+0200\r\n\ :23B:CRED\r\n\ :32A:060804EUR18001,01\r\n\ :33B:EUR18001,01\r\n\ :50K:/KUNDE WO FOO FOO\r\n\ SYMMACH. FOO OREOKASTRO-DIAVATA\r\n\ GR-57008 FOO\r\n\ GREECE\r\n\ :52A://TAGRPRNKGRAAXXX052/S/20115\r\n\ PRNKGRAAXXX\r\n\ :57A:GENODE51LOS\r\n\ :59:/DE66593922000000045500\r\n\ FOO DER VOLKS-RAIFFEISENBANK\r\n\ RAIFFEISENPLATZ\r\n\ D-66787 WADGASSEN-HOSTENBACH\r\n\ GERMANY\r\n\ :70:TEST IBAN 01P DE\r\n\ IBAN FOO\r\n\ :71A:SHA"; let input_parsed = Mt103::parse_str_swift(input).unwrap(); assert_eq!(input_parsed.sender_reference.0, "TEST-IBAN001"); } ```