Name | rustyssim JSON |
Version |
0.3.1
JSON |
| download |
home_page | None |
Summary | This package provides a Python interface to parse SSIM files into a Polars DataFrame. |
upload_time | 2025-08-07 20:42:00 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
parsing
ssim
data
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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.
[](https://github.com/wcagreen/rusty-ssim/actions/workflows/publish-to-pypi.yml)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
## Features
- **🚀 Fast Performance**: Built in Rust for optimal parsing speed
- **💾 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)
```python
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)
```bash
# 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
### Current Installation (Build from Source)
```bash
# 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:**
- Python 3.9+
- Rust toolchain ([rustup.rs](https://rustup.rs))
- Build tools (build-essential, Xcode CLI tools, or VS Build Tools)
### Future Installation Options
*Coming soon:*
- `pip install rustyssim` - PyPI package
- Docker container with pre-built binaries
## Documentation
### 📖 [Python API Documentation](https://github.com/wcagreen/rusty-ssim/blob/main/docs/python.md)
Complete reference for all Python functions with examples, parameters, and return values.
### 💻 [CLI Documentation](https://github.com/wcagreen/rusty-ssim/blob/main/docs/cli-usage.md)
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 & Business Intelligence
```python
# 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")
```
### Data Engineering Pipelines
```bash
# Batch processing in ETL pipelines
ssim parquet -s "./huge_multi_carrier_ssim.dat" -o /data/processed/ -c zstd -b 100000
```
### Airlines & Aviation Analytics
```python
# 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')
])
```
## Development
### Running Tests
```bash
# 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
- 🐛 **Issues**: [GitHub Issues](https://github.com/wcagreen/rusty-ssim/issues)
- 💬 **Discussions**: [GitHub Discussions](https://github.com/wcagreen/rusty-ssim/discussions)
- 📧 **Contact**: Create an issue for questions or feature requests
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
<details>
<summary>📋 Project Structure</summary>
```
rusty-ssim/
├── cli-rusty-ssim/ # CLI application
├── py-rusty-ssim/ # Python bindings
├── rusty-ssim-core/ # Core Rust library
├── docs/ # Documentation
```
</details>
Raw data
{
"_id": null,
"home_page": null,
"name": "rustyssim",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "parsing, ssim, data",
"author": null,
"author_email": "William Green <wcagreen24@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/41/df/e368cac5c5b67da9531b461b167f8232e179d7c75b75e2f24ca9e09951f1/rustyssim-0.3.1.tar.gz",
"platform": null,
"description": "# rusty-ssim\n\nA 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.\n\n[](https://github.com/wcagreen/rusty-ssim/actions/workflows/publish-to-pypi.yml)\n[](https://opensource.org/licenses/MIT)\n[](https://www.python.org/downloads/)\n\n## Features\n\n- **\ud83d\ude80 Fast Performance**: Built in Rust for optimal parsing speed\n- **\ud83d\udcbe Memory Efficient**: Optimize for large SSIM files \n- **\ud83d\udcca Multiple Output Formats**: CSV, Parquet, and in-memory DataFrames\n- **\ud83d\udddc\ufe0f Flexible Compression**: Support for various Parquet compression options (zstd, lz4, snappy, etc.)\n- **\ud83d\udd27 Tooling Options**: Both CLI and Python APIs available\n- **\ud83d\udcc8 Production Ready**: Handles files of any size with configurable batch processing\n\n## Quick Start\n\n### Python (Most Common Use Case)\n\n```python\nimport rustyssim as rs\n\n# Parse SSIM file to DataFrame\ndf = rs.parse_ssim_to_dataframe(\"path/to/schedule.ssim\")\nprint(f\"Parsed {len(df)} flight records\")\n\n# Split into separate DataFrames by record type\ncarriers, flights, segments = rs.split_ssim_to_dataframes(\"schedule.ssim\")\n\n# Direct export to optimized formats\nrs.parse_ssim_to_csv(\"schedule.ssim\", \"output.csv\")\nrs.parse_ssim_to_parquets(\"schedule.ssim\", \"./parquet_files\", compression=\"zstd\")\n```\n\n### CLI (For Data Processing Pipelines)\n\n```bash\n# Convert to CSV\nssim csv -s schedule.ssim -o output.csv\n\n# Convert to compressed Parquet files (one per airline)\nssim parquet -s schedule.ssim -o ./output -c zstd -b 50000\n```\n\n## Installation\n\n### Current Installation (Build from Source)\n\n```bash\n# Clone the repository\ngit clone https://github.com/wcagreen/rusty-ssim.git\ncd rusty-ssim\n\n# Install Python package\npip install maturin\nmaturin develop -m py-rusty-ssim/Cargo.toml\n\n# Build CLI tool\ncargo build -p cli-rusty-ssim --release\n```\n\n**Requirements:**\n- Python 3.9+\n- Rust toolchain ([rustup.rs](https://rustup.rs))\n- Build tools (build-essential, Xcode CLI tools, or VS Build Tools)\n\n### Future Installation Options\n*Coming soon:*\n- `pip install rustyssim` - PyPI package\n- Docker container with pre-built binaries\n\n## Documentation\n\n### \ud83d\udcd6 [Python API Documentation](https://github.com/wcagreen/rusty-ssim/blob/main/docs/python.md)\nComplete reference for all Python functions with examples, parameters, and return values.\n\n### \ud83d\udcbb [CLI Documentation](https://github.com/wcagreen/rusty-ssim/blob/main/docs/cli-usage.md) \nComprehensive guide for command-line usage, performance tuning, and integration examples.\n\n## Data Structure\n\nThe parser handles three types of SSIM records according to IATA standards:\n\n### Carrier Records (Type 2)\nContains airline and schedule metadata.\n\n### Flight Records (Type 3)\nContains core flight leg information.\n\n### Segment Records (Type 4) \nContains flight segment information.\n\n\n\n## Use Cases\n\n### Data Analytics & Business Intelligence\n```python\n# Analyze route networks\ndf = rs.parse_ssim_to_dataframe(\"schedule.ssim\")\nroutes = df.group_by(['departure_station', 'arrival_station']).count()\n\n# Export for Tableau, Power BI, etc.\nrs.parse_ssim_to_csv(\"schedule.ssim\", \"analytics_export.csv\")\n```\n\n### Data Engineering Pipelines\n```bash\n# Batch processing in ETL pipelines\nssim parquet -s \"./huge_multi_carrier_ssim.dat\" -o /data/processed/ -c zstd -b 100000\n\n```\n\n### Airlines & Aviation Analytics\n```python\n# Split by carrier for airline-specific analysis\ncarriers, flights, segments = rs.split_ssim_to_dataframes(\"schedule.ssim\")\n\n# Analyze specific airline operations\naa_flights = flights.filter(flights['airline_designator'] == 'AA')\ncapacity_analysis = aa_flights.group_by('aircraft_type').agg([\n pl.count().alias('flights'),\n pl.col('departure_station').n_unique().alias('origins')\n])\n```\n\n## Development\n\n### Running Tests\n```bash\n# Rust tests\ncargo test\n\n# Python tests \npip install pytest\npytest tests/\n```\n\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.\n\n### Quick Contribution Steps\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes with tests\n4. Run the test suite (`cargo test && pytest`)\n5. Submit a pull request\n\n## Community & Support\n\n- \ud83d\udc1b **Issues**: [GitHub Issues](https://github.com/wcagreen/rusty-ssim/issues)\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/wcagreen/rusty-ssim/discussions)\n- \ud83d\udce7 **Contact**: Create an issue for questions or feature requests\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n<details>\n<summary>\ud83d\udccb Project Structure</summary>\n\n```\nrusty-ssim/\n\u251c\u2500\u2500 cli-rusty-ssim/ # CLI application\n\u251c\u2500\u2500 py-rusty-ssim/ # Python bindings \n\u251c\u2500\u2500 rusty-ssim-core/ # Core Rust library\n\u251c\u2500\u2500 docs/ # Documentation\n```\n</details>\n",
"bugtrack_url": null,
"license": null,
"summary": "This package provides a Python interface to parse SSIM files into a Polars DataFrame.",
"version": "0.3.1",
"project_urls": {
"Documentation": "https://github.com/wcagreen/rusty-ssim/blob/main/docs/python.md",
"Repository": "https://github.com/wcagreen/rusty-ssim"
},
"split_keywords": [
"parsing",
" ssim",
" data"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b37409aa1cdb667aac41e61cd32217199d03860abef68d47f83416448782362a",
"md5": "44a419b85f1504e458b88aa532146e0b",
"sha256": "906e38c920a9fc530cd32f6232ab779324b82bfbd73e3735264471f239503631"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "44a419b85f1504e458b88aa532146e0b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 20197385,
"upload_time": "2025-08-07T20:41:22",
"upload_time_iso_8601": "2025-08-07T20:41:22.652808Z",
"url": "https://files.pythonhosted.org/packages/b3/74/09aa1cdb667aac41e61cd32217199d03860abef68d47f83416448782362a/rustyssim-0.3.1-cp313-cp313t-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "98542a81b2279bd8e317e8dec1533bfe79a2d55c7e5df00f90aba6ff424c7fd6",
"md5": "cd6e3fe6933cafbb5abfd8ecf3b56cd3",
"sha256": "49a2a661aed7d6abc156107ebf2714828421cdff8d81cf23e8a904882550da45"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "cd6e3fe6933cafbb5abfd8ecf3b56cd3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 18972868,
"upload_time": "2025-08-07T20:41:25",
"upload_time_iso_8601": "2025-08-07T20:41:25.036131Z",
"url": "https://files.pythonhosted.org/packages/98/54/2a81b2279bd8e317e8dec1533bfe79a2d55c7e5df00f90aba6ff424c7fd6/rustyssim-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "aa2b68abad86c4b3287b2e542e8e0ccaedaf6e34f05b12970ba008b3883581ab",
"md5": "ac858c21477fb2336465775a48a55ee9",
"sha256": "364fc0cd2a3d7e208ae17f42741668c27334234ab908cfa466cffbf5a57bd040"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "ac858c21477fb2336465775a48a55ee9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 16533809,
"upload_time": "2025-08-07T20:41:27",
"upload_time_iso_8601": "2025-08-07T20:41:27.568535Z",
"url": "https://files.pythonhosted.org/packages/aa/2b/68abad86c4b3287b2e542e8e0ccaedaf6e34f05b12970ba008b3883581ab/rustyssim-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7ac85bf75a90a3327908866614cc10c4c639029aa83c42c062527231b182be5b",
"md5": "10f377380caf246b6c64cc0514479e13",
"sha256": "00d6cef305840fa60473161f7ce8a0d9f188a313f7b0721d01b866edf1e15119"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "10f377380caf246b6c64cc0514479e13",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 17976611,
"upload_time": "2025-08-07T20:41:30",
"upload_time_iso_8601": "2025-08-07T20:41:30.400623Z",
"url": "https://files.pythonhosted.org/packages/7a/c8/5bf75a90a3327908866614cc10c4c639029aa83c42c062527231b182be5b/rustyssim-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cd5e7b09fa025a312685653ca036d1059c80de1e4ae556d8bd55ef06f38a3410",
"md5": "c03c3de835d5660c486e94eb1c232355",
"sha256": "f5d0f0f2e79228e12a855856d14fafb522252f228d87e043bec6dd49ca82eb90"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "c03c3de835d5660c486e94eb1c232355",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 20735071,
"upload_time": "2025-08-07T20:41:34",
"upload_time_iso_8601": "2025-08-07T20:41:34.466838Z",
"url": "https://files.pythonhosted.org/packages/cd/5e/7b09fa025a312685653ca036d1059c80de1e4ae556d8bd55ef06f38a3410/rustyssim-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "773dd3a51bcf0ed4d1aa4a062e784545c835c81b173275a3e63fdb3502b0737d",
"md5": "c0fe199e213919ca3c23df4c8ce83b71",
"sha256": "d5b3468b9f84ac250d051e2ad0adacab63676a46a2825bab905a3ff23300909f"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c0fe199e213919ca3c23df4c8ce83b71",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 21780448,
"upload_time": "2025-08-07T20:41:37",
"upload_time_iso_8601": "2025-08-07T20:41:37.204257Z",
"url": "https://files.pythonhosted.org/packages/77/3d/d3a51bcf0ed4d1aa4a062e784545c835c81b173275a3e63fdb3502b0737d/rustyssim-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "11305bfccd4ec2bd0526d7410702905399d24ed2725a7b29dc38a44bc9abe6df",
"md5": "45d9534c1ad4b6c0f166c621bb6a04a1",
"sha256": "e8396306f7206a4f7d4b0eabdeb0dc0ab83a05a0b307f55f42ced65b2573cf34"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp313-cp313t-win_amd64.whl",
"has_sig": false,
"md5_digest": "45d9534c1ad4b6c0f166c621bb6a04a1",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 18744917,
"upload_time": "2025-08-07T20:41:39",
"upload_time_iso_8601": "2025-08-07T20:41:39.996128Z",
"url": "https://files.pythonhosted.org/packages/11/30/5bfccd4ec2bd0526d7410702905399d24ed2725a7b29dc38a44bc9abe6df/rustyssim-0.3.1-cp313-cp313t-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c600759a1e074e2d74feb0a692ab7f88947a395410d2af315a905bcdb0151bc4",
"md5": "b7155ed41dd22508634b1f8f837306d2",
"sha256": "b43eeaddf18c674723eea68b91221f40922bd926100a5659290b8d8d49d5053c"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "b7155ed41dd22508634b1f8f837306d2",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 20202540,
"upload_time": "2025-08-07T20:41:42",
"upload_time_iso_8601": "2025-08-07T20:41:42.776965Z",
"url": "https://files.pythonhosted.org/packages/c6/00/759a1e074e2d74feb0a692ab7f88947a395410d2af315a905bcdb0151bc4/rustyssim-0.3.1-cp39-abi3-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "37ea0302c13169eac048f2a41eee6f755076691c52827eb01a7466788b99d1e2",
"md5": "408c919adab16b664441ee0a029b6e2c",
"sha256": "86e1f5783abcff1cad1b6a9c50faa3287b2abad0fcc84f6166508e9eb4c7f4f5"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "408c919adab16b664441ee0a029b6e2c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 18978782,
"upload_time": "2025-08-07T20:41:45",
"upload_time_iso_8601": "2025-08-07T20:41:45.541843Z",
"url": "https://files.pythonhosted.org/packages/37/ea/0302c13169eac048f2a41eee6f755076691c52827eb01a7466788b99d1e2/rustyssim-0.3.1-cp39-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e9e909f4d6bcae2728c2b5234a3ea5550c0e800732b50d90a40e1be1d04f253a",
"md5": "7f0e85fc1944f54ed2ea47546c00ffcf",
"sha256": "d689655665686d2996c994b2dc71bc451d13d32b7deafc65f5a752a9b3434839"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "7f0e85fc1944f54ed2ea47546c00ffcf",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 16534696,
"upload_time": "2025-08-07T20:41:47",
"upload_time_iso_8601": "2025-08-07T20:41:47.769707Z",
"url": "https://files.pythonhosted.org/packages/e9/e9/09f4d6bcae2728c2b5234a3ea5550c0e800732b50d90a40e1be1d04f253a/rustyssim-0.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5c6d36717259890e74e25952d7990976d42f61d0d4b7668e31aab3cfcb092120",
"md5": "009d418d558fdfcec7ed1a4ec616d413",
"sha256": "c5c768967f91dbf6ecc8a1d00659907fe6abaa115de6386347ac550bfdd6eda5"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "009d418d558fdfcec7ed1a4ec616d413",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 17981438,
"upload_time": "2025-08-07T20:41:50",
"upload_time_iso_8601": "2025-08-07T20:41:50.371753Z",
"url": "https://files.pythonhosted.org/packages/5c/6d/36717259890e74e25952d7990976d42f61d0d4b7668e31aab3cfcb092120/rustyssim-0.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b1228d52dd8157217ebab8265544194469400a29ae7dc07cce8d28c8db3e057",
"md5": "5c34e8364ecbd3256f1c18ee6e978bbc",
"sha256": "c51dfaf27aaba605787b2b74ec16f13a11d4d3e1877de54f74bf31e590c67a81"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "5c34e8364ecbd3256f1c18ee6e978bbc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 20739957,
"upload_time": "2025-08-07T20:41:53",
"upload_time_iso_8601": "2025-08-07T20:41:53.572163Z",
"url": "https://files.pythonhosted.org/packages/6b/12/28d52dd8157217ebab8265544194469400a29ae7dc07cce8d28c8db3e057/rustyssim-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d51c2296a30ece0636a49769855f7a3835f491c3a929c7c682e8d4f798319c2a",
"md5": "4b6b3cd7d876a23727ac094d722eb4f6",
"sha256": "446d81d857ce7c796426cc3e05a7dfaeab5b0f42dbc63168ac8f159699466a32"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4b6b3cd7d876a23727ac094d722eb4f6",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 21784637,
"upload_time": "2025-08-07T20:41:55",
"upload_time_iso_8601": "2025-08-07T20:41:55.955257Z",
"url": "https://files.pythonhosted.org/packages/d5/1c/2296a30ece0636a49769855f7a3835f491c3a929c7c682e8d4f798319c2a/rustyssim-0.3.1-cp39-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ff14465042121672145224e0076e899851974a23bce105145b1ee730427c3d07",
"md5": "3a64f93bad3cde2d1111c2f15c56723f",
"sha256": "cff67573afb233b8af92d3d0d536e55981d3dff4d9e1a98c896c7ea3ccf5c8c0"
},
"downloads": -1,
"filename": "rustyssim-0.3.1-cp39-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "3a64f93bad3cde2d1111c2f15c56723f",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 18748211,
"upload_time": "2025-08-07T20:41:58",
"upload_time_iso_8601": "2025-08-07T20:41:58.567886Z",
"url": "https://files.pythonhosted.org/packages/ff/14/465042121672145224e0076e899851974a23bce105145b1ee730427c3d07/rustyssim-0.3.1-cp39-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "41dfe368cac5c5b67da9531b461b167f8232e179d7c75b75e2f24ca9e09951f1",
"md5": "7ef778f5b4293baef5f863f90e926125",
"sha256": "13a3b6a6e2942fe6e7cc5fa19b2d1e02feef989dee05dbf1704da833c64231eb"
},
"downloads": -1,
"filename": "rustyssim-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "7ef778f5b4293baef5f863f90e926125",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 47372,
"upload_time": "2025-08-07T20:42:00",
"upload_time_iso_8601": "2025-08-07T20:42:00.876261Z",
"url": "https://files.pythonhosted.org/packages/41/df/e368cac5c5b67da9531b461b167f8232e179d7c75b75e2f24ca9e09951f1/rustyssim-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 20:42:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wcagreen",
"github_project": "rusty-ssim",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rustyssim"
}