Metadata-Version: 2.4
Name: waldiez_runner
Version: 0.4.6
Summary: Serve and run your Waldiez flows in isolated environments and stream logs/input/output via Redis
Project-URL: homepage, https://github.com/waldiez/runner.git
Project-URL: repository, https://github.com/waldiez/runner.git
Author-email: Panagiotis Kasnesis <pkasnesis@waldiez.io>, Lazaros Toumanidis <laztoum@waldiez.io>, Stella Ioannidou <stella@humancentered.gr>
License-File: LICENSE
License-File: NOTICE.md
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: <3.14,>=3.11
Requires-Dist: aiocsv==1.3.2
Requires-Dist: aiofiles==24.1.0
Requires-Dist: aiohttp==3.11.18
Requires-Dist: aiosqlite==0.21.0
Requires-Dist: alembic==1.15.2
Requires-Dist: anyio==4.9.0
Requires-Dist: bcrypt==4.3.0
Requires-Dist: fakeredis==2.28.1
Requires-Dist: fastapi-pagination==0.13.1
Requires-Dist: fastapi[all]==0.115.12
Requires-Dist: faststream[cli,redis]==0.5.39
Requires-Dist: hiredis==3.1.0
Requires-Dist: nest-asyncio==1.6.0
Requires-Dist: orjson==3.10.16
Requires-Dist: psutil==7.0.0
Requires-Dist: psycopg>=3.2.6; sys_platform == 'linux'
Requires-Dist: psycopg>=3.2.6; sys_platform == 'win32' and platform_machine == 'AARCH64'
Requires-Dist: psycopg>=3.2.6; sys_platform == 'win32' and platform_machine == 'ARM64'
Requires-Dist: psycopg>=3.2.6; sys_platform == 'win32' and platform_machine == 'aarch64'
Requires-Dist: psycopg>=3.2.6; sys_platform == 'win32' and platform_machine == 'arm64'
Requires-Dist: psycopg[binary]>=3.2.6; sys_platform != 'linux' and platform_machine != 'arm64' and platform_machine != 'ARM64' and platform_machine != 'aarch64' and platform_machine != 'AARCH64'
Requires-Dist: puremagic==1.29
Requires-Dist: pydantic-settings==2.9.1
Requires-Dist: pydantic>=2.11.3
Requires-Dist: pyjwt[crypto]==2.10.1
Requires-Dist: pysqlite3-binary==0.5.4; sys_platform == 'linux' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'
Requires-Dist: python-dotenv==1.1.0
Requires-Dist: python-multipart==0.0.20
Requires-Dist: python-ulid==3.0.0
Requires-Dist: redis<6
Requires-Dist: slowapi==0.1.9
Requires-Dist: taskiq-dependencies==1.5.7
Requires-Dist: taskiq-redis==1.0.8
Requires-Dist: taskiq==0.11.17
Requires-Dist: tenacity<10.0.0
Requires-Dist: typer<1
Requires-Dist: uvicorn[standard]==0.34.2
Requires-Dist: uvloop==0.21.0; sys_platform != 'win32'
Requires-Dist: virtualenv==20.30.0
Requires-Dist: waldiez==0.4.6
Requires-Dist: zipstream==1.1.4
Provides-Extra: dev
Requires-Dist: autoflake==2.3.1; extra == 'dev'
Requires-Dist: bandit==1.8.3; extra == 'dev'
Requires-Dist: black[jupyter]==25.1.0; extra == 'dev'
Requires-Dist: flake8==7.2.0; extra == 'dev'
Requires-Dist: hatchling==1.27.0; extra == 'dev'
Requires-Dist: isort==6.0.1; extra == 'dev'
Requires-Dist: jupyter==1.1.1; extra == 'dev'
Requires-Dist: mypy==1.15.0; extra == 'dev'
Requires-Dist: pre-commit==4.2.0; extra == 'dev'
Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
Requires-Dist: pylint==3.3.7; extra == 'dev'
Requires-Dist: ruff==0.11.8; extra == 'dev'
Requires-Dist: streamlit-autorefresh==1.0.1; extra == 'dev'
Requires-Dist: streamlit==1.45.0; extra == 'dev'
Requires-Dist: taskiq[reload]==0.11.17; extra == 'dev'
Requires-Dist: types-aiofiles==24.1.0.20250326; extra == 'dev'
Requires-Dist: types-psutil==7.0.0.20250401; extra == 'dev'
Requires-Dist: types-pyyaml==6.0.12.20250402; extra == 'dev'
Requires-Dist: types-redis==4.6.0.20241004; extra == 'dev'
Requires-Dist: types-requests==2.32.0.20250328; extra == 'dev'
Requires-Dist: types-toml==0.10.8.20240310; extra == 'dev'
Requires-Dist: yamllint==1.37.1; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mdx-include==1.4.2; extra == 'docs'
Requires-Dist: mdx-truly-sane-lists==1.3; extra == 'docs'
Requires-Dist: mkdocs-jupyter==0.25.1; extra == 'docs'
Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == 'docs'
Requires-Dist: mkdocs-material==9.6.12; extra == 'docs'
Requires-Dist: mkdocs-mermaid2-plugin==1.2.1; extra == 'docs'
Requires-Dist: mkdocs-minify-html-plugin==0.3.1; extra == 'docs'
Requires-Dist: mkdocs==1.6.1; extra == 'docs'
Requires-Dist: mkdocstrings-python==1.16.10; extra == 'docs'
Requires-Dist: mkdocstrings[crystal,python]==0.29.1; extra == 'docs'
Requires-Dist: neoteroi-mkdocs==1.1.2; extra == 'docs'
Provides-Extra: test
Requires-Dist: asgi-lifespan==2.1.0; extra == 'test'
Requires-Dist: greenlet==3.2.1; extra == 'test'
Requires-Dist: httpx-ws==0.7.2; extra == 'test'
Requires-Dist: httpx<1; extra == 'test'
Requires-Dist: moto[s3]==5.1.4; extra == 'test'
Requires-Dist: pytest-asyncio==0.26.0; extra == 'test'
Requires-Dist: pytest-cov==6.1.1; extra == 'test'
Requires-Dist: pytest-env==1.1.5; extra == 'test'
Requires-Dist: pytest-html==4.1.1; extra == 'test'
Requires-Dist: pytest-httpx; extra == 'test'
Requires-Dist: pytest-mock==3.14.0; extra == 'test'
Requires-Dist: pytest-sugar==1.0.0; extra == 'test'
Requires-Dist: pytest-timeout==2.4.0; extra == 'test'
Requires-Dist: pytest-xdist==3.6.1; extra == 'test'
Requires-Dist: pytest==8.3.5; extra == 'test'
Description-Content-Type: text/markdown

# Waldiez Runner

Run your [Waldiez](https://github.com/waldiez/waldiez) flows in isolated environments and stream AG2 logs/input/output via Redis.


https://github.com/user-attachments/assets/596ee25a-362e-4202-a4b0-894a4713e041


## Overview

Waldiez Runner enables executing flows in isolated Python virtual environments or containers, with full I/O streaming via Redis and task management via FastAPI + Taskiq.

Backed by:

- [FastAPI](https://fastapi.tiangolo.com/) for the HTTP API
- [Taskiq](https://taskiq.readthedocs.io/) for async task queuing and scheduling
- [Redis](https://redis.io/) for messaging and log/input/output streaming
- [PostgreSQL](https://www.postgresql.org/) for task and client persistence
- [Waldiez](https://github.com/waldiez/waldiez) + [ag2](https://github.com/ag2ai/ag2) + [FastStream](https://github.com/ag2ai/faststream) for defining, executing, and streaming interactive flows in isolation

![overview](https://raw.githubusercontent.com/waldiez/runner/refs/heads/main/docs/overview.jpg)

## License

This project is licensed under the [Apache License, Version 2.0 (Apache-2.0)](https://github.com/waldiez/vscode/blob/main/LICENSE).
