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:

Future Installation Options

  • Package binaries.

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.4.0.tar.gz (46.4 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.4.0-cp313-cp313t-win_amd64.whl (20.3 MB view details)

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl (22.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rustyssim-0.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl (22.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

rustyssim-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rustyssim-0.4.0-cp313-cp313t-macosx_11_0_arm64.whl (20.2 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

rustyssim-0.4.0-cp313-cp313t-macosx_10_12_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

rustyssim-0.4.0-cp39-abi3-win_amd64.whl (20.3 MB view details)

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.4.0-cp39-abi3-musllinux_1_2_x86_64.whl (22.9 MB view details)

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

rustyssim-0.4.0-cp39-abi3-musllinux_1_2_aarch64.whl (22.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.9 MB view details)

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

rustyssim-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

rustyssim-0.4.0-cp39-abi3-macosx_11_0_arm64.whl (20.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for rustyssim-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a000275bae53b71a3d50c29f559393cf146a1c3ae069b331c1b607accf3b9bb7
MD5 ec73af4382542919a1cedccf3c49a6ee
BLAKE2b-256 33e3f61d11c68ca55c6f2c695905e64449fdf80a00610b1399dfbf62f0de1906

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.4.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 20.3 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.4.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 c128b621d767b718f450a63137e7e62b423f91504441868613c97c3d8c97c7f4
MD5 da794e5961c1e36d840d2c6d66a9c449
BLAKE2b-256 92cb7edb1dc5bb9f50b2666bcd27e57f1f91449a9ab2188dc912d67314d49260

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ced98300e8b8e2de277e274394967eb46aae18e44150c5eba9e6c6c3ade1cbed
MD5 3924984b0a741ca45748b181c6a6d4fb
BLAKE2b-256 0d69b3a69e353416ba819bbf67143f768a975c0f9b7f500c5c58352db12f7b2b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55262e8c80406f7343ee41474fcbc4adce55757279ba019a79efe1ee8a9c430e
MD5 ef32b5f0fe6f2ffe4e86bbf03b8bc1c8
BLAKE2b-256 83a05cef9efb22eb9342ef6c5b9850f2d1b4669aa129ccc8891a84ffdbf1f64a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c6ff0440adb3e7c00c0eeaade0e89e8cf4094f0e9549636f7be112edacc87b8
MD5 eb1ae24d7ddb3405d75175041a65ae2d
BLAKE2b-256 d5bdbf523c6b64ca568f7849d3467c19167ab09aa21a1edacab17953d79b8988

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e53353778db9583214dc0504eaaedad2a27a569a4571460da8c5d8a9b4c8de8
MD5 5d0f8a09f2d8fc1905927098660a66ad
BLAKE2b-256 5044ba2846702a0e5f9cf9d0f1ecd29763c548f82111c16df317598db57fb664

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34f8a75ea7581597adc4cd99fba22620ed0a9bdb428b0d155edeb458d73d11a2
MD5 91838a5a34184e637941af0ec3981128
BLAKE2b-256 95102cf3d361372b2a39a1bffb00798ad8d41043f7a567de993c22ebe7f387d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eb2f5abb590883078339a8e06215a58452c7c644a178f55ab3a33981827621b7
MD5 7da2f7644907ea8491aa2e23bd62b577
BLAKE2b-256 a48c7be26442a0710f668d512b104c98986908f9b58503542ff40c5bc630f97d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.4.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 20.3 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.4.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d5b4fce0a13ed0cd4bada5f0a41474051d4971447301295d093da574b59e9982
MD5 d716da06e78f3604d4b27548bbd7b979
BLAKE2b-256 9cd962f56494d334611d549db2f13829e1a81c9bbd202e6f9ed4df78a8b99a29

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6be70aa946b9a66f4f746d421f17386a357183962b2aacfe7ee29eb922271992
MD5 494658779149a3e132605ca6738ecf5a
BLAKE2b-256 e7cdbd4f3df29d2e67803d07d5494f2d6962b8eae58dc6cbe1fcd2f1a94e07a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 eccae7fec8020f3d211dae3002156e89a733c201229dcd7261b175e931ed212d
MD5 dde2b9d6c55bc856b043f11ce7949ed6
BLAKE2b-256 28d5a96044ec914d46aa3704a3c300cd9bf4ae60e2168e4dd00fd8d3cb72cabe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0ff547a94f6e509eb700f8a7ef26d20057495aff71a6cfa16174ddefc351fd6
MD5 c4faa402911c9b4ff74e982970c4f947
BLAKE2b-256 e2af9a6841f60ef25d02568eacecd32c343ee6e1b5429df0373be7acec405252

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a91467f173d77c2118292312571cf732e74ae67320d3adbfd55850b67cc35204
MD5 7e53bbd2abcf8060ecdf3d31dee3fd4e
BLAKE2b-256 1c363d14df8c053eb71be45a685bb488d770db3e94380689bd6c6c6587fae5c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6991d29fe28638ea6de5021af54694f8133f1922918a689c57375b7cc41328e6
MD5 450abbfb109d54d86fba31d8953780cd
BLAKE2b-256 ad5393cf14e1a932d5ac0503adc4dd2b43e77bb242982a17edfcba30afd50c67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1f1784a35280f34b8b4e71dd2a063f1ae66580f97e479e8028f0c5fffc12397b
MD5 2a74f0a37910178c810a4d1ad71ba974
BLAKE2b-256 164a13e6be5fd0df3c1400effcd563f629595ec453ba3bbd77b0271f4213bbda

See more details on using hashes here.

Provenance

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