Skip to main content

This package provides a Python interface to parse SSIM files into a Polars DataFrame.

Project description

rusty-ssim

A high-performance Rust-built IATA SSIM (Standard Schedules Information Manual) parser that can be used via CLI, Python, or Rust. This tool efficiently parses SSIM files into Polars DataFrames or exports directly to CSV/Parquet formats with streaming support for large files.

RustySSIM PyPI Build Release CLI License: MIT Python 3.9+

Features

  • 🚀 Fast Performance: Built in Rust for optimal parsing speed with parallel processing capabilities
  • ⚡ Parallel Processing: Leverages multi-core CPUs to process large SSIM files efficiently
  • 💾 Memory Efficient: Optimize for large SSIM files
  • 📊 Multiple Output Formats: CSV, Parquet, and in-memory DataFrames
  • 🗜️ Flexible Compression: Support for various Parquet compression options (zstd, lz4, snappy, etc.)
  • 🔧 Tooling Options: Both CLI and Python APIs available
  • 📈 Production Ready: Handles files of any size with configurable batch processing

Quick Start

Python (Most Common Use Case)

import rustyssim as rs

# Parse SSIM file to DataFrame
df = rs.parse_ssim_to_dataframe("path/to/schedule.ssim")
print(f"Parsed {len(df)} flight records")

# Split into separate DataFrames by record type
carriers, flights, segments = rs.split_ssim_to_dataframes("schedule.ssim")

# Direct export to optimized formats
rs.parse_ssim_to_csv("schedule.ssim", "output.csv")
rs.parse_ssim_to_parquets("schedule.ssim", "./parquet_files", compression="zstd")

CLI (For Data Processing Pipelines)

# Convert to CSV
ssim csv -s schedule.ssim -o output.csv

# Convert to compressed Parquet files (one per airline)
ssim parquet -s schedule.ssim -o ./output -c zstd -b 50000

Installation

Python

pip install rustyssim

(Build from Source)

# Clone the repository
git clone https://github.com/wcagreen/rusty-ssim.git
cd rusty-ssim

# Install Python package
pip install maturin
maturin develop -m py-rusty-ssim/Cargo.toml

# Build CLI tool
cargo build -p cli-rusty-ssim --release

Requirements:

(Build CLI with Docker)

Download the Dockerfile from the repo, or build one your self.

# Build docker image.
docker build --no-cache -t wcagreen/rusty-ssim:latest .

# To run you can use the following command.
docker run --rm -v "${PWD}:/data" wcagreen/rusty-ssim:latest @args

# You can also just make this a permanent function for powershell, etc...

Documentation

📖 Python API Documentation

Complete reference for all Python functions with examples, parameters, and return values.

💻 CLI Documentation

Comprehensive guide for command-line usage, performance tuning, and integration examples.

Data Structure

The parser handles three types of SSIM records according to IATA standards:

Carrier Records (Type 2)

Contains airline and schedule metadata.

Flight Records (Type 3)

Contains core flight leg information.

Segment Records (Type 4)

Contains flight segment information.

Use Cases

Data Analytics

# Analyze route networks
df = rs.parse_ssim_to_dataframe("schedule.ssim")
routes = df.group_by(['departure_station', 'arrival_station']).count()

# Export for Tableau, Power BI, etc.
rs.parse_ssim_to_csv("schedule.ssim", "analytics_export.csv")
# Split by carrier for airline-specific analysis
carriers, flights, segments = rs.split_ssim_to_dataframes("schedule.ssim")

# Analyze specific airline operations
aa_flights = flights.filter(flights['airline_designator'] == 'AA')
capacity_analysis = aa_flights.group_by('aircraft_type').agg([
    pl.count().alias('flights'),
    pl.col('departure_station').n_unique().alias('origins')
])

Data Engineering Pipelines

# Batch processing in ETL pipelines
ssim parquet -s "./huge_multi_carrier_ssim.dat" -o /data/processed/ -c zstd -b 100000

Development

Running Tests

# Rust tests
cargo test

# Python tests  
pip install pytest
pytest tests/

Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

Quick Contribution Steps

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes with tests
  4. Run the test suite (cargo test && pytest)
  5. Submit a pull request

Community & Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


