Skip to main content

Crate rustyssim

Crate rustyssim 

Source
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

FunctionOutput
ssim_to_dataframeSingle DataFrame
ssim_to_dataframesThree DataFrames (carriers, flights, segments)
ssim_to_csvCSV file on disk
ssim_to_parquetsParquet 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). Try 131,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).