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.0.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.0-cp313-cp313t-win_amd64.whl (23.5 MB view details)

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.6.0-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.0-cp313-cp313t-musllinux_1_2_aarch64.whl (25.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.6.0-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.0-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.0-cp313-cp313t-macosx_11_0_arm64.whl (23.2 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

rustyssim-0.6.0-cp313-cp313t-macosx_10_12_x86_64.whl (24.7 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

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

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.6.0-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.0-cp39-abi3-musllinux_1_2_aarch64.whl (25.8 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.6.0-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.0-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.0-cp39-abi3-macosx_11_0_arm64.whl (23.3 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for rustyssim-0.6.0.tar.gz
Algorithm Hash digest
SHA256 e41af90c4de9b0b4d2e463ab678ac3e9a7f9ef9213ae411527fe113fff1cb907
MD5 8860a8371e3ca5c68183be5140620aae
BLAKE2b-256 34a809c05c0a050cd34d4a3b0a7662570081bab8332fc8280f962c12825b5f87

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.6.0-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.7

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 467751aeb9b3583dca16b727a02968cdd3b35d03978d3598b428492c9a1826a0
MD5 9f6b103d95d444193e6c74a6adbc0dde
BLAKE2b-256 4da705609cb00e224b0032c63c42c2c0fa46875d22fcc07878b840943c426d76

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27c0e77e8331fb9638380c40314dc6a1cceb46e5458b71c7e4f0a74d9188b1ab
MD5 32e47fbb9801711d8b040dc2d2eadc95
BLAKE2b-256 9f6d9631675c530028bddebe8a4028992f8e8d5118b39c1a8701a0747a35ca4a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 13d2d158fbd185dad885cb5a60d89832df0244e05b49bc1e7321fe17f8fc1395
MD5 4c7bc72fabee8c4ddb66d3d2865b1467
BLAKE2b-256 0889c29d210cea56470d84d96b2950b0b89c94ea82d205ded9024e7464c4c48b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8fee452d7818a32680743b28c898b147f24c3c8cb7867018e3b6c5832b31e48
MD5 23cf0ea5dca3022dfc211ccd8d592d46
BLAKE2b-256 206532f145fccb43d40446bfb7b382f3ecd8e269f2bc7e172c5c0cbd21ad0a88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b108623eabda29d199a5c58e2d81e9e3ee4666f4eac46e2c2033f96e84452f1
MD5 b5e327c22d4bed57139b69177483fcd2
BLAKE2b-256 68546ee517a691dcd334f19dd5db22d4350d074aa432925e91284942aa8201ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fdaedfe2e7867c43b7dd875417f1aacb9b8e1ba32f1d4ea53604115a11677296
MD5 244c51a12fe099ff9ddadc011fa3b4e9
BLAKE2b-256 5048d0e531b950d2f0b59a804ccdfa57e2fd24ebfdc0cf7e4dc98d5fc5689c96

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 116850b99cb5088824cfc3ada94641848792fc70aad031d8be2a26cad64bc5c5
MD5 38c522a58eaddb5f5686ab545a976684
BLAKE2b-256 2bab6bfdf1a16f37d2eb96c433043730ffbde3fe36c71ecde44a6ccd870d3d48

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.6.0-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.7

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 249b4ad8010dc478fc16f3324c77827c314432b53b3dda24c7b31cfc07f0b991
MD5 c0c797c02b0371df85f85f907bf14b31
BLAKE2b-256 5ccb5098194598f6be9ed1ee2a4946c049632ba29953d47ceab94c605424d408

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36eca4857ff3ad187e685d4e66cc79da1cd4453d7e3d8ae8e14faee48d7f8ae9
MD5 0301b6cfb53621e1e6e887586151e751
BLAKE2b-256 414c32800c1f9ac22beeeadaa7398f8b670c9437b46f7d8c3579bfb45169f27d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a1e6cbd776ad2f91c814adbcd76344ad3548969d136f432fdaa8638769dbb0cb
MD5 f0bacbdbf7cb815293689313bef92187
BLAKE2b-256 c6707b4d6917727f62d295529f3b5b4688ec16e0f080f2730ef707eadaeddce7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d9a1aade7ed1bdd1321a106548ec89b84a1924dc843fd257c20f08edad921db
MD5 07af55bd7280db47551042b5c74296e4
BLAKE2b-256 9a1cae51c86cbc39985d9043c4a18635ab7a701c5432c23c50f108e2be5e6b63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 14265d11ddbb69b01cd980191218628b796a2108ba637ad1f2806d1a4f1e35ab
MD5 3d48ccb74ce139b033dbc8ae407f8742
BLAKE2b-256 77297a72f1200a04696ff192c1196719a659eb25de19b3bafe08036998446e5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be1e60536aa1c22fefb2f9866c5215c112629498e4d81ba8e30ca2ff5c8a56a2
MD5 3aefb1006454e9e56b7a20b5b317f814
BLAKE2b-256 80c916e8e43245e63e5fc99f1b8a5d3031bd1cd3c9651f605f235a7435922b30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 698e104e68bb1d57363c7f0233e9ae32a1382ba0f9b3a9e36fc80730ae648fb6
MD5 76629123b81711033b33bd2d95315f77
BLAKE2b-256 e68c15e5e9f8477af1f8457bebd823dfc695e45f45d936777b717b054149516f

See more details on using hashes here.

Provenance

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