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.5.0.tar.gz (50.5 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.0-cp313-cp313t-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rustyssim-0.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl (22.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.5.0-cp313-cp313t-manylinux_2_28_x86_64.whl (19.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

rustyssim-0.5.0-cp313-cp313t-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

rustyssim-0.5.0-cp313-cp313t-macosx_11_0_arm64.whl (20.5 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

rustyssim-0.5.0-cp313-cp313t-macosx_10_12_x86_64.whl (21.6 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

rustyssim-0.5.0-cp39-abi3-win_amd64.whl (20.7 MB view details)

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl (23.2 MB view details)

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

rustyssim-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl (22.7 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.5.0-cp39-abi3-manylinux_2_28_x86_64.whl (19.2 MB view details)

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

rustyssim-0.5.0-cp39-abi3-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

rustyssim-0.5.0-cp39-abi3-macosx_11_0_arm64.whl (20.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl (21.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: rustyssim-0.5.0.tar.gz
  • Upload date:
  • Size: 50.5 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.0.tar.gz
Algorithm Hash digest
SHA256 34650bbfbc50f92e5edc66a74876f38dd59f44dabf3282e998612de5d9affaf4
MD5 6a3a59938fe0dd5e5d24fa89265fc842
BLAKE2b-256 34b81f13e294d8b29010555186b2599d55f2e66c465899a99efc3fc9aba16647

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 20.6 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.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 debe8d3ec353522b196a1295c7ac53225e88a9bfdd8ae0c3aef23e95f5fafb99
MD5 a5b2f4e078dbda02988dd468d27f89f5
BLAKE2b-256 56eb9fef127a53f62233d9a480b8518cf08ea8d4a6e005ac731c74ac42c85502

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bc7d14b1346c0a12f69dd24bd50bebb77d79420f7dacf77768a66b8b4b8148d4
MD5 bf2ae187d41e5fe3ef5473aa256f5ca6
BLAKE2b-256 1ec0cacad26cc91113f778952698074a4c10f03bd7781d60ee9f5e6ab9ea0e53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 218c534e20a85782744afe77aaf37d2a1c60306d9c12c75448ff144ec3a82287
MD5 b77f6816ef43e5354e3dd81ffa1d9e48
BLAKE2b-256 6d79a162d8f112c6bcad9c73eba9aab45546ffdd1ba375f6521cc62268efcf0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.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.5.0-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e711bc1da827ccfdcb805adfc3eb6e1f7c4f854b92bb6a53d7414b791553b14
MD5 16ec5ceb2495629c979a7aa031c2c0cb
BLAKE2b-256 ec8b755b642dc058db27f6b9f0c2095d4e527aa22315142ec016432ae3408a7a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d488db966b2d2ece7f9f4344076111584d065c907c394f3bcd4bab039706971b
MD5 8a06cce25b835b54b1db28571f5353d0
BLAKE2b-256 c4746d730fb864e4291e192ace80b6eac2a45ecc513836da5de6c6246679e646

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cfc8007d568b98189cade8bcab37cbe0ae64e82b633cf4caa6739b49f416216
MD5 1716023aeebcfa81632541591995e089
BLAKE2b-256 c846f0e153e3bbd7eedc2cba5ca2bcaa241f4ba3ab7ea2d2cd4850636f97285a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c8f418ed6c78da6fd5e82dc7cb083379d3c93ffbf62020c79079cb1835fd2567
MD5 ada5a60d672e640707ffb1ad27106626
BLAKE2b-256 23e38052b76e48508a105d2f8c3cb53e9d733f8f9a99e5efe123e1e9ce4be9a0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 20.7 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.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a4a8197a5f1582fa5896f52460499933e06f36280b9b60006359f3f63625636c
MD5 50be65c9b4c1f87467ff825c7d6c6ea3
BLAKE2b-256 52a656af5f93de594d723df31497392d6ab9b5a1c7859e302c689fd5998e5f5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea6258e69dc1cabd30d2028e896fe2821e8f299e41385b61ea23ba039cb718e8
MD5 fc2b653cc18791f371c013e42b34bace
BLAKE2b-256 7a76fc2de1566eb29ca7ecff92e8a94dfeab87e87e7b0a71a4b7581938804053

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e4a8bae96c72f4bde64af77aa3c6865fe9754ca63d1cd1df57c548d1a7e102e4
MD5 24c676a83b931a6a991f7f31190c722a
BLAKE2b-256 a00849971f0c68b07e6a4196cdac414f2a765991ade43663a9ab1dfda8237d00

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustyssim-0.5.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.5.0-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8fe1757265406b8ce224d6b477fa9a3cce9fad2d403037ad779c7b440b3830c5
MD5 a8c4ca90c2a10e38c184e337fdde6770
BLAKE2b-256 6a429cb7b5e3cfc12ce8f730ad372515908d6fb1c9306b484efcf05acb28ba4c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2377100d44d0be79a35237ad6f70143739f93b4445aa329eeec8b6fc59b422a9
MD5 3ad3270bc4d0af5da6fe413e7daab7a3
BLAKE2b-256 768c86efff7f8d191ce7c51d11f39e0fab845a27f675af9c0904bccffe1bb615

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc0bf839ab6c3c76f18c01a747860165f399e47f5bf9afb70a26e1aed8629a56
MD5 36495ab2cef4c10f399e5e1b4490faab
BLAKE2b-256 190163492fbe79f3692a5a371a7f7b6d2aac3224eff0fcb8fa43d624b72220e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 90f04bdcfea8defa8eff132fee3d2c846ed7bfab1f6252bcbd3461e634afddb3
MD5 b7e87710d6663f88208e9a6e22de6f77
BLAKE2b-256 346458c22bf48b3c6200ef0ae29fde1b6e77b98b4234f6245263e458f21e1b43

See more details on using hashes here.

Provenance

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