Metadata-Version: 2.4
Name: asyncutilsx
Version: 0.1.0
Summary: ASGI wrapper for combining FastAPI and Socket.IO in one app
Author: Akshat kotpalliwar (IntegerAlex)
Maintainer: Akshat kotpalliwar (IntegerAlex)
License-Expression: LGPL-2.1-only
Project-URL: Repository, https://github.com/IntegerAlex/asyncplus
Project-URL: Documentation, https://github.com/IntegerAlex/asyncplus#readme
Project-URL: Changelog, https://github.com/IntegerAlex/asyncplus/blob/main/CHANGELOG.md
Keywords: asgi,fastapi,socket.io,websocket
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: NOTICE
Requires-Dist: fastapi>=0.115.0
Requires-Dist: python-socketio>=5.11.0
Provides-Extra: dev
Requires-Dist: build>=1.4.0; extra == "dev"
Requires-Dist: twine>=6.2.0; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: httpx>=0.27; extra == "dev"
Dynamic: license-file

# asyncutilsx

ASGI wrapper for combining **FastAPI** and **Socket.IO** in one app.

**Author:** Akshat kotpalliwar (alias IntegerAlex)  
**SPDX-License-Identifier:** LGPL-2.1-only

Minimal and pure: one function, no side effects.

## Install

```bash
pip install asyncutilsx
```

## Usage

```python
from fastapi import FastAPI
from socketio import AsyncServer
from asyncutilsx import asyncplus

app = FastAPI()
sio = AsyncServer(async_mode="asgi")

@sio.event
async def connect(sid, environ):
    print("connect", sid)

asgi_app = asyncplus(app, sio)
# Run with: uvicorn asgi:asgi_app
```

- **HTTP** (except `/socket.io/*`) → FastAPI  
- **HTTP** `/socket.io/*` → Socket.IO (polling)  
- **WebSocket** → Socket.IO  

## Development

```bash
pip install -e ".[dev]"
pytest
```

## License

LGPL-2.1-only
