rusty-runways


Namerusty-runways JSON
Version 2.0.4 PyPI version JSON
download
home_pageNone
SummaryPython bindings for Rusty Runways
upload_time2025-09-13 13:53:38
maintainerNone
docs_urlNone
authorRustyRunways Authors
requires_python>=3.8
licenseMIT
keywords rust simulation logistics reinforcement-learning gymnasium rl ai ml
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- PyPI long description lives here. Keep links absolute. -->

# Rusty Runways — Python Bindings

[![Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://dennislent.github.io/RustyRunways)
[![PyPI](https://img.shields.io/pypi/v/rusty-runways.svg)](https://pypi.org/project/rusty-runways/)

<p align="center">
  <img src="https://github.com/DennisLent/RustyRunways/raw/main/docs/assets/rusty_runways.png" alt="Rusty Runways" width="640" />
</p>

Deterministic airline logistics simulation written in Rust with a rich Python API for scripting, analysis, and RL/ML. Includes fast vectorized environments and optional Gymnasium wrappers.

— Full docs: https://dennislent.github.io/RustyRunways

## Install

Python (PyPI):

```bash
pip install rusty-runways

# Optional Gym wrappers
pip install 'rusty-runways[gym]'
```

Local dev (build from source):

```bash
cd crates/py
maturin develop --release
```

## Quick Start (Python)

Engine bindings (single and vector):

```python
from rusty_runways_py import GameEnv, VectorGameEnv

g = GameEnv(seed=1, num_airports=5, cash=1_000_000)
g.step(1)
print(g.time(), g.cash())

venv = VectorGameEnv(4, seed=1)
venv.step_all(1, parallel=True)
print(venv.times())
```

Notes:
- Seeds control determinism.
- `VectorGameEnv.step_all(..., parallel=True)` releases the GIL and uses Rayon under the hood.

## Gymnasium Wrappers (optional)

Wrappers live in the pure‑Python package `rusty_runways` and require `gymnasium`:

```python
from stable_baselines3 import PPO
from stable_baselines3.common.vec_env import DummyVecEnv
from rusty_runways import RustyRunwaysGymEnv, make_sb3_envs

# Single‑env Gym
env = RustyRunwaysGymEnv(seed=1, num_airports=5)

# SB3 convenience (DummyVecEnv)
vec_env = DummyVecEnv(make_sb3_envs(4, seed=1, num_airports=5))
model = PPO("MlpPolicy", vec_env, verbose=1)
model.learn(total_timesteps=10_000)
```

## Links

- Documentation: https://dennislent.github.io/RustyRunways
- Source: https://github.com/DennisLent/RustyRunways
- Issues: https://github.com/DennisLent/RustyRunways/issues

License: MIT


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rusty-runways",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "rust, simulation, logistics, reinforcement-learning, gymnasium, rl, ai, ml",
    "author": "RustyRunways Authors",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b2/a2/269a5d64e80ca7a9a3f664db87afba28c8aa866df6199caaefd2ba681717/rusty_runways-2.0.4.tar.gz",
    "platform": null,
    "description": "<!-- PyPI long description lives here. Keep links absolute. -->\n\n# Rusty Runways \u2014 Python Bindings\n\n[![Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://dennislent.github.io/RustyRunways)\n[![PyPI](https://img.shields.io/pypi/v/rusty-runways.svg)](https://pypi.org/project/rusty-runways/)\n\n<p align=\"center\">\n  <img src=\"https://github.com/DennisLent/RustyRunways/raw/main/docs/assets/rusty_runways.png\" alt=\"Rusty Runways\" width=\"640\" />\n</p>\n\nDeterministic airline logistics simulation written in Rust with a rich Python API for scripting, analysis, and RL/ML. Includes fast vectorized environments and optional Gymnasium wrappers.\n\n\u2014 Full docs: https://dennislent.github.io/RustyRunways\n\n## Install\n\nPython (PyPI):\n\n```bash\npip install rusty-runways\n\n# Optional Gym wrappers\npip install 'rusty-runways[gym]'\n```\n\nLocal dev (build from source):\n\n```bash\ncd crates/py\nmaturin develop --release\n```\n\n## Quick Start (Python)\n\nEngine bindings (single and vector):\n\n```python\nfrom rusty_runways_py import GameEnv, VectorGameEnv\n\ng = GameEnv(seed=1, num_airports=5, cash=1_000_000)\ng.step(1)\nprint(g.time(), g.cash())\n\nvenv = VectorGameEnv(4, seed=1)\nvenv.step_all(1, parallel=True)\nprint(venv.times())\n```\n\nNotes:\n- Seeds control determinism.\n- `VectorGameEnv.step_all(..., parallel=True)` releases the GIL and uses Rayon under the hood.\n\n## Gymnasium Wrappers (optional)\n\nWrappers live in the pure\u2011Python package `rusty_runways` and require `gymnasium`:\n\n```python\nfrom stable_baselines3 import PPO\nfrom stable_baselines3.common.vec_env import DummyVecEnv\nfrom rusty_runways import RustyRunwaysGymEnv, make_sb3_envs\n\n# Single\u2011env Gym\nenv = RustyRunwaysGymEnv(seed=1, num_airports=5)\n\n# SB3 convenience (DummyVecEnv)\nvec_env = DummyVecEnv(make_sb3_envs(4, seed=1, num_airports=5))\nmodel = PPO(\"MlpPolicy\", vec_env, verbose=1)\nmodel.learn(total_timesteps=10_000)\n```\n\n## Links\n\n- Documentation: https://dennislent.github.io/RustyRunways\n- Source: https://github.com/DennisLent/RustyRunways\n- Issues: https://github.com/DennisLent/RustyRunways/issues\n\nLicense: MIT\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python bindings for Rusty Runways",
    "version": "2.0.4",
    "project_urls": {
        "Documentation": "https://dennislent.github.io/RustyRunways",
        "Homepage": "https://github.com/DennisLent/RustyRunways",
        "Issues": "https://github.com/DennisLent/RustyRunways/issues",
        "Source": "https://github.com/DennisLent/RustyRunways"
    },
    "split_keywords": [
        "rust",
        " simulation",
        " logistics",
        " reinforcement-learning",
        " gymnasium",
        " rl",
        " ai",
        " ml"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1a7f299106d1581973108e129d37d3f2f8831b53ce9d1524c4914507c25296c",
                "md5": "5dbbee47682ccb004c757a664349653a",
                "sha256": "7870948bc4b30c2dc989567a8f7b6fab0580b83dde41339de65dd3b816650402"
            },
            "downloads": -1,
            "filename": "rusty_runways-2.0.4-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "5dbbee47682ccb004c757a664349653a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1113805,
            "upload_time": "2025-09-13T13:54:29",
            "upload_time_iso_8601": "2025-09-13T13:54:29.521983Z",
            "url": "https://files.pythonhosted.org/packages/d1/a7/f299106d1581973108e129d37d3f2f8831b53ce9d1524c4914507c25296c/rusty_runways-2.0.4-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c9666eda548129f921b0be6b011daeef0a6a787bbdf3f823f3b3e915c0894f15",
                "md5": "f7b3f729f7615c9badd844b30a986852",
                "sha256": "670a9974faae2c595c583a3bfd3add7b72cb33e352dc9c7f8419e89250abdb3c"
            },
            "downloads": -1,
            "filename": "rusty_runways-2.0.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f7b3f729f7615c9badd844b30a986852",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 608727,
            "upload_time": "2025-09-13T13:53:36",
            "upload_time_iso_8601": "2025-09-13T13:53:36.876087Z",
            "url": "https://files.pythonhosted.org/packages/c9/66/6eda548129f921b0be6b011daeef0a6a787bbdf3f823f3b3e915c0894f15/rusty_runways-2.0.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d76742b94129a4a4b356160bb1b65b7b53b834363cb4d22fc11153de0cc50e9c",
                "md5": "8354b2cb2c844df628ed3e479e723c76",
                "sha256": "d333f19522089c190bfc3d6225bbb607aeab8a9b1ba41981e99dd5d07e0f1640"
            },
            "downloads": -1,
            "filename": "rusty_runways-2.0.4-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8354b2cb2c844df628ed3e479e723c76",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 507588,
            "upload_time": "2025-09-13T13:54:45",
            "upload_time_iso_8601": "2025-09-13T13:54:45.208210Z",
            "url": "https://files.pythonhosted.org/packages/d7/67/42b94129a4a4b356160bb1b65b7b53b834363cb4d22fc11153de0cc50e9c/rusty_runways-2.0.4-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2a2269a5d64e80ca7a9a3f664db87afba28c8aa866df6199caaefd2ba681717",
                "md5": "c66503eaca8f09d99192b205642169fd",
                "sha256": "b29b42b38530f72924b0e0b0105e40b2a6386b188fe4a2948d47d68bcaed2822"
            },
            "downloads": -1,
            "filename": "rusty_runways-2.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "c66503eaca8f09d99192b205642169fd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 100444,
            "upload_time": "2025-09-13T13:53:38",
            "upload_time_iso_8601": "2025-09-13T13:53:38.674756Z",
            "url": "https://files.pythonhosted.org/packages/b2/a2/269a5d64e80ca7a9a3f664db87afba28c8aa866df6199caaefd2ba681717/rusty_runways-2.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-13 13:53:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DennisLent",
    "github_project": "RustyRunways",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rusty-runways"
}
        
Elapsed time: 3.19076s