Expand description
§ib-flex
Pure Rust parser for Interactive Brokers FLEX XML statements.
§Features
- 🚀 Zero-copy parsing with quick-xml and serde
- 💰 Financial precision with rust_decimal for all monetary values
- 📅 Correct datetime handling with chrono
- ✅ Type-safe enums for asset categories, order types, etc.
- 🔧 No external dependencies beyond XML/serde
- 📦 Supports both Activity and Trade Confirmation FLEX
§Quick Start
use ib_flex::parse_activity_flex;
let xml = std::fs::read_to_string("flex_statement.xml")?;
let statement = parse_activity_flex(&xml)?;
println!("Account: {}", statement.account_id);
println!("Total trades: {}", statement.trades.items.len());
// Calculate total commissions
let total_commission: rust_decimal::Decimal =
statement.trades.items.iter().filter_map(|t| t.commission).sum();
println!("Total commissions: ${}", total_commission);§Supported FLEX Sections
§Activity FLEX
- ✅ Trades
- ✅ Open Positions
- ✅ Cash Transactions
- ✅ Corporate Actions
- ✅ Securities Info
- ✅ FX Conversion Rates
§Trade Confirmation FLEX
- ✅ Trade executions with all details
- ✅ Commission breakdown
§Known Limitations
- Date formats: Only ISO-8601 (yyyy-MM-dd) and yyyyMMdd supported
- Schema versions: Tested with FLEX schema version 3
Re-exports§
pub use error::ParseError;pub use error::Result;pub use types::ActivityFlexStatement;pub use types::AssetCategory;pub use types::BuySell;pub use types::CashTransaction;pub use types::CorporateAction;pub use types::OpenClose;pub use types::OrderType;pub use types::Position;pub use types::PutCall;pub use types::Trade;pub use types::TradeConfirmationStatement;pub use version::FlexSchemaVersion;
Modules§
- error
- Error types for FLEX parsing
- parsers
- FLEX XML parsers
- types
- FLEX data types
- version
- FLEX schema version detection
Enums§
- Statement
Type - FLEX statement type
Functions§
- detect_
statement_ type - Detect FLEX statement type from XML
- parse_
activity_ flex - Parse an Activity FLEX XML statement
- parse_
activity_ flex_ all - Parse all Activity FLEX statements from XML
- parse_
trade_ confirmation - Parse a Trade Confirmation FLEX XML statement