Expand description
§rustyssim
A high-performance IATA SSIM (Standard Schedules Information Manual) parser built in Rust. Parses SSIM files into Polars DataFrames or exports directly to CSV/Parquet formats.
§Quick Start
use rustyssim::ssim_to_dataframe;
let df = ssim_to_dataframe("schedule.ssim", Some(10000), Some(8192), Some(false), Some(false))
.expect("Failed to parse SSIM file");
println!("Parsed {} flight records", df.height());§Output Formats
| Function | Output |
|---|---|
ssim_to_dataframe | Single DataFrame |
ssim_to_dataframes | Three DataFrames (carriers, flights, segments) |
ssim_to_csv | CSV file on disk |
ssim_to_parquets | Parquet files (one per carrier) |
§Segment Condensing
Functions that accept condense_segments can aggregate multiple segment
records for the same flight into a single JSON column, reducing row count
and file size.
§Performance Tuning
batch_size: Number of records processed per batch. Larger values use more memory but reduce overhead. Default:10,000.buffer_size: File read buffer in bytes. Increase for large files. Default:8,192(8 KB). Try131,072(128 KB) for large files.
Re-exports§
pub use polars;
Functions§
- ssim_
to_ csv - Parse SSIM file and write to CSV (streaming).
- ssim_
to_ dataframe - Parse SSIM file into a single combined DataFrame. Record Types 2, 3, and 4 are merged into one DataFrame with appropriate joins.
- ssim_
to_ dataframes - Parse SSIM file into three separate DataFrames based on record types i.e. 2, 3, and 4 from the SSIM file.
- ssim_
to_ parquets - Parse SSIM file and write to Parquet files (one per carrier).