https://github.com/cofin/litestar-socketify
Socketify plugin for Litestar
https://github.com/cofin/litestar-socketify
litestar litestar-api litestar-framework socketify
Last synced: about 1 month ago
JSON representation
Socketify plugin for Litestar
- Host: GitHub
- URL: https://github.com/cofin/litestar-socketify
- Owner: cofin
- License: mit
- Created: 2023-10-02T02:12:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-08T16:14:26.000Z (over 1 year ago)
- Last Synced: 2025-03-09T03:04:30.524Z (about 2 months ago)
- Topics: litestar, litestar-api, litestar-framework, socketify
- Language: Makefile
- Homepage:
- Size: 88.9 KB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Litestar Socketify Plugin
> [!WARNING]
> Socketify currently has an issue with [ASGI lifespans](https://github.com/cirospaciari/socketify.py/issues/135). This plugin should be considered experimental.## Installation
```shell
pip install litestar-socketify
```## Usage
Here is a basic application that demonstrates how to use the plugin.
```python
from __future__ import annotationsfrom litestar import Controller, Litestar, get
from litestar_socketify import SocketifyPlugin
class SampleController(Controller):
@get(path="/sample")
async def sample_route(self ) -> dict[str, str]:
"""Sample Route."""
return {"sample": "hello-world"}app = Litestar(plugins=[SocketifyPlugin()], route_handlers=[SampleController])
```
Now, you can use the standard Litestar CLI and it will run with Socketify instead of Uvicorn.
```shell
❯ litestar --app examples.basic:app run
Using Litestar app from env: 'examples.basic:app'
Starting socketify server process ──────────────────────────────────────────────
┌──────────────────────────────┬──────────────────────┐
│ Litestar version │ 2.1.1 │
│ Debug mode │ Disabled │
│ Python Debugger on exception │ Disabled │
│ CORS │ Disabled │
│ CSRF │ Disabled │
│ OpenAPI │ Enabled path=/schema │
│ Compression │ Disabled │
└──────────────────────────────┴──────────────────────┘
...
```