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

Uploaded CPython 3.13tWindows x86-64

rustyssim-0.5.1-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.1-cp313-cp313t-musllinux_1_2_aarch64.whl (22.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rustyssim-0.5.1-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.1-cp313-cp313t-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.13tmacOS 10.12+ x86-64

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

Uploaded CPython 3.9+Windows x86-64

rustyssim-0.5.1-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.1-cp39-abi3-musllinux_1_2_aarch64.whl (22.7 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rustyssim-0.5.1-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.1-cp39-abi3-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rustyssim-0.5.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for rustyssim-0.5.1.tar.gz
Algorithm Hash digest
SHA256 e2a7fe931c66b116c77bc9ab7dda921d11309bf84562596a81bd85aea81ededb
MD5 b8b83183de56d8171baa36a52140afe3
BLAKE2b-256 afa9a6ee6d5015dbb230035b568b7f5a416c6702fbe50cee17468cf2f791fdcc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.1-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.1-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 60be494a3c62cdaa746e43652ae9243e6826128d25932692078ca52dde7296f9
MD5 a24830cce6a5bdc06ee60f3ce8b06066
BLAKE2b-256 c747f25553222d93c71a70f6edca5698640106cb918b3ee4bc98ad19c0a0af5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9f08c6188a62694a32ac5ab933b52d667236afac3ecea48aab5f02584034658a
MD5 e30f0fe3130ba0c1e01780bd035eac73
BLAKE2b-256 7b95529da0e379907fd2f07c4f089f6ee5a6557807838272a4e3c765b1658fad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a6dcd3fb14c22b2ec7476c4afb9494c3a87309e1232a14872fe95be332f5fd84
MD5 c89c3c4f85ab7e6ad2c9848d5768f81d
BLAKE2b-256 338da0ce177bd78421556eebd58796d25c19fc0dea94b8319ebec8a0ffef7276

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0fa9170ca3852741a41c441fd79f3ca6230178b09691a44dcfd06e349007e99
MD5 8f081910e30d776daa663531773c6533
BLAKE2b-256 fa3e72796c2bf7c477b92040a031cddf37dc0bd8aaee4be41f38efe970d64385

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 182645738feb30a8c4fcfa97966d4a667b9d67f2b0ec7cc5d91829bd2fb87a71
MD5 f432039b630442cb3f7a30f875dbe6bb
BLAKE2b-256 2460777effe2d3265f30495b90f7e68750addf7e3b3bb289a306d247cbb15a97

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef812c4561a54d831048552809e04051a8237b8f8f44d16c98fa1976b04db54f
MD5 fa8c0d526709afa293e42d8191b0493e
BLAKE2b-256 25c7b5bd7cf943f93c381b01d034edd4aef01455365802737466115953307a69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2ccb142d3be18c48651dcbae451462b23b3ffe0a216ecd60f18bc04af868b7c
MD5 27426bf88a568be4bca373c0c117808d
BLAKE2b-256 29f9224549b0bd1deed5c6b49e92e1cfcd41cf82c76c7924b6fe0399168f2d88

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rustyssim-0.5.1-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.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 02f29d41dbf0c32437cab7eabf3c62d4b40ea476cc280ccf8d32a7232eb5934c
MD5 454765e4d321325f01b46c933daa489b
BLAKE2b-256 3f78b770740ca923b9cb03aab3324358de311f07659197136739538c7ab4b0a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0ad9bab91c0ef0e2e46ffebf6324f9f7a86446a6bfaab980d6ee891bd61065e6
MD5 445b31ff98593fe9a029407d12e9c738
BLAKE2b-256 dc703867d64f34c21c0d1cfeaf656837461c6422d61b35828c679a31fa7a306a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dfc3dcd1a8d38f0b28dd8bedcba73466d3e1009b7b2c2eaeca2bc010e8696440
MD5 d0fbdd19ef60215c4de90e3ccd6799ae
BLAKE2b-256 4dd160ada22683834bdacbee09d933bd020d563a69e5d95e81c1927e4578e887

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec0247fb91a5f4009b5b77050e6850523cc7e6054f141cf29ca5015d5c910baf
MD5 03dc49f5e97e7cb5964f192f8717053f
BLAKE2b-256 a9a2de0e0b477e15f15b7e4bc994e7bb79bd92288775dc42fb6e3258e5aba13d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c13f7f9a4c7aff4a20fe73a2ed391c1996545086739a8483215cec086037b548
MD5 be06e5a6c58defef06d3e03598a7df90
BLAKE2b-256 53cf4f37248757098e117c913e51df88a007485d61ea6da0cea41d89d058518e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e507c5d31f35f1877a9ad140ab233209033b24641ea5393e45fe24f1b8d36212
MD5 a7853743e82988aad882c86b86771b26
BLAKE2b-256 a64b049a28bedca1d9020ef79de150387fea3cff07788358c31801c0195e8d15

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rustyssim-0.5.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a88d675d734ca8eebfd98c5c5a4806e4197f2879eae852af48eec45721479767
MD5 357db18c2e5a0a6c5d08e8c0b3f98a40
BLAKE2b-256 2ca1fc1ae28170e1942385ede070a0da4d98c7345265f6e3ada33282b13765ff

See more details on using hashes here.

Provenance

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