📋 Project Structure
rusty-ssim/
├── cli-rusty-ssim/          # CLI application
├── py-rusty-ssim/           # Python bindings  
├── rusty-ssim-core/         # Core Rust library
├── docs/                    # Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rustyssim-0.5.2.tar.gz (50.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rustyssim-0.5.2-cp313-cp313t-win_amd64.whl (20.5 MB view details)

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rustyssim-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl (20.4 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

rustyssim-0.5.2-cp313-cp313t-macosx_10_12_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

rustyssim-0.5.2-cp39-abi3-win_amd64.whl (20.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.5.2-cp39-abi3-musllinux_1_2_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

rustyssim-0.5.2-cp39-abi3-musllinux_1_2_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.5.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

rustyssim-0.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

rustyssim-0.5.2-cp39-abi3-macosx_11_0_arm64.whl (20.4 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.5.2-cp39-abi3-macosx_10_12_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file rustyssim-0.5.2.tar.gz.

File metadata

  • Download URL: rustyssim-0.5.2.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustyssim-0.5.2.tar.gz
Algorithm Hash digest
SHA256 261bb60c4ed4d2b0a3af96d283cb400da4da863dd7fe3b79e8e464c5b53c6854
MD5 03c9c693fb82cc4fc274a37ee372829d
BLAKE2b-256 c7ee97cc6f23150ca2c15a674d036f22615a570f07b3d1f95b8829254dad851f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2.tar.gz:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: rustyssim-0.5.2-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 20.5 MB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 8e8d8a7dd572a31857a234764dc6d0d4cf74698ddef0cd410084f3bc0a432cf3
MD5 16547d63b5ead4d97f445b5300b7a5d8
BLAKE2b-256 10981c42bfb5cd90b5448a033b3549cc9c22ec5f441c4bb5b78cdcc1f684e14c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-win_amd64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d6a3e46e7d7937f05971212fa5bf40da6de45210adf9f0d86a92bfd7e6218472
MD5 db650473db7769adb8e0f60d6faa6cb3
BLAKE2b-256 085c1b0e0ede47b4758b97f4bb5c502e45e209b5da53975b75fb57864257a5f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9def46676bad0cf45c3020088a4f1854053d055debd5de4a39c98f238c6d4d6e
MD5 bbdf7b31c575eff8b257c1fc7c9726f2
BLAKE2b-256 f4833df4ee9d0fa550dae82cb1186e905bd120582d9e57f33958a4620493e62e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76229b1e71f056327913602cbc67040c899956cd6d0f059c817de19fefd88624
MD5 980cb99c538ca276ce0a267ebd3a7c69
BLAKE2b-256 4c1db50cef2dc911e8ae8ab9287a011e8db5a30339b7bb1f7fb40f94658f66c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7dc42d9d3aa2f319cd36bf6e600fad947cce8acc84faaf7765eef1615c97a47f
MD5 299a57366088d7c7f55732af1727c469
BLAKE2b-256 fed1cbf1b340377e470d3daece1656b18144c962d5fac9101c137d16d1526039

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97256d59fa616dbbdbb443f2e1a17c30c69e1330f7ae5403b2db40a18828912a
MD5 fc89fbcc005d18cd5ed61c354b236d5e
BLAKE2b-256 6fd372ffda8cb1f299b050d3b5b9e5f58a2f90a3aef7b23a5746bf4253647d3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ec51a88684d95438a2dd126a7bd22d305e2904a088e02ca3fd2772f88874940e
MD5 2b4c7bcbbc793f6780e45734a8e240bd
BLAKE2b-256 e5ed032126f499225fdbf2926ba638f3d9960d51d8a6ce37d88f006a744c6021

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp313-cp313t-macosx_10_12_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: rustyssim-0.5.2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 20.5 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ace886f66cff12a171cf217256f5d90b587ca90afbe2319ba2cfd8019eca00fd
MD5 cf01036770880975c0bd06694e748ca0
BLAKE2b-256 c41cd2c6001bee66b3b23bd6c2bdb5d7b63c32b8e6019e1d59403fd48a75c11e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-win_amd64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2b1ac15fbdbe4674c7b7201abe4e3088db063acb8374b0d3687333827bf9acb3
MD5 80a8e00ef0920607498ee1c597de5028
BLAKE2b-256 617b53d2294665c7025b8e55dc448d1de257df5d86837cf82f7fc765e592d9f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6b9f9fa568070b66addd1b5993eb30b1cf8041c0655cb58d14838c43661447c1
MD5 476a72b5a0ae1c98dcd477bbf0e5a7c6
BLAKE2b-256 94e96f8a5125984160b1c5ab566174e8c73c6fb6abf9c0453a1ca68980e55637

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f469fe210fedd3cd730fd9f45e976e1f397da950a2c39303af307dae5e90ae59
MD5 2692f42a7cd741731d2ab253e51e8a17
BLAKE2b-256 c6be273850327b16fdd999705cdc5abc81ac771715ba520506abdab9b71c72e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d4232a892f04088eba712f5ec05b40d454ba87f94c291ae932327c6ce035b803
MD5 213331ac6ff09e9fc0ff81fcb9e00fcc
BLAKE2b-256 a2b510f1c034231d833d69ac54cd84edea64236f1e9deb1cd16a41651e57e1e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b4f854d8816b7dd7c36a896b10cb67044fc1033f18d28e29f2a261af8fcb2bc
MD5 bae85e6359209e5ee40c65fd2241a48c
BLAKE2b-256 0c5dd3f0579e9b8436a1e8bdc587712a8af4e310a46e53b9d2f83244ce50d229

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustyssim-0.5.2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2c408d4d3154adb72f4abe09acfd0765c9f99bcae53a0585b02a9b5080d6fbee
MD5 74a8ff9181a42e92d63e76c5ffe6978d
BLAKE2b-256 42ada67d033192e74c471e7c53dcd1681cda22c30e18607dc7b6be6bdf210441

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.2-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-to-pypi.yml on wcagreen/rusty-ssim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page