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 RustySSIM Crate Build Release CLI License: MIT Changelog

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.6.1.tar.gz (51.6 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.6.1-cp313-cp313t-win_amd64.whl (23.5 MB view details)

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rustyssim-0.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl (25.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

rustyssim-0.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rustyssim-0.6.1-cp313-cp313t-macosx_11_0_arm64.whl (23.3 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

rustyssim-0.6.1-cp313-cp313t-macosx_10_12_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

rustyssim-0.6.1-cp39-abi3-win_amd64.whl (23.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl (26.5 MB view details)

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

rustyssim-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl (25.8 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.8 MB view details)

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

rustyssim-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

rustyssim-0.6.1-cp39-abi3-macosx_11_0_arm64.whl (23.3 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.6.1-cp39-abi3-macosx_10_12_x86_64.whl (24.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for rustyssim-0.6.1.tar.gz
Algorithm Hash digest
SHA256 dbeef826ff3d8310d469a12bfd40e2d087a382616f5f269f39d95e58079cb2d9
MD5 43d46fb4a9a3d792c31d0da57f58467c
BLAKE2b-256 af850e24bfbed1bc23002411742a02f7cf7f52dbda0b4d5932fa6e89f41d9bea

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1.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.6.1-cp313-cp313t-win_amd64.whl.

File metadata

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

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 f0ad0123efeef799863057ed84ec21ac1ccfde523cb506ff577d36467b53307a
MD5 f9a80bbb386900f14d1b75ba32e275e1
BLAKE2b-256 df0c0137ac7f624497ff3d94edaa9a4fc94bc6bf2e8e81589f9e7a1061b209ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ee19a816736b956e04b1e9b2ecab4a75a68690fe85099cb606cfcabdf70f3cc6
MD5 58d1576d3ceeae7d1b5620154f4a449c
BLAKE2b-256 4db2e691dfd7fada0fd0e4719ef0b8b198e0ff33ecdb35cf271a256e4a7ee005

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e2b4d79567971dd79ec968f48f34d7bd0ca74d48830f326368e55358e5fe1704
MD5 0a10ecb28f11eac1fd2396eae053e4fc
BLAKE2b-256 749482371f26ae14d1e678606b3edec52ad056563274f355c5bc30cc3fd0169c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b3b1cdeb0ab349947fae83ca42c1fd37c3674a2cf01ec6a9583880b0a872922
MD5 60392155bb7c2949c815209ada91eee1
BLAKE2b-256 cff9708cb1998fbe36ce26df0a60e9b454a85087ad60bf6f26abba172b4d3a92

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e524019bfa3f21c84cfe7e63a2e2c1e4332324d0a27429061e4bb155fe0eaea8
MD5 aaf775f851dfc3c4f874d939a3bbc191
BLAKE2b-256 13ec784680e283c5635bf69800fd770af1049f3072aff1a2e0e25508b51dce04

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 751e48b7188ef6b88a34956db12f6b57fc394a1d677607ee4aec814908cbba65
MD5 7617d17706d1315200f397e2461780a1
BLAKE2b-256 9d577f6f24de7c4e1d6a0fba1c971dcd76522ac3bc21affe47f319e9c9458dc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7eeab9dbc76dfcc91fc9fada6a05852bbb6b96cb1fd9ad025fbc2c9baf2c9bee
MD5 2e3d38dcec6cbe14585223496061ace1
BLAKE2b-256 9872a8dd4c3f2fa78d70c65a68720ccca18ca17afbe785c2b833be5cb2646dfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0cde343e7cc3b5cdb1fab1435ef7653d1cccf2aec36be76902d08bd7e774c7ef
MD5 05898f4558d06a9cd2c59d94bbb16909
BLAKE2b-256 02cf81f7b2f5a12b1dafa5d430b2ef3b1eec7be3263e45311342cb41d7e573e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5ed42b568b8d6167648e038875c545659711d7a84e2d2aa9e6ab4bd804549364
MD5 f24c446257217a43970b8d7a2aea589b
BLAKE2b-256 6f3a37b52bcde4034d2463b6312478a0fc3c6bc9367330516c15aa83542f91f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 495ba6b65077736179a57394f24a55cd8c98a63d0c9c0fbf12531ec2b27d64ab
MD5 f79dc31132b0f44a695329f2127ef22a
BLAKE2b-256 2cde53701456b13ed36376d2190516d9bdf856aade8f6d2bc8f14df68534b1c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dcfd9a3ff103a8a4b116032581d7a2386b23976e1f02fd706e05a00396ae3d41
MD5 4995c62bb86d6d19fceae47b5bb3abc2
BLAKE2b-256 6e3d4691ff5c67c4bbf1e7711217b5cf09bb002879e1a91bbbc78a8679b45e68

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a38df47b698887a7ce801b4b4d927e6f0257ffec285734f3cce34b5ccab2951f
MD5 0c5df3454c5ea809735da149662b2275
BLAKE2b-256 bdcecec6bd7f0ab82ade19e9d906d11e227d423bc8b4cae5ffde9b98ebcb713d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f065984ed1ff21f8c45e09607e3c7a3587016818d0fe83d521a7987399007d9
MD5 4eb739309ccf4b4ea9641b4cdda790c2
BLAKE2b-256 1887b2063bdf0f73acd69297d20c4207c74e54458f6de17933c2fe9b749870e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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.6.1-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.6.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f4b5c3f7d8c584d8007b180c0edd6b3142ae90ff20943999516844b854e274e9
MD5 9cb06b8fcfb427b088d275890c8c9138
BLAKE2b-256 8b8c60ca70dc2191cd6a8a92ecd770b6bab33cb8e7ad3ec395f64c5e6cb72766

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.6.1-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