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

Uploaded CPython 3.13tWindows x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rustyssim-0.5.3-cp313-cp313t-musllinux_1_2_aarch64.whl (25.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.5.3-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.5.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.13tmacOS 10.12+ x86-64

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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.7 MB view details)

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

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.5.3-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.5.3.tar.gz.

File metadata

  • Download URL: rustyssim-0.5.3.tar.gz
  • Upload date:
  • Size: 51.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.3.tar.gz
Algorithm Hash digest
SHA256 2387e9de007f7d064c2658efac9b7a4b8b4e2961fe9ad8dba8eef3ac37ebb461
MD5 f088abaf59d7749de588e1f517312057
BLAKE2b-256 f347622c3fa4c55a75cbf88eb483bfe8f5c894b5a48415bbc9c0ba7d75dd3ad8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.3-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.5.3-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 dbead92fce5362cd536762a6300594b36373a5ff022351c8e2995d8fede7ad85
MD5 c492c8760110c499e7329666871207c3
BLAKE2b-256 8e0efff82a165091349945aed5bb68d1284afd8c771fe8f125a3f6fe7f874e7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1a238279bdab6dda2a9e9cedbc9db01f8a03091a14ca2262d850165bf4da39c8
MD5 3b0da0c19c388b937eeca683509d373f
BLAKE2b-256 374920f2b5acf2a7d7f5846dac7f21b5df00941b3adc6b869852a7d0b1ea1428

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9e22a8681154ccdb198dde09b4974a5491002af43a307add649096f8bcfd5062
MD5 36c7d645bfa7a9087c09bcb4dd23903c
BLAKE2b-256 aabcd4fce00f193d4696fac9d41d0b4f3ccac36f9d13ecf233402d09140df16e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afdf458a232ac489e9c3d6dc84cef75a9821696f006a0c7155d010a31519b11d
MD5 98bb1e6175b7b37955cc72ee398c6699
BLAKE2b-256 1f44481f3bac03a9a5c423b7515e22cc4ae0d22f50ee69db83f77f739394dcc3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 79311bbc9ebb7453601acdfa128d82f8dbf6aa3c5c026f2354cb801de82ff94f
MD5 6eae2748538f42e5e4b62ea30ff27704
BLAKE2b-256 bb336d8e3e0946aff4c868b705eba7cb14a6bbb1358e73288d4365e949196fda

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f212c8ebb7b254f57d0aed98c0af359ec1a017b70534aac8fa91a7e3215fcd8c
MD5 8b34b58cf9d42bcdb172bcd6158d7d46
BLAKE2b-256 5bcc9b3c59571dc21936e855485124773c6b3def8e56a893500a8537c1548569

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3b91950d3fa4adf64ba415a1e39e65c621e7bc6b9bff31398cb629dc3b6bb09e
MD5 0553c594b64ebe6961e4d5162778b826
BLAKE2b-256 112b52d6bb4a1dfd7227e124c300db55ede40f856a46a583dfbff88451fa8928

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.3-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.5.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 12d862add32baef0c7031e207344accab404c7bc21637138f34e9cb78da265dd
MD5 96c06b8766906d1879e0f7c283364403
BLAKE2b-256 cd4691d78e4f4b04dc7f1e837625b546d7efb02caff95d5fc7a6b2bc911a16bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c282e7a426f12f8cc7b763380d32fe091c7d6b6a557baa4994c88ff7880d0ec
MD5 d743d417f5cff6521b52649d880f8249
BLAKE2b-256 7d07b4af1509a3bb1c4be7eab663c378db132abd3c76a369a90f6022ce6d3fb0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 af1a0593b87e23472d3dff79a7856872b38bf6c7d43b4e43c4522c5753018de0
MD5 3aa14710ec7769aaf7fd03519477435c
BLAKE2b-256 aba9faf57e332e6bca2e92d70b08f9bbe7bff619d1762fdcb53e7ba4f536b8fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3875beab6f0e8d898b97587332a7c9a3db60e9307eca7ad56ebb63c2141f2db4
MD5 a7a855d6e69a97fc7f3fc3a374e6a0e3
BLAKE2b-256 19375860e3b1b0da8e736bfc52132f11f4863e6f5e506ed64c02da3f7185e6e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7bfadbfc7a9de10f11fd67e6b49c6d62820e20b873f073ebad247ff79571ef29
MD5 567a6a65741a9a2beece6f54a82376c3
BLAKE2b-256 718911ab263c0d08dbc68bd442306366eca072f712a2348dee38bf0b73b8716a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95d80e3772b559281dc04c655d13bc81769b811ec0450c5e99e858e8428aaa4e
MD5 f06865c3d0d9d6d06b13c7ffb8280d86
BLAKE2b-256 d5d7a1df75d97e9719bc37e0e1dd54a99c2918c4cffb997b2f8744dc2fcf6a78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.3-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7745df9f8506797b227499af979014a56fbe91e65540ab2dcf1140bdc8e0afec
MD5 04b4f3eed4621b7689cc19a274cc9996
BLAKE2b-256 90465b174171c5aed4570731eaa2c03a2a57edae4ed94c82b30d9270cb493381

See more details on using hashes here.

Provenance

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